通过一个简单游戏理解 ReAct(Reasoning + Action)

发布: (2026年2月4日 GMT+8 13:16)
5 分钟阅读
原文: Dev.to

Source: Dev.to

当我第一次从纽约市搬到费城时,我渴望社交互动。于是我做了任何成年人都会做的事:下载了 Meetup。我的第一次社交活动是一场作家聚会,破冰游戏是一个叫 “传递故事” 的童年游戏。

“传递故事” 游戏

  1. 一张纸在大家之间传递。
  2. 有人写下一行文字,然后把纸传给下一个人。
  3. 每位新参与者阅读已经写好的内容,补上下一行,再传下去。
  4. 这一过程持续进行,直到小组共同完成一个故事。

将游戏映射到 ReAct

ReAct(观察 + 推理 + 行动)可以用游戏的步骤来说明:

ReAct 组件游戏动作
观察参与者阅读目前为止的故事。
推理参与者思考如何继续故事。
行动参与者写下下一行并把纸传出去。

页面上的第一行是 查询。每位后续参与者重复观察 → 推理 → 行动的循环,直至故事完成。

语言模型的无状态性

就像下一个玩家在阅读纸张之前对故事一无所知,LLM 也是 无状态 的:它们不会在 API 调用或对话轮次之间保留记忆。每一次请求都是全新的——这点类似于宝莱坞同名电影《Ghajini》中的角色。

把完整的故事向前传递相当于在下一次 API 调用时把对话历史发送回 LLM。累计的故事就成为模型的 上下文

限制与实际解决方案

无限循环

如果参与者(或模型)的“词汇量”非常有限,可能会一直重复同一句话:

“猫和狗都是动物。动物就是猫和狗。”

在 AI 中,这表现为 无限循环——观察没有提供新信息,推理重复,行动一次又一次地相同。

解决方案: 对迭代次数设定硬性上限(例如“仅允许 5 次迭代”)。

上下文窗口限制

当故事变得很大(比如 100 页)时,后面的参与者实际上不可能阅读全部内容。LLM 也面临同样的问题:每一次观察 → 推理 → 行动循环都会增加更多 token,这会:

  • 增加成本
  • 放慢响应时间
  • 有触及模型上下文上限的风险

解决方案: 上下文裁剪——不必每次都发送完整历史,只保留最近的几步,并对更早的步骤保持一个高层次的摘要。

ReAct 与 ReWOO 的比较

  • ReAct:每一步后都思考(即兴)。
  • ReWOO:先深思熟虑,生成结构化计划,再执行(策略性)。

这相当于:

  • 即兴 地逐行编写故事, versus
  • 先商定 故事大纲再写章节。

两种方法各有用处:一种是反应式的,另一种是策略性的。

观点

我认为 ReWOO 正是 IBM 视频中提到的“2026 年是多代理时代”所指的内容。到今年年底,这篇博客可能已经过时,但我希望它能清晰地阐释 ReAct 循环的工作原理,并鼓励大家分享自己的想法。


感谢费城出色的作家团体对我的热情接纳!

Reddit | 大语言模型

Back to Blog

相关文章

阅读更多 »

当 AI 给你一巴掌

当 AI 给你当头一棒:在 Adama 中调试 Claude 生成的代码。你是否曾让 AI “vibe‑code” 一个复杂功能,却花了数小时调试细微的 bug……