大家好。
在前2篇文章里,我们像是一个严苛的老师,教会了 AI 怎么查资料(RAG),也教会了 AI 怎么慢下来思考(CoT)。
经过这一番调教,你的 AI 已经变得博学且严谨。
但很快,作为AI应用开发的你,会触碰到一个新的天花板:
无论这个 AI 多么聪明,它始终是一个轮椅上的天才。
你问它:“今天杭州天气怎么样?”它回答:“抱歉,我的数据截止到 2023 年。”你让它:“帮我算一下这三个 Excel 表格的总和。”它可能会一本正经地胡编一个数字,因为它不擅长数学计算。你让它:“帮我把这个文件发给老板。”它只能无奈地说:“我只是一个语言模型,我无法操作你的微信。”它只能“说”,不能“做”。 它被困在了对话框里,与现实世界隔绝。
如何打破这个边界?如何让 AI 走出“思维的宫殿”,真正去接触现实世界?
今天,我们要揭秘大模型领域最激动人心、也是从 Chatbot 进化为 Agent(智能体)的核心机制:ReAct。
01 什么是 ReAct?像侦探一样思考
ReAct 这个词,是 Reasoning(推理) 和 Acting(行动) 的缩写。
如果说 CoT(思维链) 是让 AI 学会“三思而后行”,那么 ReAct 就是让 AI 学会一边思考,一边干活。
这听起来很抽象?我们用一个生活中的例子来打比方。
想象一下,你就是福尔摩斯。
当你接到一个案子(用户问题)时,你不会坐在椅子上干想(纯 LLM 生成),你也不会像无头苍蝇一样到处乱撞(纯脚本执行)。
你的工作流是这样的:
思考(Reasoning): “死者手里攥着一张车票,我应该去查查这张车票的来源。”行动(Acting): 拿起电话,打给火车站(使用工具)。观察(Observation): 电话那头说,车票是今早 8 点发出的。再思考(Reasoning): “8 点?那时死者应该在家里。说明有人撒谎了。我得去查查监控。”再行动(Acting): 调取监控录像(使用工具)。
...这就是 ReAct。
它打破了“输入 -> 输出”的一波流模式,把解决问题的过程变成了一个思考 -> 行动 -> 观察 -> 再思考的循环。
02 一张图看懂:从“单行道”到“死循环”
很多朋友觉得 ReAct 的原理好懂,但具体运行逻辑很模糊。
为了彻底讲透,我画了两张图。
以前的模式(Chatbot):
这是一个线性的单行道。你问什么,它答什么。如果它不知道(比如实时股价),它就只能瞎编。
ReAct 的模式(Agent):
这是一个动态的闭环。当模型发现自己无法直接回答时,它会发起请求,系统执行完把结果喂回给模型,让它继续想。
这个过程,就像是一个程序的 while 循环:
看明白了吗?
AI 不再是用“记忆”回答问题,而是学会了使用工具去寻找答案。
当用户问:“对比一下京东和亚马逊上 iPhone 15 的价格。”
AI 的内心戏(Log)会变成这样:
Thought 1: 用户想比价。我需要先查京东的价格。
Action 1: 调用工具 Search_JD("iPhone 15")
Observation 1: 结果:5999 元。
Thought 2: 知道了京东的,我现在需要查亚马逊的。
Action 2: 调用工具 Search_Amazon("iPhone 15")
Observation 2: 结果:6100 元。
Thought 3: 5999 < 6100。结论是京东更便宜。
Final Answer: 建议您在京东购买,便宜 101 元。
03 产品经理的新视角:定义“工具箱”
在理解了 ReAct,你对 AI 产品的规划逻辑就会发生质的飞跃。
以前我们做 Chatbot,核心是优化“文本生成”。
现在我们做 Agent,核心是定义工具箱(Tools)。
你不再需要逼着模型去背诵企业库存(RAG 也做不到实时更新),你需要做的是给 AI 装上手。
传统做法: 把报表喂给 AI,问它“上季度亏了多少”。AI 经常算错数,因为大模型不擅长加减乘除。ReAct 做法: 给 AI 两个工具——get_data(季度) 和 calculator()。
AI 会自己调数据,自己用计算器算差值,准确率 100%。ReAct 的本质,是把大模型的“通识推理能力”和传统软件的“精准执行能力”结合了起来。
04 挑战与未来:让思考“隐形”
当然,ReAct 也有代价。
慢: 以前一次对话消耗一次 Token。现在一个问题可能要在后台循环思考、调用工具 5、6 次,响应速度会变慢。死循环: 有时候 AI 会陷入“思考怪圈”,反复调用同一个工具查不出结果。所以,优秀的产品经理和工程师需要在这个环节做大量的优化。
而最重要的一点,依然是我们之前强调的:用户体验的封装。
用户不需要看到侦探是怎么查案的(那些繁琐的 Thought/Action/Observation),用户只需要看到破案的结果。
我们要把这些复杂的循环过程,隐藏在进度条或简单的 Loading 动画后面。
写在最后
如果说 RAG 是给了 AI 一本“百科全书”;
如果说 CoT 是给了 AI 一套“逻辑教材”;
那么 ReAct 就是给了 AI 一套“瑞士军刀”。
至此,我们的 AI 终于从一个“在那儿说空话”的文科生,进化成了一个“能动手解决问题”的理科实干家。
这就是 Agent(智能体) 的雏形。