首页 / 资讯中心 / 文章详情

多智能体协同与自主决策AI代理系统:从架构到实战

多智能体协同与自主决策AI代理系统:从架构到实战 ★ FEATURED ARTICLE
做自主决策AI代理系统这件事我前前后后折腾了将近一年。从最初只是给大模型套一层工具调用到后来做成能自主规划、自我纠错、甚至多个代理之间互相协作的完整系统踩过的坑比写过的代码还多。这个项目不是某个课程作业也不是论文里的Demo而是真正跑在业务场景里的系统。它解决的核心问题很简单让AI不是你问一句它答一句而是给它一个目标它能自己拆解任务、调用工具、评估结果、修正方向直到把活干完。这篇文章我会从零开始把整个系统从基础架构到多智能体协同的完整实践过程梳理一遍。内容包括单智能体的核心设计、自主决策循环的实现方式、多智能体之间的通信与协作机制以及我在实际调参和排错过程中积累的经验。适合三类读者准备把大模型接入业务系统的工程师、已经在做Agent但总感觉效果不稳定的开发者、以及对多智能体协作机制感兴趣的架构师。先说一句实话网上关于Agent的教程很多但大多数停留在用LangChain调几个工具的层面。真正生产级的Agent系统难点根本不在调用模型而在于决策框架怎么设计、状态怎么管理、错误怎么恢复、多个代理之间怎么不打架。这些才是本文想讲清楚的东西。1. 整体架构设计与核心概念拆解1.1 自主决策AI代理的本质是什么先把概念捋清楚。一个自主决策AI代理本质上是一个感知-决策-行动的闭环系统。它接收一个目标输入通过大模型的推理能力拆解出执行计划然后调用外部工具或API执行具体操作再根据执行结果评估进展最后决定是继续、调整还是结束。这个闭环和传统软件的工作方式有本质区别。传统程序是开发者预先写死所有分支逻辑而Agent系统把下一步做什么的决策权交给了模型。这意味着同一套系统在面对不同输入时可能走出完全不同的执行路径。这个特点既是Agent最大的价值——灵活、通用、能处理非预期情况也是它最难搞的地方——不可预测、难调试、容易失控。我在设计系统时首先明确了一个原则不要把Agent做成黑盒。虽然决策由模型做出但整个决策过程必须是可观测、可干预、可回放的。这个原则贯穿了后续所有架构决策。1.2 系统分层架构设计整个系统我分成了四层每一层职责单一层与层之间通过明确定义的接口通信。这四层分别是接口层、决策层、执行层和记忆层。接口层负责与外部世界对接包括用户输入解析、最终结果格式化输出、以及各种外部服务的接入。决策层是核心包含任务规划器、工具选择器和自我反思模块。执行层封装所有Agent能调用的工具包括搜索、代码执行、数据库查询、API调用等。记忆层管理短期对话上下文和长期知识存储。这个分层设计的核心考量是可替换性。比如决策层用的模型从早期的GPT-3.5换到后来的GPT-4再到开源模型只需要替换决策层内部的模型适配器其他层完全不动。工具层更是如此每接入一个新工具只需要实现统一的工具接口注册进去就行决策层不需要做任何修改。┌─────────────────────────────────┐ │ 接口层用户输入解析 / 结果输出 │ ├─────────────────────────────────┤ │ 决策层任务规划 / 工具选择 / 反思 │ ├─────────────────────────────────┤ │ 执行层工具注册 / 执行 / 错误处理 │ ├─────────────────────────────────┤ │ 记忆层上下文管理 / 长期存储 │ └─────────────────────────────────┘有人可能会问为什么不直接用一个大的提示词把所有功能都塞进去我也试过。最开始确实是一个巨大的Prompt搞定所有事但随着功能增多Prompt越来越难维护改一个地方影响一片而且模型经常在复杂任务中迷失方向。分层之后每层的Prompt可以独立优化和测试出了问题也能快速定位。这是第一个值得分享的经验Agent系统里架构清晰比功能丰富更重要。1.3 技术选型的底层逻辑技术选型这块我走了不少弯路这里把最终方案和选择理由说清楚。大模型底座选了支持函数调用(function calling)的模型这是做Agent的基础能力。如果没有原生函数调用支持就需要在Prompt里手动规定输出格式然后用解析器去抠效果差很多。当时对比了多个模型最终选了能稳定返回结构化工具调用参数的方案这一点对后续系统可靠性影响巨大。Agent框架方面我没有直接用现成的LangChain或AutoGen而是在其基础上做了大量自研封装。原因有三个第一现成框架抽象层次太高出了问题很难追踪到底层逻辑第二框架自带的工具调用机制不够灵活我需要自定义决策循环第三生产环境的特殊需求——如超时控制、并发限制、审计日志——框架原生支持都不到位。我的做法是参考LangChain的设计思想自己实现了一套轻量级的核心逻辑只保留必要的抽象。向量数据库选了支持HNSW索引的轻量级方案用来存长期记忆和工具使用经验。选它主要是因为部署运维简单性能对业务规模足够了。数据量大的场景可以换成更重的方案核心接口保持一致就行。这也是为什么我一直强调接口抽象的重要性——技术栈随时可以换架构不能轻易动。2. 自主决策机制的核心实现2.1 决策循环从ReAct到自定义改进自主决策的核心是一个循环业界标准的参考模式是ReAct(Reasoning Acting)也就是推理-行动-观察交替进行。模型先思考当前状态决定采取什么行动执行行动后观察结果再基于新状态继续推理。我基于ReAct做了两处关键改进。第一处是增加了明确的计划阶段。原始ReAct模式中模型每一步只做局部决策没有全局规划。我在循环开始前让模型先生成一份完整的任务清单然后每一步对照清单执行。这样既保留了ReAct的灵活性又避免了模型走一步看一步导致的路径漂移。第二处改进是强制反思机制。每执行完一个子任务模型必须回答三个问题结果是否符合预期如果不符合原因是什么下一步应该如何调整这个反思结果会写入短期记忆作为下一步决策的参考。实测下来加入强制反思后复杂任务的完成率提升了大约30%效果非常明显。下面是核心决策循环的简化代码实现class DecisionLoop: def __init__(self, model, tools, memory): self.model model self.tools {t.name: t for t in tools} self.memory memory self.max_iterations 15 # 防止死循环 self.max_reflection_retries 3 def run(self, task): plan self.model.plan(task) # 第一步生成全局计划 self.memory.add(plan, plan) for step in plan.steps: result None for _ in range(self.max_reflection_retries): action self.model.decide(step, self.memory.context) if action.type call_tool: result self.execute_tool(action) self.memory.add(observation, result) elif action.type finish: return self.finalize(result) elif action.type need_help: return self.escalate(step, action.reason) reflection self.model.reflect(step, result) self.memory.add(reflection, reflection) if reflection.status success: break # 反思结果不理想则修正后重试 step self.model.revise(step, reflection.analysis) return self.finalize(self.memory.get(final_result))这段代码看起来简单但在实际项目中我花了很多时间调迭代次数上限、反思重试次数这些参数。迭代次数设置太小复杂任务完不成设置太大不仅浪费token而且模型可能在错误路径上越走越远。我最终用的是15次上限加3次反思重试的组合这是几组不同配置对比测试后的结果。2.2 工具调用与参数化执行工具是Agent的手。没有工具的Agent只能聊天有了工具才能做事。我的工具层设计核心是一个统一的注册机制每个工具只需要实现三个方法描述给模型看的工具说明和参数schema、执行实际调用逻辑、校验对参数的合法性检查。工具描述的质量直接影响模型的选择准确率。这里有个关键经验工具描述要写清楚什么时候用和什么时候不用而不仅仅是这个工具能做什么。比如代码执行工具如果不加限制条件模型可能在需要简单数学计算时也去执行一段Python代码白白增加延迟和出错概率。我在描述里明确写了仅当需要复杂计算或数据处理时使用简单四则运算可直接计算。参数Schema方面我强烈建议使用JSON Schema格式并且字段说明要具体。一个典型的问题是模型会把参数类型搞错比如把数字传成字符串。解决办法是在Schema的description里给出明确的格式示例比如age: 整数类型例如 25不要加引号。实践证明给出正确示例比反复强调类型约束有效得多。工具执行时的错误处理也非常重要。我遇到过工具抛异常时整个Agent循环崩溃的情况后来加了统一的异常捕获和错误信息格式化。任何工具执行失败都要把错误信息转成模型能理解的文本放回上下文让模型自己决定是重试、换参数还是换工具。这一步看似简单却是Agent能否自主处理异常的关键。2.3 记忆管理与上下文窗口优化上下文窗口是Agent系统最硬的资源约束。大模型上下文长度有限而Agent在执行过程中会不断产生中间结果、工具返回值、反思记录如果不加控制很快就会塞满上下文而且塞满后模型表现会急剧下降。我的记忆管理策略分为三层。第一层是核心上下文包含系统提示词、当前任务目标、最近的3轮决策记录这部分始终保留。第二层是工作记忆包含计划和反思结构但采用滑动窗口只保留最近的有效条目。第三层是长期存储把重要的执行经验、领域知识存入向量数据库需要时通过语义搜索召回。长期记忆这块踩过不少坑。最初我把所有执行历史都存入向量库结果召回质量很差因为存入了太多噪音。后来改为只存储两类内容成功的决策路径和失败的教训。成功路径用于类似任务时的参考失败教训用于避免重蹈覆辙。存储动作本身也由模型判定——每完成一个子任务模型判断这段经验是否值得存入长期记忆。这样长期记忆的质量明显提升召回的准确率也高了。关于上下文优化还有一个实用的技巧工具返回结果做摘要而不是全量塞入。比如搜索工具返回10条链接全文可能几千字但真正有用的可能就是每条链接的标题和摘要。我在工具层加了一个可选的结果压缩功能让模型对原始结果先做摘要再放入上下文。这样既保留了关键信息又大幅节省了token。代价是多了一次模型调用但延迟增加很小绝对值。3. 多智能体协同机制深入解析3.1 为什么需要多智能体而不是一个超级Agent单Agent能解决简单任务但面对复杂业务场景就力不从心。我在实践中感受到三个瓶颈。第一是上下文碎片化。一个Agent要同时处理多线程任务时上下文很容易被不同任务的中间状态瓜分导致每个任务都记不清。第二是职责耦合。比如一个系统既要做信息检索又要做代码生成两个能力放在同一个Agent里Prompt互相干扰模型经常在错误的场景下调用错误的技能。第三是单点不可扩展。一个Agent的推理链越长出错的概率越高而且错误会在长链路中不断累积放大。多智能体架构的核心思想是分而治之把复杂任务拆成多个子任务分配给专门的Agent执行通过协作机制把结果汇总。这个思路和软件工程里的微服务架构本质上是一样的——每个服务负责一件事通过明确接口通信。只不过Agent之间的接口更灵活它是一段自然语言消息。3.2 协作模式选型编排式与对等式多智能体协作有两种主流模式各有适用场景。编排式(Orchestrator模式)有一个中央控制器负责任务分解和结果汇总工作Agent只执行自己的子任务并汇报结果。对等式(Peer-to-Peer模式)没有中央控制Agent之间直接通信协商适合需要多方博弈或逐步达成共识的场景。我在生产系统中用的是编排式为主、局部对等式为辅的混合架构。为什么因为纯对等模式在真实业务中容易失控。Agent之间自由对话协商很酷但对话可能发散、跑题而且没有明确的收敛条件任务可能永远完不成。编排式的好处是流程可控、步骤可追踪每个子任务都有明确的负责人和截止状态。混合架构的落地方式是主控Agent负责任务分解和调度属于管理面执行面分为检索Agent、分析Agent、生成Agent等多个角色它们之间在某些特定环节可以直接通信。比如分析Agent发现检索结果不足可以直接向检索Agent发起补充请求不需要每次都经过主控中转。这减少了约40%的通信开销同时保持了整体流程的可控性。混合架构的落地方式是主控Agent负责任务分解和调度属于管理面执行面分为检索Agent、分析Agent、生成Agent等多个角色它们之间在某些特定环节可以直接通信。比如分析Agent发现检索结果不足可以直接向检索Agent发起补充请求不需要每次都经过主控中转。这减少了约40%的通信开销同时保持了整体流程的可控性。3.3 多Agent通信协议设计多Agent通信不能靠自然语言随便聊必须有结构化的消息协议。我设计的消息格式包含五个核心字段{ msg_id: msg_20250115_001, sender: orchestrator, receiver: agent_search, msg_type: task_assign, content: { task_id: task_03, instruction: 检索2024年AI代理技术综述论文, constraints: {max_results: 5, time_range: 2024-01-01~2024-12-31}, context_refs: [memory_ctx_27] }, timestamp: 2025-01-15T10:30:00Z }这个结构的核心设计意图有三个。一是消息可追踪每条消息有唯一ID发送方和接收方明确方便日志分析和问题回溯。二是内容结构化指令、约束、上下文引用分开避免模型把各种信息混在一起理解。三是上下文引用机制通过context_refs引用共享上下文中的特定片段不需要把大段上下文复制到每条消息里省token也省时间。还有一个重要的设计决策Agent之间的消息要不要经过LLM处理我的答案是分情况。任务分配类消息主控Agent生成时已经经过LLM接收方直接解析即可但状态查询、结果汇报这类轻量消息我尽量用结构化格式直接传递不经过LLM降低延迟和成本。实测下来这种重消息走LLM轻消息走协议的混合方式整体效率比全走LLM高了很多。3.4 共享工作区与状态一致性多Agent协同最大的技术难点是状态一致性问题。多个Agent并行工作时每个Agent都有自己的上下文视图它们对当前任务进行到哪里了的认知可能不一致。比如检索Agent认为已经返回了结果但分析Agent没收到或者收到了两个不同版本的结果。解决思路是引入共享工作区(Shared Workspace)。工作区里存放任务的全局状态、每个子任务的执行进度、以及各Agent产出的中间结果。所有Agent在工作区中读写数据而不是通过消息把数据传来传去。消息里只传递引用和指令不携带大段数据。class SharedWorkspace: def __init__(self, storage_backend): self.workspace_id None self.storage storage_backend self.lock threading.RLock() def create_workspace(self, task): 创建任务专属工作区 self.workspace_id fws_{uuid.uuid4().hex[:8]} self.storage.set(f{self.workspace_id}:status, { task: task, progress: 0.0, subtasks: {}, created_at: time.time() }) return self.workspace_id def update_subtask(self, subtask_id, status, result): 原子更新子任务状态 with self.lock: key f{self.workspace_id}:subtask:{subtask_id} current self.storage.get(key) or {} current.update({status: status, result: result, updated_at: time.time()}) self.storage.set(key, current) def query_subtask(self, subtask_id): 查询子任务状态 return self.storage.get(f{self.workspace_id}:subtask:{subtask_id})状态一致性这里有一个容易忽略的问题写入冲突。两个Agent同时更新同一个子任务状态时后写的会把先写的覆盖掉。我的解决方案是引入基于Redis的分布式锁每个子任务更新前先获取锁更新完释放。虽然增加了少量延迟但避免了数据竞争导致的隐性bug。这个坑在单机测试时根本不会暴露一上多线程或多实例就原形毕露我花了整整两天排查才定位到。4. 实操过程与核心环节实现4.1 环境准备与技术栈清单如果你决定自己动手实现一套Agent系统先准备好环境。我的技术栈如下仅供参考不必完全照搬组件选型说明LLM底座支持function calling的大型模型可用OpenAI兼容API适配也可接开源模型核心语言Python 3.10Agent生态最成熟的生态Agent框架自研轻量框架参考LangChain设计保留核心抽象消息队列Redis Stream多Agent通信与事件分发向量存储轻量向量数据库长期记忆与经验存储任务编排自研DAG执行器支持并行子任务调度可观测性结构化日志调用链追踪决策过程全记录这个组合有一个核心考量所有关键组件都选可替换的。比如向量存储我封装了统一的接口后面数据量大了随时可以换成其他更重量级的方案业务代码一行都不用改。给Agent系统做技术选型我强烈建议把可替换性放在优先级前列因为Agent技术本身还在快速演进今天的主流方案明天可能就被淘汰了。4.2 单Agent从零搭建的核心步骤从零搭建一个能用的单Agent核心步骤有五步。第一步定义工具接口和注册机制。每个工具继承统一基类实现get_schema()和execute()方法。工具注册就是在启动时把所有工具实例放进一个注册表决策循环通过名称索引。第二步编写系统提示词。提示词要包含角色定位、决策规则、输出格式约定、安全约束。我的实践经验是提示词越具体越好但不要写成死板模板。比如你是数据分析助手太笼统模型不知道边界而你负责数据探索和可视化不负责模型训练当用户提出训练模型的需求时应明确说明能力边界就清晰得多。第三步实现决策循环框架。按照前面代码所示实现计划、决策、执行、反思四个环节的状态机。这个阶段不要急着加复杂功能先把最简闭环跑通。第四步接入外部能力。我第一个接入的是搜索API然后是代码执行器再是数据库查询。每接入一个新工具都要单独做测试验证模型能否正确选择、传参和使用该工具。测试用统一的评测集跑不靠人工试几个例子就收工。第五步建立日志和追踪。从第一行代码开始就把每次决策的输入、模型输出、工具调用、执行结果全部记录下来。不要等到出了问题再补日志Agent系统的调试难度远高于传统系统没有完整日志几乎是没法排查问题的。4.3 多Agent系统装配与联调多Agent系统不是把几个单Agent堆在一起就行装配过程有几个关键环节。我的实施顺序是先搭主控Agent跑通任务分解和结果汇总的基础流程。主控Agent本质上也是一个模型循环只不过它的工具变成分配子任务和查询子任务状态。这个阶段先让主控能单独完成任务不涉及真正的执行Agent。然后是注册执行Agent。每个执行Agent实例化后注册到Agent注册中心主控能看到所有可用的Agent列表和它们的能力描述。这里和工具注册的逻辑一模一样只是把工具换成了Agent。能力描述的重要性同样不言而喻——主控依据描述决定怎么分解和分配任务。接下来是通信联调。用固定的测试用例跑多Agent协作流程重点检查消息能否正确路由、任务状态能否正确更新、返回结果能否正确汇总。先串行跑通再并行跑最后加异常场景测试。联调阶段最常遇到的问题有两个。第一个是任务分配不合理——主控把本应该由一个Agent干完的活拆成了多个子任务或者反过来把一个应该并行拆解的复杂任务留给了单个Agent。解决方法是优化子任务分解的提示词并在评测集中加入专门的任务拆解质量测试项。第二个是Agent之间踢皮球——A Agent认为问题应该由B解决B又推回给A。我的解决方案是每条消息都带上明确的deadline和责任人超时未完成就上报给主控重新调度。4.4 评测体系与效果量化Agent系统不能只靠感觉效果好来验收必须量化评测。我建了一套三层评测体系。第一层是任务成功率。给每个任务类型定义完成的标准比如检索任务的标准是返回结果数量符合预期且包含必需字段生成任务的标准是文本长度达标且主题相关度达到阈值。测试集包含50个典型任务和20个边界任务自动跑完后统计成功率。第二层是决策质量评估。不只看结果还看过程。工具调用次数是否合理有没有不必要的重复调用有没有在错误的场景用了错误的工具这些指标用规则自动提取结合人工抽样评估。决策质量是Agent系统长期性能的关键很多系统任务成功率看着还行但token浪费严重、效率低下问题就出在这里。第三层是鲁棒性测试。故意给系统注入干扰——包括模糊指令、包含误导信息、工具返回异常结果。看系统能否正确应对而不是直接崩溃或跑偏。这一层测试最容易暴露问题我第一次跑的时候成功率直接掉了一半全是各种没预料到的边界情况。评测数据出来之后优化方向就有了依据。我最常用也最有效的优化手段是失败案例回放把失败案例的完整日志拉出来看是哪个环节出的问题然后针对性地改提示词、调参数或修逻辑。每轮优化后重新跑全套评测防止修了东墙补西墙。5. 常见问题与排查技巧实录5.1 Agent陷入死循环的排查思路最让人头疼的问题是Agent陷入死循环——不停重复同样的行动、得到同样的结果、再做同样的决策。这个问题的根源通常是反思机制失效模型没有意识到当前状态没有变化。我的排查路径是先看日志中连续的迭代记录确认循环的具体模式。如果是在同一个工具调用上循环多半是工具返回的结果被模型误判为还需要再调一次。解决方法是给工具结果加明确的完成标志字段让模型能一眼判断任务是否已完成。如果是决策环节循环比如模型反复修改计划但越改越乱就需要提高反思的判别标准让系统更快地触发停止并上报分支。我在决策循环里加了一个布隆过滤器记录已经尝试过的行动组合如果新行动重复率超过阈值直接强制终止并上报警主。这是保底机制宁可让任务失败上报也不能让系统无限空转烧token。5.2 工具选择错误的定位与修复模型选错工具是另一个高频问题。典型情况应该用代码执行器算一个复杂公式模型却去调搜索API应该查数据库的模型却试图从搜索结果里找答案。定位方法很简单翻日志看模型在决策时的原始输出内容——它想了什么导致选错工具。如果是工具描述不够清晰导致的误解修工具描述如果是模型的推理过程暴露了它对任务类型的错误理解修系统提示词中关于任务分类的引导。注意不要动不动就换模型或加规则大部分工具选择错误都是信息不足或信息误导造成的改善信息供给通常就能解决。5.3 上下文污染的识别与处理上下文污染指的是与当前任务无关的历史信息干扰了模型判断。症状是模型的行动开始跑偏做的事和当前子任务目标关联变弱甚至开始引用不相干的旧信息。识别方法在日志里给每个决策步骤标注决策依据的信息来源如果决策依据频繁来自很久以前的历史而不是当前状态说明被污染的上下文在带偏模型。处理方法有两个方向一是更激进地清理上下文核心上下文只保留当前子任务的相关信息历史经验放到长期记忆中按需召回二是给上下文分段打标签模型决策时强制引用指定标签的上下文片段不相关的片段直接排除。5.4 多Agent消息超时与结果丢失处理多Agent协作中消息超时和结果丢失是迟早会遇到的问题。尤其是在引入并行执行后多个消息同时收发很容易出现一方等结果超时、另一方任务实际已完成但结果没送达的情况。我采用的方案是状态查询兜底。每次等待子Agent结果时不单纯阻塞等待消息返回而是同时启动一个状态的周期性轮询。如果等了预期时间没收到消息就主动查询共享工作区中的子任务状态看是不是结果写入成功了但消息传递失败。实测这个兜底机制把协作流程的异常率降低了60%以上因为大部分消息丢失其实是消息延迟而不是真的丢了。5.5 成本控制与token优化实操Agent系统的成本主要消耗在大量模型调用上。一个复杂任务跑下来动辄几十次调用token消耗很大。我在成本优化上做了三件事。第一件事是减少不必要的模型调用。能用规则判断的就不让模型判断比如工具参数类型校验、数值范围检查这些在工具层用代码做成本几乎为零。第二件事是合理选择模型规格。简单任务用轻量模型复杂推理用强模型。我做了模型路由模块根据任务复杂度预估动态选择模型整体成本大约节省了40%。第三件事是结果缓存。相同或高度相似的查询直接复用历史结果不用重新调用模型。缓存命中率在检索类任务里能达到30%左右效果显著。6. 实操经验总结与扩展方向做这套系统的过程中我最大的体会是Agent系统的难点不在AI算法而在工程化。模型推理能力只是地基真正的挑战是把不可预测的模型行为嵌入到需要稳定可靠的业务系统中。这意味着你要在设计每一个环节时都问自己模型这步如果出错了系统会怎样有没有兜底能不能追踪到几个具体的经验分享给正在实践的人。第一个经验是关于迭代顺序的。不要一上来就追求多Agent先把单Agent做到足够稳定。我见过太多团队单Agent还一塌糊涂就匆忙上多Agent结果问题翻倍调试难度几何级增长。单Agent的决策循环、工具调用、记忆管理都跑通了再考虑协作层的设计。第二个经验是评测集要尽早建。我第一次建评测集是在系统V1完成之后导致早期迭代缺少量化反馈走了不少弯路。如果重新来做我会在系统雏形阶段就建一个20条左右的冒烟测试集每次改动都跑一遍作为回归测试。第三个经验是日志设计要极致。Agent系统的每一次决策都是一次不可复现的事件因为模型输出有随机性。这意味着事后日志几乎是唯一的排查依据。我的日志规范是每个决策步骤记录时间戳、输入上下文摘要、模型输出全文、工具调用和结果、反思结论。宁可在日志上多花存储成本也不能在排查问题时抓瞎。这个系统的后续扩展方向我个人看好的有三个。第一是多Agent能力的动态扩展。当前的Agent角色是预先定义好的下一步是让系统能根据任务需要动态创建新的Agent角色这需要把Agent的角色定义也变成可推理、可生成的内容。第二是更强的人类反馈机制。当前系统主要靠自动评测和预设规则纠偏后续想加入人在回路(Human-in-the-Loop)机制在关键决策节点引入人工审批或修正这对业务系统的安全性提升会很明显。第三是跨会话的学习能力。目前的长期记忆还是偏向经验存储下一步要做好经验的自动归纳和抽象让系统从记住具体案例升级为掌握通用方法。最后再分享一个我踩过最深的坑别迷信模板和现成框架。我最初也是从现成框架起步觉得省事但越到后期越觉得被框架束缚很多针对业务场景的优化根本无从下手。后来下决心重写核心逻辑虽然前期花了不少时间但换来的是完全可控、可扩展的自研系统。在Agent这个快速演进的领域深入理解底层机制、保持架构自主可能比用哪个框架更重要。
阅读完成 · 觉得有帮助?
咨询建站