返回 Expert 笔记
Expert Day 155

Week 23 复习——5 种 Agent 模式总结与决策树

整合 Day 149-154 的 5 种 agent 模式(Anthropic 5+1 + 自定义维度);明确每种的"判定信号"

2026-10-03
Phase 3 - Agent架构与多Agent (Day 149-162)
ReviewAgentPatternsDecisionTreeAntiPatterns

日期: 2026-10-03 方向: AI系统工程 / Agent 阶段: Phase 3 - Agent架构与多Agent (Day 149-162) 标签: #Review #AgentPatterns #DecisionTree #AntiPatterns


今日目标

类型内容
学习整合 Day 149-154 的 5 种 agent 模式(Anthropic 5+1 + 自定义维度);明确每种的"判定信号"
实操把 5 种模式画成决策树;列每种的"反例";写 agent_patterns.md
产出agent_patterns.md(约 600 行 markdown)+ 决策表

一、本周学到了什么

Day主题关键收获
149Agent 定义Workflow vs Agent vs Chatbot 严格区分;Anthropic 5+1 pattern
150ReAct裸 SDK 实现 tool-use loop;thinking + tool_use 模式
151Plan-Execute分离 planner/executor;DAG 并行;replan 机制
152Tool designDescription 决定 80% 行为;schema/error/parallel
153MCPresources/prompts/tools 三类原语;Claude Desktop 接入
154A2A双 agent 通信、轮次/终止/角色 collapse

二、5 种核心 agent 模式(重新组织)

把 Anthropic 5+1 pattern 与本周代码对应:

模式 1: Workflow(非 agent)

定义:LLM + 代码 if/else 编排,没有 LLM 自主决定下一步。 子类:Prompt chaining / Routing / Parallelization / Evaluator-optimizer。 何时用:步骤明确、失败成本低、需要可预测。

# 例: 信贷审批 workflow
def credit_workflow(application):
    docs = parse_docs(application)               # tool
    summary = llm_summarize(docs)                # LLM
    risk = llm_classify(summary, schema=RISK)    # LLM, structured
    if risk == "HIGH":
        return escalate_to_human(summary, risk)
    decision = llm_decide(summary, rules=POLICY) # LLM
    return decision

模式 2: ReAct Agent(Day 150)

定义:单 LLM + tools + loop(Thought → Act → Observe)。 判定信号:探索式任务、tool 集合明确、步骤数 ≤ 10。 典型代码react.py + tools.py

模式 3: Plan-Execute Agent(Day 151)

定义:Planner LLM + Executor LLM + Synthesizer LLM。 判定信号:长任务(5+ steps)、可分解、有 DAG 依赖、希望 model-route 省钱。 典型代码plan_agent.py

模式 4: Multi-Agent(Day 154 + 159)

定义:N≥2 个 agent,各有不同 role,通过通信协议协作。 子类:双 agent 对话 / Hierarchical / Sequential / Network。 判定信号:角色冲突明显、需要 different perspectives、单 agent 易陷入 echo chamber。

模式 5: MCP-Based Agent(Day 153)

定义:客户端 agent + 1+ MCP servers。Tools/resources/prompts 通过协议解耦。 判定信号:跨厂商互通、希望工具复用、企业级权限隔离。 典型代码mcp_server.py + Claude Desktop 配置。

注意:MCP-based 不与 ReAct/Plan-Execute 互斥。一个 ReAct agent 完全可以通过 MCP 拿 tools。MCP 是"工具来源"维度,ReAct 是"loop 模式"维度。


三、决策树(新建项目时怎么选)

┌────────────────────────────────────────────────┐
│  Q1: 任务步骤可预先列出且固定吗?               │
└────────────────┬───────────────────────────────┘
                 │
        ┌────────┴────────┐
        │                 │
    Yes ▼               No ▼
   ┌──────────┐    ┌────────────────────────────┐
   │ Workflow │    │ Q2: 任务步骤数 vs 探索性?  │
   │          │    └─────┬──────────────────────┘
   │ • prompt │          │
   │   chain  │   ┌──────┴──────┐
   │ • routing│   │             │
   │ • parallel│ ≤3, 探索式    长 + 可分解
   │ • eval-  │ ▼              ▼
   │   opt    │┌──────────┐  ┌──────────────┐
   └──────────┘│  ReAct   │  │ Plan-Execute │
              │  Agent   │  │              │
              └──────────┘  └──────────────┘
                                  │
                                  │ 有多个差异化角色?
                                  ▼
                              ┌────────────────┐
                              │ Multi-Agent    │
                              │ (hierarchical /│
                              │  sequential /  │
                              │  network)      │
                              └────────────────┘

  另一维度(与上述正交):
  Q3: 需要跨客户端复用工具 / 多 MCP server?
       Yes → 把工具层换成 MCP(Day 153)
       No  → 工具内嵌在 agent 代码里

四、判定信号 cheat sheet

信号→ 模式
步骤固定,每步 0-1 个 LLM callWorkflow
任务用一句话描述,无明显步骤ReAct
任务有 5+ 子任务,可并行Plan-Execute
需要冲突视角(generator vs critic)Multi-Agent (双)
需要专业分工(writer/reviewer/researcher)Multi-Agent (hier)
跨产品复用相同工具+ MCP
实时延迟敏感(< 5s)Workflow(agent 太慢)
失败一次成本 > $1kWorkflow + human-in-loop
决策需可审计Workflow 或 Plan-Execute(plan 可审)
任务高度开放(research)ReAct / Multi-Agent

五、典型反例(哪些场景反而不该上 agent)

反例 1: 实时风控

为什么:要求 < 100ms 决策,agent loop 30s。 应该:纯 ML 模型 + 规则引擎;LLM 只用来做事后归因解释。

反例 2: 高频交易

为什么:μs 级敏感,LLM 慢且不确定。 应该:纯量化代码。LLM 只给 strategy idea,不参与实时决策。

反例 3: 已知 SOP 的报送

为什么:步骤完全固定,agent 增加变数和成本。 应该:Workflow + LLM 用来填模板/抽取字段。

反例 4: 简单 FAQ

为什么:单轮 RAG 就够,没必要 agent loop。 应该:RAG + 单次 LLM。

反例 5: 用户确认型操作("删账户吗?")

为什么:deterministic UI flow 更安全。 应该:Workflow + 显式 confirmation modal。

反例 6: 数学计算

为什么:LLM 算术不可靠。 应该:LLM → tool(calculator)→ LLM 解读。本质是 workflow。


六、agent_patterns.md 内容大纲

这部分是今天的产出文档大纲,可作为团队 onboarding 文档。

# Agent Patterns at [Company] — 内部决策手册

## 1. 词汇统一
- Workflow / ReAct / Plan-Execute / Multi-Agent / MCP

## 2. 决策树(见上)

## 3. 每种模式的标准结构 + 代码骨架

### 3.1 Workflow
- when to use
- 代码模板(routing example)
- 监控指标

### 3.2 ReAct
- when to use
- 代码模板(来自 Day 150)
- 监控指标(iter count, tool err rate)

### 3.3 Plan-Execute
- when to use
- 代码模板(来自 Day 151)
- 监控指标(plan length, replan rate)

### 3.4 Multi-Agent
- when to use
- 代码模板
- 监控(rounds, role collapse)

### 3.5 MCP layer
- when to integrate
- 配置示例

## 4. 反例集
(见上)

## 5. 评估清单
- ✅ Token cost / run
- ✅ Latency p50/p95
- ✅ Accuracy on golden set
- ✅ Tool error rate
- ✅ Human override rate

## 6. Postmortem 模板
当 agent 在生产出问题,按这个结构调查

七、对比表——5 种模式各项指标

维度WorkflowReActPlan-ExecuteMulti-Agent+ MCP
复杂度极高(正交)
LLM call/run1-33-155-126-30+(正交)
Cost/run$0.005-0.02$0.02-0.10$0.02-0.06$0.10-0.50-
Latency1-5s10-30s8-25s30-120s+ 50ms/call
可预测性-
可审计性高(plan 可审)-
调试难度+
适合任务步骤明确探索性分解性长任务多角色跨客户端

八、生产经验集锦(本周再总结)

8.1 普适经验

  1. 永远从 workflow 开始——只有数据证明不够再升级
  2. Cost 监控是必须,不是可选
  3. 永远有 max_iter / max_rounds / max_cost 三道闸
  4. Tool description 是高 ROI 优化点,比改 system prompt 收益大
  5. Cache 是 agent 经济性的关键(5-10x 差距)
  6. Human-in-the-loop 不是失败信号,是设计

8.2 反模式

  1. ❌ 直接上多 agent 框架而没跑过单 agent
  2. ❌ Tool description 写一行
  3. ❌ 没 cost cap 跑生产
  4. ❌ destructive tool 没 confirm
  5. ❌ 把 ReAct + Plan-Execute + Multi-Agent 全用上(炫技)
  6. ❌ 不区分"失败 retry" vs "失败停止"
  7. ❌ 不写 trace 直接发 prod

九、Web3 角度——本周复盘

适合 Web3 的模式

场景模式
链上数据查询 + 解读ReAct (read-only)
Portfolio rebalancingPlan-Execute(可审 plan)
自动化 DeFi 操作Plan-Execute + 双 agent(trader + risk)
DeFi research / 协议对比Multi-Agent (researcher + critic)
跨钱包/跨协议工具集成MCP-based

Web3 特有约束(每种模式都要叠加)

  • 写链动作必须 simulate first
  • 用 session keys 限制权限
  • destructive 必须 user 签
  • 成本含 gas
  • 错误含 revert reason

十、自我测试题(如果作为面试官,本周内容怎么考)

T1: 给定一个业务需求 "我希望 LLM 帮我做日终对账",应该用什么 agent 模式?为什么?

A: Workflow(步骤固定:取数 → 比对 → 异常列表 → 通知)。LLM 只做"异常归因"环节,不需要 agent loop。

T2: 给定一个业务需求 "客户经理对一个上市公司做尽调",应该用什么 agent 模式?

A: Plan-Execute 或 Multi-Agent。任务长且可分解(基本面 / 财务 / 治理 / 风险 / 同业)。如果想强化质量加 reviewer agent。

T3: 公司想标准化内部所有 agent 用的工具,应该选什么?

A: MCP。每个业务域一个 server,所有客户端(Claude Desktop / 自建 chat)都接入。权限/audit 集中。

T4: ReAct agent 经常 tool 选错,先怎么排查?

A: ① 先看 tool description 长度和清晰度;② 看 input_schema 是否够严;③ 看 system prompt 是否暗示选 tool 偏好;④ 检查 thinking 内容;⑤ 把不必要的 tool 去掉减少干扰。

T5: Multi-agent 系统跑了几个月,发现 cost 比单 agent 高 5x 但准确率只高 5%,怎么办?

A: ROI 不划算。降级到单 agent + self-reflect。或保留 multi-agent 但只在高价值任务(dollar value > X)启用,低价值任务降级。


十一、本周代码索引

文件行数(含注释)核心功能
base_agent.py (149)~150BaseAgent 接口 + EchoAgent 测试
react.py (150)~280裸 SDK ReAct loop
plan_agent.py (151)~320Planner + Executor + Synthesizer
tools.py (152)~48010 个金融工具 + execute_tool framework
mcp_server.py (153)~250MCP server with 3 tools/1 resource/2 prompts
a2a.py (154)~280双 agent 对话
总计~1760自实现的可运行 agent 基础设施

关键认知:1760 行 + 14 天 ≈ 一个工程师能掌握的最小 agent stack。再往后是产品化、评估、运维(Day 156+)。


十二、对照 Anthropic 5+1 vs 自家代码

Anthropic Pattern本周对应代码是否真的是 Agent?
Prompt chaining(未单独写,类似 plan_agent 的 sequential 结构)❌ Workflow
Routing(未单独写,需要时几行代码即可)❌ Workflow
Parallelizationtools.py 的 parallel demo❌ Workflow
Orchestrator-workersplan_agent.py半-Agent
Evaluator-optimizera2a.py 的 reviewer 反复让 analyst 改半-Agent
Agents (autonomous)react.py✅ Agent

看完这张表能解决面试官最常追问:"你这个项目里哪些是 agent 哪些是 workflow?"


十三、与生产系统的差距清单

本周写的代码距离"能给 1000 用户用"还差什么?

维度当前生产需要
Persistence无(in-mem)Postgres/Redis
Authn/AuthzOAuth + tenant 隔离
Multi-tenancy按 tenant 分流
Rate limitingper-user / per-tenant
ObservabilityprintOTel + LangSmith / Helicone
Cost FinOpstrace 里印预算 + 报警 + 抑制
Eval 自动化手动CI 集成
Failure handlingretry / maxcircuit breaker / fallback
Deploypython filek8s + helm + canary
Docs / runbookrunbook + on-call
Security reviewthreat model + pen test

这些是 Day 163-208 的内容预告(Phase 3 后半段会展开 observability / eval automation / production ops)。


十四、扩展练习(家庭作业 / 巩固)

  1. 改写 react.py 加入 cost guardrail——超过 $0.50 自动停。
  2. plan_agent.py 加 DAG-aware parallel execution——独立 step 真正并发。
  3. tools.pytool_test.py——每个 tool 至少 3 个 unit test。
  4. 写 MCP client——不通过 Claude Desktop,直接 Python mcp.client.stdio 调你的 mcp_server.py
  5. a2a.py 加 evaluator agent——三方对话,evaluator 强制收敛。
  6. 设计一个"什么时候上多 agent" SOP 文档给团队用。
  7. 跑一遍真实金融案例:从 SEC 拉一份 10-K,跑 ReAct vs Plan-Execute,对比结果质量与成本。

十五、复习题集——本周 14 个核心问题

把这些问题的简短答案默写一遍,下次面试不用临时翻笔记:

  1. Workflow 与 agent 的本质区别? 控制流:workflow 由代码决定下一步,agent 由 LLM 决定下一步。

  2. Anthropic 5+1 pattern 是哪几种? Prompt chaining / Routing / Parallelization / Orchestrator-workers / Evaluator-optimizer / Agents。前 5 是 workflow 变体,最后一个才是真 agent。

  3. ReAct 为什么比 Act-only 好? Thought 提供推理空间 + self-correct 余地。HotpotQA 上 +5pp。

  4. Plan-Execute 适合什么场景? 长任务(5+ steps)、可分解、有 DAG 依赖、想 model-route 省钱。

  5. Tool description 写多长合适? 100-200 字含 USE WHEN / DON'T USE FOR / 例子。Sweet spot。

  6. MCP 三类原语? Resources(user 加载数据)/ Prompts(UI 模板)/ Tools(LLM 自主调)。

  7. A2A 通信的 4 种范式? Message passing / Shared state / Orchestrator / Pub-Sub。

  8. 多 agent 系统最常见的 bug? 角色 collapse / 死锁 / token 爆炸 / 状态合并冲突 / prompt injection 横向扩散。

  9. Anthropic stop_reason 的 5 个值? end_turn / tool_use / max_tokens / stop_sequence / pause_turn。

  10. prompt caching 能省多少钱? 重复输入只算 0.1×。系统 prompt + tool schema 可省 80-90% 输入 cost。

  11. Tool 错误的三类? USER_INPUT_ERROR(改参数 retry)/ TRANSIENT(backoff retry)/ FATAL(停止 escalate)。

  12. MCP server 的 stdout 污染问题? 所有日志走 stderr / file,stdout 仅 JSON-RPC。print 任何东西破坏协议。

  13. Anthropic 角色 alternation 限制? messages 必须 user/assistant 严格交替,否则 API 报错。多 agent 转译时要 coalesce。

  14. 何时不该上 agent? 实时风控、HFT、固定 SOP 报送、简单 FAQ、destructive 一锤子操作。


十六、本周复习——金融场景对应表

业务场景推荐模式备注
信贷尽调备忘录Plan-Execute(5+ steps)Day 151
客户经理 copilotReAct 起步,复杂化加 MemoryDay 150 + 158
投资委员会 dry-run双 agent (analyst + reviewer)Day 154
合规自动化Workflow 优先;复杂时 Plan-ExecuteDay 155
内部知识库MCP server + Claude DesktopDay 153
反洗钱调查ReAct(多源链路追踪)Day 150
监管报送Workflow(步骤固定)反例
HFT不上 agent反例

十七、Web3 视角的本周复习

Web3 场景推荐模式
链上数据查询ReAct(read-only)
Portfolio rebalancingPlan-Execute(plan 可审)
DeFi automationPlan-Execute + 双 agent (trader + risk)
跨协议工具集成MCP server
DeFi researchMulti-Agent(researcher + critic)

链上场景普遍偏好 plan-execute——因为 plan 是可审计的"将要发生的清单",而 ReAct 的探索式让人不安。


十八、本周复盘 self-assessment

打分 1-5:

  • 我能不看任何资料、白板默写 ReAct loop 核心代码(target ≥ 4)
  • 我能解释 ReAct vs Plan-Execute trade-off(target = 5)
  • 我能写一个 tool description,让 LLM 选用率 > 90%(target ≥ 4)
  • 我能设计一个 MCP server schema 给团队(target ≥ 4)
  • 我能在 30 分钟内说服 PM 不上 agent,应该用 workflow(target = 5)
  • 我能识别一段代码哪里是 workflow 哪里是 agent(target = 5)
  • 我了解多 agent 系统的 5 种常见 bug 模式(target ≥ 4)

打分低于 4 的项目,回去补 Day 149-154 对应章节。


明日预告

Day 156: LangGraph 深度——StateGraph / Conditional Edges / Cycles / Checkpoint

  • 把 Day 150 的裸 ReAct 重写成 LangGraph 版本
  • StateGraph 的状态合并语义
  • checkpoint + human-in-the-loop 的真实用法