ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

智能体自主迭代全解析:技术栈、容错控制与多智能体协同

智能体自主迭代全解析:技术栈、容错控制与多智能体协同 如果你在过去两年持续关注 AI 智能体系统Agent System的进展大概会注意到一个明显的变化2023年大家还在讨论怎么让模型一次答对2024年讨论的是怎么用评测集反复调提示词到了2025年前后讨论的主题已经变成了智能体能不能自己发现自己错了、自己改自己。这个转向背后最核心的概念就是自主迭代能力——智能体在没有人工干预、或仅需要极少量人工干预的情况下基于环境反馈持续修正自身行为、更新自身策略、甚至重构自身工作流的能力。这篇文章是我结合长期工程实践与文献梳理写的一份综述面向两类人一类是正在搭建复杂 Agent 系统的工程师另一类是刚进入这个方向的研究者。全文不堆概念重点讲清楚三件事自主迭代的技术栈到底怎么搭、容错控制为什么是它的命门、多智能体场景下迭代会变成什么样的新难题。如果你正在犹豫要不要给我的系统加自主迭代或者已经加了但效果不理想这篇文章应该会对你有直接的帮助。1. 从人工调参到自主进化迭代能力为什么要上升到系统级1.1 为什么现在才谈自主迭代先说结论不是研究者突然有了新灵感而是系统复杂度把人工迭代逼到了死角。在传统机器学习时代模型的训练和推理是分离的。模型离线训练好参数固定上线后最多做 A/B 测试和定期重训。整个流程中迭代发生在训练阶段由算法工程师手动控制——数据变了重跑一次训练指标掉了调一下超参数。这个过程本质上是人绕系统转。到了大语言模型LLM时代情况完全不同了。一个典型的现代智能体系统由模型、工具调用、外部 API、记忆库、工作流编排、用户交互层等多个组件构成运行轨迹动辄几十上百步。你可以把它理解成一条自动化流水线但这条流水线的每个环节都可能出问题模型输出了错误格式、工具返回了异常数据、检索结果与任务无关、工作流顺序不当、用户需求被误解……任何一个环节出错最终任务都可能失败。问题在于这些错误的修复方式不再是改一行代码那么简单。修一个 Agent 的错误往往意味着调整提示词策略、更换工具组合、修改记忆读写逻辑甚至重新设计整套工作流。当系统规模小、调用量低时人工发现问题再手动修复是可行的可当 Agent 数量从 1 个变成 100 个从单任务变成全天候服务时人工迭代的成本会指数级上升。我见过不少团队把大量时间花在今天这个用户报错我们改一下明天那个场景不对我们再改一下的循环里本质上是在用人力给系统打补丁。这正是自主迭代能力被推到台前的根本原因当系统的规模和复杂度超过人工维护的临界点迭代就必须从人的职责转变为系统的能力。这也是为什么头部团队纷纷开始构建基于反馈闭环的自我改进架构而不是继续依赖人工对每个失败样本做专项修复。1.2 自主迭代与常规机器学习的本质区别很多刚接触这个方向的人会把自主迭代理解成在线的机器学习这个理解不够准确。传统在线学习确实能让模型参数随新数据不断更新但自主迭代的作用对象远远不止参数。我用一个类比来说明两者的区别。传统机器学习像学生参加考试前刷题——题目集是固定的学习发生在考试之前目标是在考试时表现更好。而智能体自主迭代更像学生进入工作岗位后边干边学——工作中遇到的每个新问题都是考题学生不仅要学会怎么解答当天的题目还要自己总结出解题方法、调整工作习惯甚至改变整个工作流程来避免同类问题再次发生。从这个类比可以看出自主迭代是一个覆盖多层级的系统行为。按我目前工程实践中的分类它至少包含三个层级参数级迭代通过上下文学习、微调、偏好优化等方式让模型本身的行为分布发生改变。这是最接近传统机器学习的一层但在 Agent 系统中往往不是最常用的手段因为频繁微调的成本高、周期长。策略级迭代调整 Agent 在运行时做出的决策——选择哪个工具、提示词怎么写、记忆怎么写读、遇到失败时走哪条备选路径。这是当前工程实践中最常见、收益最直接的层级。弹性的策略空间远比参数空间更容易操作和评估。架构级迭代系统在运行过程中发现当前的工作流结构本身存在缺陷进而动态重构整个任务流程。比如一个客服 Agent 原本采用意图识别→查知识库→回复的流程经过多次失败后自我调整成一个包含用户情绪判别→信息补全→多轮确认的新流程。这一层级目前仍处于早期探索阶段但被认为是自主迭代的最终形态。理解这三个层级的区别很重要因为后文讨论反馈信号、容错控制和协同迭代时每个层级面对的挑战是完全不同的。参数级迭代出错影响是局部的、可回滚的架构级迭代出错影响则是结构性的可能需要整体回退。2. 自主迭代的技术栈拆解反馈、记忆与策略更新搞清楚了为什么需要以及迭代的对象是什么之后真正难的部分来了自主迭代的技术栈到底怎么搭。我把它拆成三个核心模块——反馈信号、记忆机制、策略更新。这三者缺一不可没有反馈系统不知道自己错在哪没有记忆系统改了今天的问题明天照样犯没有策略更新机制知道问题也改不动。2.1 反馈信号的获取与清洗自主迭代的地基自主迭代的第一性原理是用反馈驱动行为变化。所以第一个问题就是反馈从哪里来根据我在实际项目中的经验反馈信号大致有三个来源。**第一类环境反馈硬反馈。**工具调用是否成功、代码执行是否报错、API 返回的状态码是否为 200、数据库查询是否返回空结果这些来自运行环境的信号是确定性最强、最容易被利用的反馈。它们的特点是指标明确、没有主观偏差但覆盖范围有限——环境只能告诉你这个动作失败了很难告诉你这个动作为什么不合适。**第二类用户反馈显式和隐式。**用户点击了有帮助按钮、用户在对话中直接表达了不满、用户中途退出了会话这些都是显式或隐式的用户反馈。显式反馈稀疏但准确隐式反馈丰富但噪声大——用户退出会话可能是不满意也可能只是临时离开。实践中我倾向于为隐式反馈设计专门的启发式规则来降低误判率而不是直接拿原始行为信号当反馈。**第三类模型自评软反馈。**让 LLM 对自己的输出进行打分和批判或者用一个独立的奖励模型来评估结果质量。这类反馈覆盖面最广几乎所有任务类型都能设计自评信号但它也是噪声最大的来源——自评模型可能自圆其说、可能对内容过度自信。我见过不少团队踩过这个坑模型自评结果显示优秀实际交付质量一塌糊涂。反馈信号真正难的地方在于清洗。原始反馈通常存在三个问题稀疏很多任务要跑完几十步才能得到一个成败信号、滞后失败原因可能出在前面的第五步但失败信号到第十步才暴露、归因困难一次失败由多个环节共同导致。工程上解决这个问题最实用的手段是加一层过程级日志与归因分析把每一步的输入输出完整记录拿到最终反馈后回放日志用 LLM 或规则引擎定位到具体环节。我把它称作反馈从百叶窗到显微镜——没有过程日志时系统只能看到最终成败有了归因分析才能看到具体哪一步的哪个动作导致了失败。2.2 记忆机制如何支撑持续改进让系统不犯同样的错如果说反馈是告诉系统问题在哪那记忆就是让系统记住问题对应的解法。没有记忆的自主迭代是金鱼式学习——这次失败了根据反馈改了下次换个场景又犯同样的错。在智能体系统里记忆通常分为四类上下文记忆当前会话内的短期状态、长期事实记忆向量数据库存储的知识、工作流记忆任务执行流程和偏好、经验库记忆历史失败案例与修复补丁。其中前两类大家已经非常熟悉本质上就是上下文窗口和 RAG但后两类——尤其是经验库——才是支撑自主迭代持续改进的关键。经验库的设计思路其实很朴素把过去每次失败—诊断—修复的完整轨迹作为结构化事件记录下来存入一个可检索的独立存储。当系统在新任务中检测到与历史失败相似的模式时自动从经验库中调取对应的修复策略。这里有一个容易被忽略的细节经验库和 RAG 背后是两种完全不同的检索逻辑。RAG 检索的是与当前问题相关的知识而经验库检索的是与当前问题相似的教训。前者回答这个知识是什么后者回答上次遇到这种事我们是怎么解决的。两者不能混用。我在实践中还会强调记忆的污染防护。经验库并不是记的东西越多越好——它可能记下错误归因的判断、过时的修复方案、甚至带有偏见的过程数据。所以经验库应该设计成写入要审核、读取要筛选、定期要清理的三段式结构写入时尽量用结构化模板约束读取时按置信度排序定期对无效经验做衰减或淘汰。2.3 策略更新的三种典型范式从轻到重的选择有了反馈和记忆最后一块拼图就是在什么粒度上动手改。我把当前主流的策略更新方式归纳为三种范式它们的工作量、风险和数据需求递增适用场景也截然不同。**范式一提示词级迭代。**这是最轻量的方式——系统根据失败反馈和记忆自动改写提示词比如在系统提示词里增加一条指令当工具返回空结果时请重新检查检索关键词而不是直接回答不知道。由于提示词是 LLM 最敏感的控制面之一这种迭代通常立竿见影成本几乎为零。但它的上限也低提示词能表达的控制逻辑有限且频繁改动提示词可能导致模型在无关维度上的行为漂移。**范式二工作流级迭代。**系统不只是改提示词而是调整工具组合和任务编排方式。比如先用搜索工具获取候选信息再用代码工具做数据清洗最后生成回复这套流程可以在失败后自动替换中间的某个工具或调整步骤顺序。工作流可以建模成一张操作图迭代的过程就是在这张图上做搜索和剪枝。这个范式的表达能力比提示词级强得多但会引入搜索空间的爆炸问题——工具越多可能的工作流组合越多。**范式三代码与模型级迭代。**这是最重、上限也最高的方式。在代码维度系统可以自动修改自身执行的代码俗称 self-debugging运行后检查是否能通过测试在模型维度系统可以把失败样本收集成偏好数据用 DPO 等算法更新策略模型。这种迭代能做到结构性自我优化但它的工程复杂度、评测成本和失败风险同样最高。三种范式不是互斥的实际系统往往是混合使用。我常用的决策思路是能用提示词解决的绝不动工作流能用工作流解决的绝不改代码。迭代的层级越浅开发成本越低、行为可预测性越强、回滚越容易工程上永远是从轻到重地尝试。下面用一个表格总结三种范式的核心差异迭代范式作用对象典型技术手段成本风险适用场景提示词级系统提示词、指令模板自动改写、上下文学习低低可能出现行为漂移行为规则调整、边界约束补充工作流级工具选择、任务编排操作图搜索、动态路由中中搜索空间爆炸复杂任务编排优化、工具链替代代码与模型级执行代码、策略模型self-debugging、DPO 微调高高结构性失败风险系统级重构、长期行为优化3. 自主容错控制让迭代不把系统改坏聊完怎么改必须马上聊怎么防止改坏。我接触过的团队里十个做自主迭代的至少有六个在第一版上线后会出现系统自己把自己改坏了的惨案。原因很简单只要允许系统自我修改就给系统引入了新的失败模式。自主容错控制就是专门处理这个问题的工程化手段。3.1 容错控制为什么是自主迭代的命门先说清楚容错在智能体语境下的准确含义。经典控制理论里的容错控制指的是系统在部件发生故障时仍能维持基本功能的能力——飞机一个发动机坏了剩下的发动机还能让飞机安全降落。智能体系统的容错控制含义是双重叠加的。第一层容错是运行时容错Agent 在执行任务过程中遇到异常工具崩溃、数据解析失败、模型输出非法格式系统依然能通过降级、重试、替代路径等机制完成任务或安全终止。第二层容错是迭代容错Agent 在自我修改过程中引入了新的错误或把原有稳定行为改坏系统需要能检测、隔离并回退这次修改。大多数团队重视第一层却忽视了第二层。但第二层的风险其实更高——运行时容错出错最多损失一次任务迭代容错出错可能让整个系统从一个稳定但不够聪明的状态变成一个又混乱又不稳定的状态。我把这种事故称为自我恶化型故障——系统因为一次失败的自我修改进入越来越糟的行为循环。这里的根本矛盾在于自主迭代天然要求系统开放自身的策略空间而一个开放的策略空间必然包含坏的策略。容错控制不是在限制迭代而是在给迭代上一道安全围栏让系统可以在可控边界内试错。3.2 LLM 智能体自我修复的实现路径结合目前 LLM 智能体的工程实践我把自主容错控制拆成一条完整的处理链路包含四个环节检测、诊断、修复、验证。检测是第一时间发现异常。在 LLM 智能体里检测的对象至少包括工具调用的返回码和异常信息、输出是否符合目标 schema尤其要防模型输出 JSON 时多一个逗号或少一个引号、每一步的耗时是否超出阈值、关键中间结果是否为空或重复。工程上我强烈建议不要只依赖模型自评来检测因为模型无法发现自己答非所问但自信满满的问题必须叠加规则引擎和结构校验。诊断是定位问题根因。这一步可以和上面提到的归因分析共用一套过程日志系统。检测到异常后把异常信息和相关上下文打包发送给诊断模块要求诊断模块输出结构化结论哪个环节出了问题、失败类型是什么、严重程度如何。修复是根据诊断结论生成替代方案。修复方式按代价从小到大排序尝试重新调用仅限幂等操作、换一种参数或输入格式、切换备选工具、调整提示词、降级到人工兜底。这里有一个很重要的工程原则修复动作必须可解释。系统要知道自己这次修复做了什么改动、为什么做这个改动否则后续出问题时根本没法复盘。验证是修复后的确认。Agent 可以调用一个轻量评测器或执行自查逻辑确认修复是否解决了问题、是否引入了新的副作用。验证通过才把修复经验写入经验库验证失败则继续下一轮修复。完整闭环可以概括为执行任务时出现异常 → 检测模块捕获 → 诊断模块生成根因报告 → 修复模块基于根因选择替代动作 → 验证模块确认 → 修复经验沉淀到记忆库。在工程上我建议为这个闭环设置最大修复轮次比如 3 次超出轮次直接切换人工处理避免系统在同一个错误上无限打转。3.3 安全护栏与回滚机制给自主迭代上保险如果说上面的处理链路解决的是遇到故障怎么救那安全护栏解决的是根本让故障不发生或者发生了也能无损恢复。我把实践中验证过的护栏机制整理成四条按重要性排序**第一策略版本管理。**每次迭代形成新版本后旧版本必须完整保留并能一键回滚。这里说的版本不只是代码版本更包括提示词版本、工作流版本、参数配置版本。你可以把它类比成文档编辑软件的历史版本功能——系统自我修改任何一部分都自动生成一个快照。**第二影子模式先行。**在策略更新正式全量生效前可以先在影子流量或低流量环境中平行运行新旧两版策略收集对比数据确认新策略的 KPI 不低于旧策略再放量。这与互联网常见的灰度发布思路一致但在 Agent 场景里往往被省略了——很多团队觉得不就是改个提示词吗结果把线上全量流量调度到一个未经验证的新策略上出了问题才发现。**第三迭代预算控制。**给每个任务或每个时间窗口设置自我修改次数的上限。这个机制非常重要因为它强制系统在收敛和探索之间取得平衡。没有预算约束的系统很容易陷入无休止的自我调整每次改一点、每次都不够好最终浪费大量时间和推理资源。**第四行为漂移监控。**自主迭代最大的隐性风险是衍生漂移——系统在 A 维度上做了正确修改却在 B 维度上产生了不可预期的行为变化。监控策略是定期在固定评测集上跑一遍回归测试把关键 KPI 的偏差告警纳入监控面板。提示自主迭代系统的容错设计不是一次性工作而是伴随系统生命周期持续演化的基础设施。每次引入新的迭代能力都要同步检查新增的失败模式是否已被护栏覆盖。4. 多智能体协同场景下的迭代难题前面的讨论都假设一个智能体独自迭代。但现实世界中绝大多数有价值的 Agent 系统是多智能体系统MAS——多个 Agent 协同分工共享目标或互相竞争。当自主迭代能力进入多智能体场景问题会出现质的改变。4.1 群集运动控制与自主迭代的交叉一个值得关注的方向多智能体系统在机器人协同、自动化调度等领域已经有几十年的研究积累其中群集运动控制是一个经典方向——蜂拥、编队、避障、轨迹一致性问题背后涉及的是一套以动力学和控制论为基础的数学工具。你可能觉得这跟 LLM 智能体很遥远但仔细想会发现它们的核心关切惊人一致如何让一群独立决策的个体保持群体性的一致和稳定。在传统群集控制里每个机器人个体没有自主迭代能力它们的控制策略是事先设计好的群体行为由控制律保证稳定。而如果每个机器人个体都具备自主迭代能力——即每个个体都可以根据局部反馈调整自己的控制策略——群体的稳定性和性能边界就变成了全新的开放问题。一只鸟改变飞行策略可能带来整个鸟群形态的重构而这个重构可能是更优的也可能是灾难性的。这个问题在 LLM 智能体场景下的映射同样清晰一群 Agent 协作完成一个大型任务每个 Agent 都在根据局部反馈优化自己的行为方式。个体变聪明之后群体是变得更协调还是更混乱这个问题目前没有统一答案但已经出现了非常值得关注的研究趋势——把传统多智能体控制中的一致性协议、势场约束等思想引入智能体协作策略用群体级约束来制衡个体的自主性。4.2 协同迭代中的信息一致性经验能不能复用多 Agent 协同中遇到的第一个现实问题就是A Agent 学到的经验B Agent 能不能直接用想当然的答案是能——反正都是同一个底座模型、同一套工具库。但实际跑起来你会发现经验复用的效果取决于两个 Agent 的上下文吻合度。A Agent 负责客服它学到的面对用户情绪激动时应先共情再解答这个经验显然不能直接套给负责数据分析的 B Agent。即便两个 Agent 职责相似用户的网络环境不佳导致检索超时改用缓存回答这个经验也可能因为 A 和 B 的工具配置不同而失效。工程上针对这个问题我推荐两条腿走路一是给经验库增加经验适用性标签记录每条经验的适用场景和适用 Agent 类型检索时动态过滤二是维护一个群体级共享经验层和若干个体私有经验层分别承担通用经验的沉淀与局部经验的存储。共享经验必须经过更严格的验证至少要在多个相似场景中都有效私有经验则允许更灵活的写入。尤其需要注意的是经验污染在协同场景会被放大。一个 Agent 有了错误经验它的行为偏差会影响与之协作的其他 Agent 的上下文和结果导致其他 Agent 也习得偏差。这有点像传染病——如果不对共享经验做筛选和消毒错误经验会在群体中快速传播。4.3 个体迭代与群体进化的耦合协调机制与迭代节流多 Agent 场景里最有趣的挑战是个体的快速迭代可能导致群体行为的分裂。举一个真实的协作场景三个 Agent 分别负责任务规划、代码执行、结果质检。结果质检 Agent 在一次迭代中决定把质检标准从必须通过全部测试改为允许忽略低风险告警于是质检通过率大幅提高。但这个修改直接影响任务规划 Agent 的策略假设——规划 Agent 原本把质检通过率视为一个稳定的约束条件现在这个约束变了它的计划也可能随之漂移。更麻烦的是代码执行 Agent 并不知道这两个 Agent 之间的联动还在原地踏步。这个例子说明多 Agent 自主迭代不能是各自为政。至少需要三种协调机制群体级评估指标迭代的评估不能只看个体 KPI还要看团队整体指标。如果个体迭代导致团队整体指标下降应该触发回滚或告警。要做到这一点需要先在数据口径上打通所有 Agent 的日志和指标体系否则你连团队指标到底变没变都说不清。显式的变更通知当某个 Agent 发生策略变更时需要把变更摘要广播给协作方。我的质检标准变了这件事必须被规划 Agent 感知到否则协作的隐含假设就会被悄悄破坏。迭代节流机制在协作任务执行期间限制 Agent 的迭代频率确保群体在任务中途不会因为个体的策略漂移而导致整个协作流程失稳。想要边协作边进化对底层的协议与治理要求极高在没有可靠设计之前务实的做法是执行阶段冻结个体迭代任务结束后统一更新经验库和策略。在多 Agent 场景中自主迭代的收益从个体效率提升变成了群体适应性提升这个视角转换会直接影响系统设计决策。设计问题从怎么让这个 Agent 更聪明变成了怎么让这个 Agent 变聪明而不破坏协作秩序——后者显然是一个更困难、也更有价值的问题。5. 落地观察自主迭代的五个常见误区与实用建议前四章把原理和技术栈都过了一遍最后聊点这些年在实际项目中总结出来的教训。很多系统在纸面上设计得非常漂亮但落地时因为几个认知误区效果大打折扣。下面五个误区是我在反复踩坑后最想拿出来说的。5.1 误区一把重试当成迭代这是最常见、也最容易被忽略的误区。一个工具调用失败后系统换一种方式重新调用一次这算不算自主迭代不算。重试解决的是当前这次任务的临时问题——API 超时了重连一次、返回格式错了重新解析一次。而迭代解决的是跨任务的结构性问题——系统发现了某个工具经常超时于是调整了超时策略并把这个经验存入记忆库以后每次遇到类似工具都能避开这个坑。区分标准只有一个是否产生了跨任务的持久改进。如果没有那就只是重试。这个区分很重要因为它直接决定了系统架构。如果你想做的是自主迭代却在架构上只设计了重试机制那系统永远无法产生真正的进步。5.2 误区二缺乏显式的评估信号自主迭代的核心逻辑是评估→调整→再评估。但很多团队在设计时没有定义清楚评估到底用什么指标。没有显式评估信号的自我修改本质上就是随机漂移——系统装作在改实际在赌。我在项目中坚持一个原则任何一次迭代动作都必须对应一个可量化的评估指标。如果任务是让回答更准确那就必须有准确率指标的评测集如果任务是提高工具调用成功率就必须对调用成功率做分工具、分场景的统计。连指标都定义不出来的时候说明这个迭代需求本身还不够成熟不如先缓一缓。5.3 误区三迭代速度与稳定性失衡很多团队第一次跑通自主迭代后会陷入一个不断自我修改的亢奋状态。系统每遇到一次失败就修改一次策略导致行为日志看起来千变万化但整体指标并没有变好。这里面的根本问题是反馈信号中的噪声被过度响应。单次失败可能是偶发因素导致的并不值得触发一次策略更新。应对方式有两种一是对同一类失败累积到一定数量再触发迭代比如连续出现 3 次相同模式才触发修改二是采用批量迭代定期评估的模式把新策略攒一批集中验证后再统一发布。我对大多数生产系统都推荐第二种方式稳定性好很多。5.4 误区四忽视迭代的可解释性自主迭代系统如果不可解释排查问题的成本会高到难以承受。想象一下线上系统突然开始频繁出现异常回复而你连系统最近做了哪些内部修改都说不清楚那种排查体验令人崩溃。所以在工程架构上我强烈建议为每次迭代动作生成一条结构化变更记录什么时间、哪个模块、基于什么反馈、做了什么修改、修改前的行为是什么、修改后的行为是什么。这条记录不仅是排查依据也是验证迭代质量的数据源。没有变更记录的系统等于是在蒙着眼睛开车。5.5 落地建议从最窄的场景开始如果你准备在自己的系统里引入自主迭代能力我的建议是不要追求一步到位而是分四个阶段逐步推进**第一阶段先做观测和评估。**完整记录系统运行日志打通反馈信号建设周期性的评估机制。这一步不修改任何策略先让自己看见系统。**第二阶段引入轻量容错。**先做运行时容错和人工触发的策略更新让团队习惯系统会出错→系统能自救→出错了能回滚的运行方式。**第三阶段加入单 Agent 自主迭代。**选择边界清晰、评估指标明确的单一场景用反馈→记忆→策略更新的最小闭环跑通。这个阶段最重要的是把经验库和变更记录做扎实。**第四阶段再扩展到多 Agent 协同。**等单 Agent 迭代稳定后再逐步引入多 Agent 的经验共享、协作约束和迭代节流机制。这个顺序我在多个项目中验证过每一步都为下一步提供了必要的基础设施和团队经验比试图一步到位要稳妥得多。自主迭代能力说到底不是一个功能而是一套系统工程能力——它需要数据、架构、评测、治理四个维度同时成熟缺一不可。最后再说一点我个人的体会。做自主迭代这么多年我最深的感受是这项能力真正难的从来不是技术本身——反馈可以设计、记忆可以存储、策略可以调整——难的是在让系统变得更聪明和保持系统可靠稳定之间找到那个平衡点。一个系统如果永远不犯错那它一定没有在尝试新东西但如果它一直在犯错那说明迭代控制出了问题。好的自主迭代系统应该像一个经验丰富的员工敢尝试、能总结、会复盘、不把团队拖入混乱。这个比喻可能有点朴素但在设计每一层架构时我都会把它会不会越改越乱这个问题摆在桌面上来回答。希望这篇综述能帮你少走一些弯路。
返回列表