跳转至

心智模型

Agent 设计模式之所以容易乱,不是因为模式太多,而是因为我们经常把几个层级混在一起讲。

这本小册子的主线是:能用更简单的结构解决,就不要急着上更复杂的 Agent。

一张图

flowchart TD
  A["一次模型调用"] --> B["固定流程(Workflow)"]
  B --> C["Agent 循环"]
  C --> D["多 Agent 协作"]
  D --> E["权限、护栏、评测"]

越往右,系统越灵活;也越贵、越慢、越难测试。复杂度不是免费的。

1. 一次模型调用

如果任务只需要一次模型调用,就停在这里:

  • 总结一段文字
  • 分类一个输入
  • 改写一句话
  • 抽取一个字段

这不是“不够 Agent”。这是工程上的好选择。

2. 固定流程(Workflow)

Workflow 的关键是:路径由代码决定

比如:

抽取信息 -> 校验格式 -> 改写文本 -> 输出结果

步骤提前知道,分支也有限。这种情况下,固定流程通常比 Agent 循环更稳、更便宜,也更容易写测试。

常见模式:

  • Prompt Chaining
  • Routing
  • Maker-Checker
  • Voting

3. Agent 循环

Agent 循环的关键是:下一步由模型决定

典型过程是:

当前状态 -> 模型决定动作 -> 执行动作 -> 拿到工具返回 -> 更新状态 -> 再来一轮

只有当下一步真的依赖工具返回时,才需要这一层。比如:

  • 搜索结果不确定
  • API 返回可能缺字段
  • 文件内容要先读了才知道怎么改
  • 用户信息不足,需要追问

ReAct 就是最经典的 Agent 循环。

4. 多 Agent 协作

多 Agent 协作不是“自动更聪明”。它只是把不同职责拆开。

当一个 Agent 同时背着太多东西时,才考虑拆:

  • 工具太多
  • 领域太多
  • 权限边界不一样
  • 子任务可以并行
  • 需要不同专家互相审查

拆开以后,你会得到专业化;也会付出沟通成本、状态同步成本、调试成本。

5. 权限、护栏、评测

只要 Agent 会做真实动作,就要开始问上线问题:

  • 哪些工具允许调用?
  • 哪些参数必须拒绝?
  • 哪些动作需要人工确认?
  • 每一步有没有 trace?
  • 改完以后有没有回归测试?

这部分不是“高级功能”,而是让系统可上线的安全带。

判断规则

如果这个够用 就先停在这里
一个 Prompt 能解决 一次模型调用
步骤提前知道 固定流程(Workflow)
下一步依赖工具返回 Agent 循环
职责边界太多 多 Agent 协作
会影响真实用户或真实资产 权限、护栏、评测

这也是 Anthropic 那篇文章的核心建议之一:从简单、可组合的结构开始,只在必要时增加复杂度。

这个仓库怎么教

这里不会先塞给你一个大框架。每个模式都会尽量做到:

  • 一个最小 Python 实现
  • 一个能离线跑的例子
  • 一张流程图
  • 一段“它到底解决什么问题”
  • 一段“什么时候别用它”

你要学的不是术语本身,而是:某个失败模式出现时,为什么这个模式刚好能补上。

参考: