为什么复杂任务需要多个 AI 协作

最近在读 Anthropic 官方的一篇技术文章,讲的是他们如何用多 Agent 架构来解决复杂应用的开发问题。这篇文章是 Claude 官方团队的经验总结,他们在开发复杂 AI 应用时遇到的坑和总结的方法论,都非常有参考价值。

作者提到一个常见的现象:让 AI 做一个复杂项目,开头往往很顺利,但做到后面就会越来越偏,最后功能根本跑不通,或者设计出来的东西"能看但不好用"。这不是模型能力的问题,而是工作方式的问题。这让我想起了自己做课程设计的经历。

单 Agent 失败轨迹

上下文焦虑——长时任务的"注意力涣散"

人脑和 AI 都会"糊"

文章里提到一个概念叫 “Context Anxiety”(上下文焦虑)。简单说就是,当 AI 连续工作几个小时后,即使还没超出它的上下文限制,表现也会明显下降:开始忽略关键的约束条件、重复犯已经修复过的错误、对明显的 bug 视而不见。

这跟我期末考试前连续复习 8 小时的状态简直一模一样。第一天复习,精神抖擞,看什么都清晰。连续学几个小时不休息后,脑子就"糊了",明明书上的内容都看过,但已经开始遗漏知识点、做出错误判断。

AI 的"疲劳"体现在上下文窗口上。我们平时可能只觉得 context 是个成本问题(token 多了调用变贵),但这篇文章指出了更深层的限制:当上下文被填满,模型的"注意力"会涣散。就像人连续工作太久,注意力无法集中一样。

两种缓解策略

文章提到了两种应对方式:

1. Context Compaction(上下文压缩)

把历史对话中的细节丢掉,只保留关键信息。类似于我们做笔记摘要。但摘要有风险,你以为不重要的细节,可能恰恰是关键线索。

2. Context Reset(上下文重置)

直接"换一个人接力"——清空当前上下文,让新的 Agent 实例接手任务。新 Agent 带着有限但清晰的上下文进场,反而能做出更好的判断。

这两种方式不是互斥的,而是在不同场景下各有优势。对于需要连续推理的代码修改,压缩更合适;对于阶段性完成的任务(比如"设计完成,进入开发"),重置往往更有效。

Context 管理策略对比

这让我想到:长时任务失败,不一定是能力问题,可能是"注意力管理"出了问题。就像我不能指望自己连续高强度工作 8 小时还保持清醒,也不能指望单个 AI 在超长的上下文里始终"清醒"。

自我评估偏差——AI 也会"护短"

设计评审中的尴尬

文章里提到一个有趣的实验:让 AI 设计一个网页组件,然后让它给自己的设计打分。结果是——即使设计得很平庸,AI 也会给出 8 分、9 分的高评价。但把同样的设计拿给另一个独立的 AI 评审,可能只给 5 分或 6 分。

我也经常"护短"

这让我想起自己刚写完一段代码,觉得逻辑挺清晰的。但放一天再看,或者找同学 review,突然发现边界条件没处理。测试一跑,各种奇怪的场景都能让代码崩掉。

AI 也有同样的问题。让同一个模型去验证它自己写的代码,它容易"护短"——潜意识里想证明自己是对的,于是对那些 bug 视而不见。

自我评估偏差

这就是为什么需要独立的 Evaluator(评估者)。这和人类团队需要 Code Review 是一个道理。

解决方案——Multi-Agent 的本质是"分工"

既然单个 AI 会有"注意力涣散"和"自我评估偏差"的问题,那解决方案就很自然了:让多个 Agent 分工协作,各自专注自己最擅长的环节

这不是为了技术而技术,而是在模拟真实的人类团队协作

Agent 分工模型

Agent 角色 对应岗位 职责
Planner 产品经理/项目负责人 把模糊需求变成可执行的计划和规格说明
Generator 程序员/设计师 实际写代码、做设计
Evaluator 代码审查/测试 客观评判质量,指出问题

这个分工对应了人类解决复杂问题的自然流程:先规划(确定要做什么)、再执行(实际动手)、后验证(检查做得对不对)。

可量化的评分标准

Evaluator 不能只说"这个设计不好看"——这种主观评价没有可操作性。好的 Evaluator 会把"好不好"变成可量化的维度:

维度 含义 评分标准
设计质量 视觉效果和用户体验 1-10 分,基于专业设计原则
原创性 是否有抄袭或过度模仿 与参考设计的相似度检测
工艺 代码/设计的精细程度 细节处理、边界情况覆盖
功能性 是否满足需求规格 需求覆盖度百分比

原来"审美"也可以工程化。通过定义清晰的评分维度,主观的质量评判变成了可执行、可迭代的客观标准。

迭代循环

三 Agent 不是各干各的,而是形成一个迭代循环:

三 Agent 协作流程

这个循环跑 5-15 轮,质量会有显著提升。这和人类团队的"写代码 → Code Review → 修改"循环是一样的逻辑。

与单 Agent 的本质区别

单 Agent 的问题在于"身兼数职"——同一个上下文里,它既要规划、又要执行、还要评判。这三个角色对上下文的需求是冲突的:

  • 规划者需要全局视角,关注目标和约束
  • 执行者需要专注细节,关注当前任务
  • 评估者需要客观中立,关注问题和风险

让一个人同时扮演这三个角色,结果就是三个角色都做不好。Multi-Agent 架构通过物理隔离(每个 Agent 有自己的上下文窗口)解决了这个冲突。

单 Agent vs Multi-Agent 架构对比

与之前学习的呼应

之前我写过一篇文章讲 Agent 的基本公式Agent = 模型 + 工具 + 循环 + 状态。那篇文章聚焦于单个 Agent 的运转机制。

这篇文章是自然的延伸:从单个 Agent 到 Multi-Agent,是从"一个人单打独斗"到"团队协作"的演进

两篇文章的核心洞察是一脉相承的:

主题 单个 Agent Multi-Agent
核心问题 Agent 是什么、如何运转 复杂任务为什么需要多个 Agent
关键机制 模型 + 工具 + 循环 + 状态 Planner + Generator + Evaluator
工程原则 状态管理是 Agent 的生命线 上下文管理是复杂任务的生命线

随着模型能力进化,实现 Multi-Agent 的方式也在变化。但核心原则始终不变:复杂任务需要分工,主观质量需要外部评估。这不是模型能力的问题,而是认知架构的问题——就像再聪明的人也需要团队协作来解决复杂问题。

我的收获和启发

读完这篇文章,我有几点很深的体会:

1. 上下文管理是"注意力管理"

长时任务要考虑"注意力窗口"而非无限上下文。连续工作几小时后出现"context anxiety"是正常的——换我在图书馆连续学 8 小时,脑子也会糊。以后做项目,我要学会主动分段,而不是一股脑死磕。

2. 找人 Review 是必要的

自我评估不可靠,独立评估者是质量保证的关键。自己写的代码自己评,就像学生自己给自己打分——结果往往偏高。以后做课程设计,我要更主动地找同学互相 review,而不是写完就交。

3. Multi-Agent 的本质是团队协作

这不是什么高深的技术炫技,而是在模拟人类解决复杂问题的分工逻辑。Planner + Generator + Evaluator 的分工,对应的就是产品经理 + 程序员 + 测试的经典组合。

写在最后

这篇文章给我的启发不只是 AI 工程的知识,更是做项目的方法论:

  • 不要试图一口气写完一个大作业——先规划、再实现、最后检查
  • 代码写完后放一放再看,或者找同学 review,会比自己看发现问题更多
  • 一个人埋头苦干 8 小时的效果,往往不如分 4 个 2 小时,中间休息和讨论

这和 AI 工程的最佳实践是一样的:复杂任务需要分工,质量需要外部视角,持续高强度工作需要管理注意力

comments powered by Disqus