深山之中,住着一位老药师,他一生识百草、辨千药,方圆百里的百姓都仰赖他的医术。老药师有一个徒弟,名叫小渡。
这一日,老药师忽然病倒,是一种罕见的寒毒。他虚弱地对小渡说:“西边的云雾山上,长着一种叫’醒脉草’的药,只有它能解此毒。但我没去过云雾山,只听前辈说过——醒脉草喜阴湿,常生于溪水旁,多在山之北坡。”
小渡心急如焚,立刻动身前往云雾山。
死守计划
到了山脚,小渡面临第一个选择:该往哪走?
他想起师父的话——醒脉草在北坡。于是他打开地图,仔细研究地形,推断北坡应该在山的左侧。他信心满满地出发了。
走了两个时辰,他到了一片悬崖,前方无路。地图上标注的小路早已被山洪冲毁。他站在悬崖边,又急又气——他明明做了周密的计划,为什么还是走进了死路?
这时他听见远处传来伐木声。循声走去,遇到一位老樵夫。樵夫听说了他的来意,笑道:“小伙子,我在这山上砍了四十年柴。你这地图是十年前的吧?两年前一场暴雨,北坡的路全变了。你要是真想找草药,别光顾着想,多走走看看,山自己会告诉你。”
小渡若有所悟。
走走停停
他不再执着于最初的计划,而是开始一个新的习惯——
先想一想自己知道什么(师父说醒脉草喜阴湿,近溪水,在北坡),然后采取一个小小的行动去验证(走到一处溪边,蹲下来仔细看看周围的植物),观察到了什么(这里的植物都是蕨类,没有醒脉草的特征),再想一想这意味着什么(这条溪的海拔太低了,醒脉草可能在更高处的溪流旁),然后再行动……
就这样,小渡在云雾山上走走停停。有时停下来观察脚下苔藓的湿度,有时抬头判断山势走向,有时蹲下来嗅一嗅泥土的气味。每一步行动都带来了新的信息,每一条新信息都修正着他的判断。
醒脉草
到了第三天傍晚,小渡沿着一条细细的山泉攀上了一个幽暗的谷地。他注意到这里的苔藓格外浓密,空气湿润而阴凉,岩石上渗着水珠——这和他推断的醒脉草生长环境完全吻合。
他拨开一片厚厚的苔藓,一株通体泛着淡银色光芒的小草静静地生长在石缝中。
醒脉草。
小渡将草药带回,老药师服下后,寒毒尽除。
康复后的老药师问小渡:“你是怎么找到的?”
小渡想了想,说:“师父教的知识给了我方向,但真正带我找到草药的,是山。我每走一步,山就告诉我一点新的东西,我再根据这些新东西调整下一步的方向。”
老药师欣慰地笑了:“这就是寻药的真谛啊。”
故事讲完了。
如果你读到这里觉得这是一个关于"不要死读书、要理论联系实际"的鸡汤故事,那你就只看到了最浅的一层。
小渡在山上的那段"走走停停"的过程,其实精确地描述了 AI Agent 领域中一个重要的框架——ReAct(Reasoning + Acting)。
在 ReAct 框架中,AI 智能体不是单纯地"想"或单纯地"做",而是在推理和行动之间交替进行:
- Thought(思考):根据已有知识和当前状态进行推理。就像小渡根据师父传授的知识分析应该往哪里走。
- Action(行动):采取一个具体的动作来获取新信息或改变状态。就像小渡走到溪边蹲下来观察。
- Observation(观察):行动后获得反馈和新信息。就像小渡发现溪边只有蕨类植物。
这三步构成一个循环:思考 → 行动 → 观察 → 思考 → 行动 → 观察 → ……
小渡最初死守计划的那段,对应的是纯推理方法(如 Chain-of-Thought)——仅凭已有知识做计划,但一旦现实和预期不符就会失败。如果他听了樵夫的话后变成漫无目的地乱跑,那就是纯行动方法——像无头苍蝇一样盲目尝试,效率极低。
ReAct 的核心洞见在于:推理帮助行动做出更好的选择,而行动带来的新信息又反过来提升推理的质量。 两者交织,才能在复杂、不确定的环境中找到正确答案。
这篇论文由 Yao 等人于 2022 年发表(ReAct: Synergizing Reasoning and Acting in Language Models),是 AI Agent 领域的基础性工作之一。此后几乎所有主流 Agent 框架——LangChain、AutoGPT、OpenAI Function Calling——都或多或少地建立在 ReAct 的"思考-行动-观察"循环之上。
下次当你看到 ChatGPT “先想了想,然后调了个工具,看了看结果,又想了想"的时候,你就知道——它也是云雾山上的小渡。