单 Agent 为什么不够用了
单 Agent 就像一个人既当策划又当执行又当检查。简单任务还行,一旦任务复杂——比如「调研一个行业、写一份报告、做成 PPT」——一个模型分身兼多角就容易顾此失彼:规划得很粗,执行得很糙,自己还检查不出来。
多智能体的思路是把这些角色拆开:一个 Agent 专门做规划,一个专门做执行,一个专门做反思检查,一个专门调工具。每个 Agent 只做一件事,通过消息互相传递结果。这和软件团队分工是一个道理。
多智能体不是「让更多模型一起想」,而是「让每个模型专注做一件它最擅长的事」。
- 规划者把复杂任务拆成步骤,定义每步的目标和输入输出。
- 执行者按规划一步步做,调用工具完成具体操作。
- 反思者检查执行者的输出,发现错误就打回重做。
- 共享状态所有 Agent 读写同一个任务上下文,保持信息同步。
角色分工:规划者与执行者
规划者的任务是把一个大目标拆成可执行的小步骤。比如「写一份竞品分析报告」,规划者会拆成:收集竞品资料、整理功能对比、分析优劣势、写结论建议。每一步都有明确的输入和输出,执行者拿到就能干。
# 多智能体协作的典型流程(伪代码)
planner = Agent(role="规划者")
executor = Agent(role="执行者")
reviewer = Agent(role="反思者")
task = "调研大模型 Agent 框架现状,写一份报告"
plan = planner.plan(task)
# plan = ["1. 搜索主流框架", "2. 对比优缺点", "3. 整理报告"]
for step in plan:
result = executor.run(step)
feedback = reviewer.check(step, result)
while feedback.has_errors:
result = executor.retry(step, feedback)
feedback = reviewer.check(step, result)
反思机制:让 Agent 自我检查
反思者是多智能体里最容易被忽略但价值最大的角色。执行者做完一步,反思者对照原始目标检查:这个结果对不对、有没有遗漏、格式对不对。发现问题就打回,让执行者重做。这一步把错误拦截在交付之前。
反思不是「再让模型读一遍」,而是要给它明确的检查清单:目标是什么、输入有没有用错、输出有没有满足格式要求。检查清单越具体,反思越有效。
- 目标对齐这一步的输出是否回答了规划者定义的子目标。
- 事实正确引用的数据和工具结果是否准确,有没有幻觉。
- 格式规范输出格式是否符合下游步骤的期望。
- 完整覆盖有没有遗漏规划者要求的子任务。
工具调用的协作模式
在多智能体系统里,工具调用不是每个 Agent 各自为政,而是集中管理。执行者需要工具时,向调度核心申请,调度核心把工具调用结果返回给执行者。这样做的好处是:工具权限统一管控、调用日志集中记录、不同 Agent 共用同一套工具。
| 角色 | 职责 | 能否调工具 |
|---|---|---|
| 规划者 | 拆任务、定步骤 | 一般不调,只读共享状态 |
| 执行者 | 完成具体步骤 | 可以,向调度申请 |
| 反思者 | 检查输出 | 一般不调,只读和评判 |
| 工具封装 | 实际执行外部操作 | 所有工具都在这一层 |
通信与状态共享
多智能体系统里最容易出问题的是状态同步:规划者不知道执行者做到哪一步了,执行者拿到的是规划者的旧版本。常见做法是用一个共享的任务黑板——所有 Agent 读写同一个上下文对象,每完成一步就更新黑板,其他 Agent 下次读的时候就能看到最新状态。
# 共享状态黑板的最简实现
class TaskBoard:
def __init__(self):
self.plan = []
self.results = {}
self.feedback = {}
def update_plan(self, steps): pass
def write_result(self, step, content): pass
def write_feedback(self, step, review): pass
def get_context(self):
return {"plan": self.plan, "results": self.results, "feedback": self.feedback}
框架选型与避坑
多智能体框架很多,选型时别被功能列表迷惑。先想清楚你的任务复杂度:简单任务一个 Agent 加工具就够,不要硬上多智能体;中等任务用规划加执行两个角色;复杂任务再加反思者。不要为了多智能体而多智能体,每多一个 Agent,延迟和成本都涨一截。
常见的坑:Agent 之间互相传过长的上下文,token 爆炸;反思者太严格,任务反复返工停不下来;角色边界模糊,规划者开始写代码,执行者开始改规划。边界要写死。
从原型到生产
原型阶段用框架快速跑通分工流程,生产阶段要补上:超时控制(某一步卡住不能无限等)、重试上限(反思打回不能超过三次)、成本监控(每个 Agent 调了多少次模型)、以及失败兜底(多智能体挂了要能降级到单 Agent)。
多智能体是手段不是目的。你的目标是「把复杂任务做对」,分工只是让它更可靠的一种方式——简单任务别硬凑多智能体。