智能体核心循环:感知规划行动反思
无论多复杂的 Agent,其工作方式都能归纳成同一个循环:感知(Perceive)→ 规划(Plan)→ 行动(Act)→ 反思(Reflect),然后带着新信息再来一轮,直到任务完成或到达上限。本章拆解这个循环,并介绍三种经典实现模式。
循环总览
感知 → 规划 → 行动 → 反思
↑ ↓
└────── 不满足则再来一轮 ←─┘
循环不会无限转下去:达成目标、到达最大轮数、用户中止或工具连续失败,都会结束本轮;工程实现里这三类终止条件都要显式写好。
感知:收集当前状态
Agent 每轮先「看」清现状:用户的新消息、上一次行动的返回结果、工具报错、环境变化。落到代码上,感知就是把各类信息整理成给模型的 messages。感知不全,后面的规划必然跑偏。
规划:决定下一步
模型基于现状决定该做什么:一步到位还是先拆子任务,用哪个工具、传什么参数。规划可以很轻(模型随口说出下一步),也可以很重(先写一整套计划再逐步执行)。关键是让模型把「打算」显式说出来,便于程序检查与记录。
行动:执行并拿到结果
行动是真正产生效果的一步,核心就是调用工具:查数据库、执行代码、发 HTTP 请求、读写文件。工具调用是行动的核心——模型不亲手做事,它只负责「决定」,由程序去「执行」,再把真实结果喂回来。编程上,这一环通常就是「模型输出工具调用请求 → 程序执行 → 把结果回填给模型」的往返。行动失败本身也是信息,照样要带进下一轮。
反思:评价并修正
对照目标检查刚才的结果是否符合预期:错了就分析原因,缺信息就补充查询,方向偏了就调整计划。反思让 Agent 从单次「撞运气」变成能收敛的搜索过程,也是自我纠错能力的基础;缺少反思的 Agent,容易在同一类错误上反复跌倒。
ReAct 模式
ReAct(Reasoning + Acting,推理+行动)让「想」与「做」交错进行:模型想一句、做一步、看结果、再想。实现上每轮让模型输出 Thought(思考)→ Action(动作)→ Observation(观察)三段,循环往复。它简单通用,适合工具调用不深的场景。
Plan-and-Execute 模式
先让模型一次性产出完整计划,再逐条执行、逐条核对,执行中发现问题可回到计划层修订。相比 ReAct,它先有全局路线图,适合步骤多、可预见的任务;缺点是计划可能脱离现实,需要校验机制兜底。
Reflection 模式
执行完一轮后单独让模型做「事后复盘」:哪里做错了、下次怎么改,把结论写回记忆或上下文,指导后续轮次。反思可以是内嵌的轻量提示,也可以是独立的评审环节,是让错误「沉淀下来」的关键手段。
三种模式对比
| 模式 | 核心思路 | 优点 | 短板 |
|---|---|---|---|
| ReAct | 想一步做一步 | 灵活、实现简单 | 步骤多时易绕远 |
| Plan-and-Execute | 先计划后执行 | 有全局路线、省轮次 | 计划可能脱离现实 |
| Reflection | 事后复盘修正 | 错误可沉淀、可收敛 | 每轮多一次开销 |
工程上常见的是混合用法:先用 ReAct 把任务跑通,遇到反复失败再切到 Plan-and-Execute 重排计划,并定期插入 Reflection 做复盘。
小结
感知、规划、行动、反思构成 Agent 的「心跳」:感知给足信息,规划做出决策,行动落地并拿到反馈,反思保证不重蹈覆辙。ReAct、Plan-and-Execute、Reflection 只是把循环编排成不同节奏,实际系统里常常混用三者。