科技人人都是产品经理·YannTalk··AI 生成
Agent 为什么总在奇怪的地方卡住?一个修灯例子讲清 ReAct 循环
文章从作者实际开发 Agent Skill 的痛点出发,指出许多 Agent 在运行时卡住,根因不是规则或脚本写错,而是动作执行后返回的结果(Observation)未能为下一轮 ReAct 循环提供足够的决策信息。作者用修灯例子通俗解释 ReAct 框架(Thought-Action-Observation),强调 Observation 是下一轮推理的输入,而非仅系统日志。最后提出一个自查原则:每个动作执行完后,Agent 是否清楚地知道下一步该怎么做。对开发 Agent 应用的读者有具体实操启发。原文 ↗原文 ↗
核心观点
- ▍许多 Agent Skill 运行卡住的核心原因,是开发者只写清了动作(Action),却没设计好动作执行后返回的结果(Observation),导致 Agent 无法进入下一轮有效推理。
- 01作者观察到,很多 Skill 在出错时只返回系统异常(如 `{"error": "ENOENT", "path": "/tmp/input.md"}`),这仅对开发者有意义,Agent 从中无法判断该换路径、向用户要文件还是直接重试。
- 02作者用修灯例子演示 ReAct 循环:Agent 通过「检查灯泡是否松动→观察灯不亮→换灯泡→观察灯亮」的递进过程,逐步缩小猜测范围,最终定位到灯泡坏了。
- 03ReAct 框架由姚顺雨在其论文中提出,核心是模型在 Thought(判断下一步)、Action(执行/查询)、Observation(获取外部结果)之间循环,Observation 会进入下一轮思考,改变后续动作。
- 04作者给出一个改进的返回格式示例:包含 `status`、`reason`、`next_action`、`retryable` 等字段,Agent 能据此明确知道卡在哪里、下一步该做什么。
反方 / 局限
- — 文章未讨论 ReAct 框架自身的局限性,例如在复杂多步推理中 Thought 可能产生幻觉,或因工具调用链过长导致误差累积。
概念锚点
前置背景
平行视角
延伸追问