01 背景:为什么 Agent 比你想象的更容易踩坑
ChatGPT 之后,生成式 AI 的第二波浪潮指向了一个共同方向:AI Agent。从AutoGPT、BabyAGI 到如今各企业自研的 Copilot 助手,Agent 架构正在快速落地。但现实很骨感:大量团队在构建 Agent 系统时,经历了相似的痛苦循环——建好了,跑不通;跑通了,容易死循环;不死循环了,发现结果全是幻觉。
这不是个别团队的问题。IBM、Microsoft、Neudesic 的工程师联合发布的论文[「The Landscape of Emerging AI Agent Architectures」]系统梳理了当前 Agent 架构的现状和陷阱。下面结合论文核心结论和工程实践,整理一份完整的 Agent 设计避坑手册。
02 基础认知:Agent = Brain + Perception + Action
开始设计之前,先把 Agent 的本质搞清楚。一个最小可用的 AI Agent 由三个部分构成:
Brain:大语言模型,负责推理和决策(类比人类大脑)
Perception:感知环境反馈、用户输入(类比感官系统)
Action:调用工具、操作外部系统(类比手脚)
很多设计失败的 Agent,本质上就是把大模型套了个壳就叫 Agent。没有规划(Planning)、没有工具调用(Tool Calling)、没有反思(Reflection)能力的,还是高级聊天机器人,不是真正意义上的 Agent。
03 架构选型:单 Agent 还是多 Agent?
这是第一个需要做对的选择。
单 Agent 适用场景
任务目标清晰,步骤可枚举;反馈来源是环境或用户,不需要其他 Agent 提供信息;工具集合有限,执行路径相对固定。典型案例:代码审查 Agent、产品文档写作 Agent。
多 Agent 适用场景
任务需要多个专业能力(搜索+写作+代码执行);存在多个可并行的独立子任务;需要协作、讨论和多方校验。
论文原文指出:当问题定义明确、不需要其他 Agent 或用户反馈时,单 Agent 表现出色;而多 Agent 则在需要协作和多个独立执行路径时更占优势。
多 Agent 有两种拓扑:
垂直架构:一个 Leader Agent 负责分配任务,其他 Agent 向 Leader 汇报。专业化分工,汇报线清晰。
水平架构:所有 Agent 平等协作,共享同一个讨论线程,各自认领任务。适合需要大量讨论的场景。
论文中一个关键发现值得单独提出来:有明确 Leader 的团队,比无 Leader 团队快近 10%。在没有 Leader 的情况下,Agent 们会把 50% 的时间花在互相“发指令”上,而不是真正执行任务。
04 任务拆分:如何把大任务变成可执行的子任务
这是 Agent 系统中最核心、也最容易做错的一步。
任务拆分的 5 种方法
① Task Decomposition(任务分解):把大任务递归拆解为子任务树。这是最基础的方法。关键原则:每个子任务必须原子化——有明确输入输出,可独立执行验证。拆分深度一般控制在 2-3 层,过深的规划链会显著增加执行出错的概率。
② Multi-plan Selection(多计划选择):不急着拆解,而是让 LLM 一次性生成 N 个候选计划,通过 Evaluator 评估后选择最优路径。适合需求模糊、方向不确定的场景。
③ External Module-aided(外部模块辅助):LLM 不自己负责规划,而是翻译成专用模块可理解的格式,交给外部规划器执行。论文特别指出:在机器人规划任务上,纯 LLM 目前缺乏直接将自然语言指令转换为可执行计划的能力。结合 PDDL 等经典规划工具后,效果显著优于纯 LLM 方案。这个结论对企业 AI 应用有重要启示:SQL 查询、路径优化、数值计算这类精确推理任务,不应该强依赖 LLM 规划,而应该由专用模块负责,LLM 只做指令翻译层。
④ Reflection & Refinement(反思迭代):不追求一次拆解完美,而是在执行中根据反馈动态修正计划。LATS 和 Reflexion 都采用了这个思路。
⑤ Memory-augmented(记忆增强):规划时主动查询外部记忆库,参考历史经验。避免每次规划都从零开始。
多 Agent 场景下的动态组队
多 Agent 架构里,任务拆分不只是“谁做什么”,而是动态构建专业团队:规划阶段(Leader 分析任务,拆成子任务,按需召唤 Agent,用完即弃)→ 执行阶段(Agent 并行工作)→ 评估阶段(Leader 汇总结果,评估质量,如需新能力则重新组队,进入下一轮)。
05 系统提示词设计:7 层结构法
一个生产级 Agent 的系统提示词,推荐用以下 7 层结构:
① Role / Persona(角色定义)
② Core Capabilities(能力边界)
③ Tools(可用工具)
④ Workflow(执行流程)
⑤ Output Format(输出格式)
⑥ Constraints(硬性约束)
⑦ Memory Rules(记忆规则)
原则一:Persona 越具体越好
❌ 不要这样写:“你是我的助手,帮助用户完成任务”
✅ 应该这样写:“你是一名 10 年经验的后端工程师,擅长 Python/Golang 架构设计。你用简洁、直接的技术语言交流。禁止在非技术任务中发挥创意想象力。”
研究发现:明确的职业身份会实质性地影响模型行为。
原则二:工具定义要覆盖“禁止使用场景”
很多 Agent 乱调工具的根本原因在于工具描述只写了“能做什么”,没写“不能做什么”。每个工具描述必须包含:用途(解决什么问题)、输入格式(期望什么数据)、输出格式(返回什么结果)、禁止使用场景(关键!)。
原则三:执行流程要有标准步骤
不要让 Agent 自己摸索执行路径。规定标准操作顺序:理解(需求如有歧义先提问确认)→ 拆解(用 [Task-N] 标注每个子任务)→ 执行(按依赖顺序执行,每完成一个报告进度)→ 验证(检查输出是否满足需求)→ 交付(按统一格式呈现结果,说明决策理由)。
06 负面清单:Agent 设计中最常见的 16 种错误
架构设计层
❌ 单 Agent 处理超长任务链:超过 8-10 步后,幻觉率和重复循环概率急剧上升。长任务必须上多 Agent 并行。
❌ 无 Leader 的水平多 Agent 团队:团队 50% 时间在互相发指令而不是执行任务。必须有明确的调度者(Agent Leader 或人类)。
❌ 任务依赖关系模糊就并行执行:A 依赖 B 的输出,但 B 先跑了。拆任务时必须标注依赖图,串行在前,并行在后。
Tool Calling 层
❌ 工具描述不具体,Agent 乱调:必须明确用途、输入格式、输出格式、禁止使用场景。
❌ 没有循环检测机制:Agent 可能反复调用同一工具陷入死循环。必须设计 max_iterations 限制和执行计数监控。
❌ 信任工具输出,不做验证:工具返回错误数据,Agent 直接用导致级联失败。关键工具输出必须加自我验证步骤。
Memory 层
❌ 只用 Context Window 做记忆:sliding window 记忆容量受限于 token 上限,长期任务必然遗忘。短期记忆用 scratchpad,长期记忆用向量数据库或文件存储。
❌ 记忆无过期和更新机制:Agent 记住的判断是错的,但永远不更新。记忆必须带时间戳和版本,定期验证有效性。
❌ RAISE 的角色幻觉问题:论文记录了一个 Sales Agent 因为没有明确定义角色能力边界,突然能写 Python 代码,开始做开发任务而不是销售任务。每个 Agent 的能力边界必须在 Persona 里显式禁止。
Planning 层
❌ 一次性生成完整长计划,不留调整空间:环境变化后整条计划报废。必须设计 Replan 触发条件(收到意外反馈时自动重新规划)。
❌ 依赖纯 LLM 做精确规划:机器人路径、SQL 生成、数值优化等——这类任务必须交给专用规划器,LLM 只做自然语言翻译层。
安全可靠性层
❌ 执行破坏性操作前没有确认:删库、删文件、强制终止进程——直接执行没有兜底。危险操作必须加 CONFIRM_REQUIRED 标志,等待人工批准。
❌ 全程无 Human-in-the-loop:关键决策节点(规划审批、预算审批、方向变更)必须有手工确认机制。
07 论文中最常见的 5 种失败模式
序号 失败模式 表现 根源
1 重复循环 ReAct 反复生成相同动作 没有退出条件或反馈信号
2 局部最优 Reflexion 停在次优解不动了 评估器也有认知偏差
3 幻觉传播 Agent 错误输出被下个 Agent 当真 没有交叉验证
4 能力漂移 做着做着偏离原始目标 缺乏阶段性 Checkpoint
5 上下文遗忘 长任务后期丢失关键约束 记忆机制不完善
08 快速设计检查清单
每次设计新 Agent 之前,对着这份清单过一遍:
□ 角色定义:具体职业身份,不是“助手”
□ 能力边界:明确列出“不能做”的事
□ 工具规范:每个工具都有禁止使用场景
□ 循环保护:有 max_iterations,有自我验证
□ 记忆设计:短期+长期分离,有过期机制
□ 规划校验:有不符预期时的 Replan 触发条件
□ 多 Agent:有信息过滤,不是所有 Agent 都能读所有消息
□ 危险操作:有 CONFIRM_REQUIRED 或人工确认
□ 日志审计:每个 Action 都有记录
□ 人类兜底:关键节点有人工退出机制
09 结语
Agent 架构的设计,本质上是在解决一个核心矛盾:LLM 的能力很强,但它的不可预测性也很强。论文中有一句话值得所有 AI 应用开发者记住:“当前社区仍在争论单 Agent 还是多 Agent 系统更适合解决复杂任务。”答案从来不是哪个架构更好,而是你的任务适合哪种架构。把这个问题回答清楚,比选任何框架都重要。

参考资料
- The Landscape of Emerging AI Agent Architectures for Reasoning, Planning, and Tool Calling: A Survey,Tula Masterman et al.,arXiv:2404.11584
- Open-Source LLM-Driven Federated Transformer for Predictive IoV Management,Yazan Otoum et al.,arXiv:2505.00651
