Agent Execution Patterns
这四种范式的差别,本质是「流程图的形状」不一样——一个反复转圈、一个一条直线走到底、一个在外面套了一圈、一个分叉出去再收回来。
下面用同一个任务把四种走法各跑一遍,形状差异就自己跳出来了。
线上订单接口的 P99 延迟从 200ms 涨到 3 秒,找出原因并给出处理方案。
可用工具:查监控指标、查日志、查数据库慢查询、看最近发布记录。
很多人第一眼会觉得「ReAct 的图,和之前讲 Agent 时那张图一模一样」。
确实一样——因为它们根本不在同一个维度上。
| 概念 | 回答什么问题 | 属于哪一层 |
|---|---|---|
| Agent = LLM + Harness | 一个 agent 由什么构成 | 组成 |
| Agent Loop | 这些部件怎么转起来 | 机制 |
| ReAct / Plan-and-Execute / … | 循环的每一轮具体怎么走 | 范式 |
打个比方:Agent 是「车」,ReAct 是「后驱」。
问「Agent 和 ReAct 有什么区别」,就像问「汽车和后驱有什么区别」——后驱是汽车的一种驱动方式,不是它的对立面。
下面四种范式全都是 agent,全都符合 LLM + Harness。它们的差别只在一处:Harness 里那段控制流怎么写。
思考 → 行动 → 观察结果 → 再思考。每一步都取决于上一步真实看到了什么。
执行路径事先不确定,需要边做边根据证据修正方向。
排障、调研、探索性任务。
灵活,但每一轮都要把全部历史再发一遍 → Token 高。轮数不定,成本不可预估,出问题要看整段轨迹才知道哪步歪的,调试难。
今天大多数号称「ReAct agent」的东西,并不是原论文的 ReAct。
ReAct 论文是 2022 年的,那时候还没有 function calling。模型不会结构化地调工具,只能靠提示词逼它把思考过程用文本写出来,再用正则把动作抠出来执行:
Thought: 我需要先查一下监控 Action: search_metrics[order_api_p99] Observation: P99 从 200ms 涨到 3000ms Thought: 确认是这个接口,接着查发布记录
现在模型直接返回结构化的 tool_calls,根本不需要它输出 “Thought:” 这种文本了。所以你今天写的那个循环,准确叫法是 function-calling loop——形状和 ReAct 一样,实现机制完全不同。
面试时能说出这个区分,是加分项。
先把整个计划列全,然后一步一步照着做完。中途不改计划。
任务很长、步骤多,但依赖关系明确。有全局计划就不容易跑偏、不容易在中途迷路。
动态调整能力弱——计划一旦定下,中途发现方向错了也拐不了弯。
本质上已经很接近静态工作流了,只是计划由模型生成而已。
先出一版,再自己挑毛病,然后改。它不单独用,是叠在前面两种之上的。
质量要求高、且允许多轮迭代的场景。代表工作:Reflexion、Self-Refine、CRITIC。
它是叠加项,不单独用——外面这一圈里必须先塞一个能干活的范式。
每多一轮反思,成本翻一倍;而且必须设死迭代上限,否则会陷入无限打磨。
按职责拆成几个独立角色,各干各的,最后汇总。
任务能拆成规划、执行、验收这类彼此独立的职责。各角色上下文互不干扰,不会互相污染。
通信和调试成本翻倍。出了问题要先定位是哪个角色错的,再看是不是消息传丢了。
角色之间的上下文交接是最容易出 bug 的地方。
按「谁决定下一步」排序——从模型说了算,到人说了算。
| 范式 | 形状 | 谁决定下一步 | 适合 | 代价 |
|---|---|---|---|---|
| ReAct | 小圈反复转 | 模型,每轮现场定 | 路径不确定,要边做边改方向 | Token 高、轮数不定、调试难 |
| Plan-and-Execute | 一条直线 | 模型定一次,之后不再改 | 任务长、步骤多但依赖明确 | 动态调整弱,接近静态工作流 |
| Reflection | 外面套一圈 | 叠加在前两者之上 | 质量要求高、允许多轮迭代 | 成本翻倍,必须设迭代上限 |
| Multi-Agent | 分叉再汇合 | 协调者派活,各角色内部自决 | 职责能拆开、上下文需要隔离 | 通信和调试成本翻倍 |
它们不是四选一。Reflection 本来就是叠加项;Multi-Agent 里每个角色内部,多半还是跑着 ReAct 或 Plan-and-Execute。
真实系统常见的组合是:外层用 Plan-and-Execute 定骨架保证不跑偏,叶子节点用 ReAct 保证能应变,关键产出上再套一层 Reflection 把关。
选型只问一句话:这个任务的下一步,该由代码写死,还是让模型现场决定?写死的越多越可控、越便宜;交给模型的越多越灵活、越贵。