AI Agent 架构设计模式:从 ReAct 到多智能体协作
Agent 不是更聪明的 chatbot,它是一台会自主决策的任务引擎。这篇给出五种主流模式与选型决策框架。
基础组件:不论哪种架构都一样
工具设计的两条要点要点一:描述要写清"什么时候用、参数含义、返回结构" 模型是靠描述来决策的。描述模糊,模型就乱调。 要点二:工具数量要克制 给模型 5 个精心设计的工具,胜过 20 个粗制滥造的工具。 工具太多且描述相似时,模型每次选工具都像抽盲盒——这就是"上下文混淆"。 模式一:ReAct(推理-行动循环)最基础、应用最广泛的模式。循环执行 思考 → 行动 → 观察,直到任务完成。
模式二:Plan-and-Execute(规划-执行分离)把"规划"和"执行"解耦,交给不同的 Prompt 或不同的模型实例。 以"撰写竞品分析报告"为例: 规划者产出: 1. 搜索市场主要竞争对手 2. 收集每个竞品的功能特性、定价、用户评价 3. 分析竞品优劣势 4. 总结我们的差异化机会 5. 撰写结构化报告 执行者逐步执行,每步产出作为下一步输入。 重规划者:一旦某步结果偏离预期(如竞品数量远超估计),带着"已完成步骤 + 当前结果"重新规划剩余步骤。
模式三:Reflection(自我反思)初步输出 → Critic 评估 → 发现问题则重新生成 → 循环。 Critic 通常只看三件事:
发现问题就列出具体改进点;质量达标则返回 Reflexion:把反思存进长期记忆Reflection 的强化版: Agent 在类似任务上"越做越好",靠的就是这个。
模式四:Multi-Agent(多智能体协作)层级模式(Hierarchical)协作模式(Collaborative / Debate)适用于需要多角度思考的决策场景。 工程实现:LangGraph 状态图用"状态图"表达多 Agent 协作,三步: 关键设计:每个节点只读自己需要的状态字段,只写回自己负责的字段。 这正是多 Agent 系统能被调试的关键——控制流是显式的,不是藏在某个 Prompt 里。
模式五:Handoff(智能体转交)一个 triage agent 分类用户意图,无缝转交给专业 agent,保留完整对话上下文。
选型决策框架问题从来不是"哪个架构最强",而是"你的任务落在哪一档":
一条务实原则:能用单 Agent 解决的,别上多 Agent;能用压缩解决的,别急着上外部存储。 多智能体的一个反面观点Cognition 团队 2025 年的《Don't Build Multi-Agents》给出了两条重要原则: 原则一:共享上下文(Share context) 原则二:行动携带隐含决策(Actions carry implicit decisions) 翻译成实战语言:两个各自持有部分上下文的子 Agent,会基于不一致的世界观做出互相冲突的决定——而且冲突点往往不在结果上,藏在"这个子 Agent 为什么这么做"的隐含假设里。 2026 年的共识比当年更精细:
判断标准只有一条:你的子任务之间需不需要谈判?需要谈判的不要拆。 框架选型
生产落地的三件事一、可靠性设计重试与退避:工具调用必须带指数退避重试(最多 3 次),把偶发失败消化在系统内部。 人工干预节点:模型对高影响动作的置信度低于阈值时,把动作计划交给人确认,而不是直接执行。 二、成本控制Agent 的 Token 消耗是单次对话的 10–100 倍。
| Prompt Caching | 降低重复 System Prompt 费用 |
|---|
三、可观测性
生产环境的 Agent 必须记录完整执行轨迹。每一步至少记录:
时间戳 | 节点名称 | 输入 | 输出 | Token 用量 | 延迟推荐工具:LangSmith、Langfuse、Arize Phoenix。
参考资料
ReAct 论文 — https://arxiv.org/abs/2210.03629
LangGraph 官方文档 — https://langchain-ai.github.io/langgraph/
AutoGen — https://github.com/microsoft/autogen
CrewAI — https://github.com/crewAIInc/crewAI
Cognition, *Don't Build Multi-Agents* — https://cognition.ai/blog/dont-build-multi-agents
Anthropic, *Effective context engineering for AI agents* — https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents