本文详细拆解了ReAct大模型的核心思想,即推理(Thought)与行动(Action)的交替循环。通过Thought阶段用自然语言描述推理过程、Action阶段执行具体操作、Observation阶段获取执行结果,ReAct模式让Agent每步决策都有迹可循。文章对比了ReAct与纯推理/纯行动模式的优劣,指出ReAct虽消耗较高但可解释性强,特别适合复杂任务。对于想入门大模型开发的小白,本文提供了实用的Agent设计思路和代码示例,建议收藏学习。
ReAct 命名由来
ReAct 是一个合成词,由两部分组成:
Re —— 取自 Reasoning(推理)
Act —— 取自 Acting(行动)
把两个词的"主干"拼起来就是 ReAct:
ReAct 命名由来:Re(asoning) + (A)ct(ing)
ReAct 的核心思想
ReAct 来自 2022 年的论文 ReAct: Synergizing Reasoning and Acting in Language Models,核心思想是将推理和行动交织在一起:
Thought: 我需要先查天气 Action: get_weather("北京") Observation: 北京今天晴,25°C Thought: 天气不错,可以安排户外活动 Action: final_answer("北京今天晴,25°C,适合户外活动")为什么推理和行动要交替?
| 模式 | 优点 | 缺点 |
|---|---|---|
| 纯推理(只思考不行动) | 逻辑严密 | 无法获取实时信息 |
| 纯行动(只行动不思考) | 执行快速 | 容易走偏,缺乏规划 |
| ReAct(推理+行动交替) | 兼顾规划和执行 | 每步都需要 LLM 调用 |
关键洞察:ReAct 的本质是让模型在每一步都"说出"自己的推理过程。这不仅帮助模型自己理清思路,也让开发者能审查和调试 Agent 的决策逻辑。
Thought:思维链驱动决策
Thought 是 ReAct 的"大脑"——模型在每次行动前,先用自然语言描述自己的推理过程。这不是给用户看的,而是给模型自己看的。
# Thought 阶段:模型推理 def thought(observations: str, history: list) -> str: """模型推理下一步该做什么""" prompt = f"""你是一个 ReAct Agent。请按以下格式思考: 当前观察:{observations} 历史记录: {format_history(history)} 请思考下一步该做什么。格式: Thought: [你的推理过程] Action: [具体行动] """ response = llm.generate(prompt) return extract_thought(response)Thought 的设计原则:
明确推理:模型必须用自然语言说明"为什么"要做这个行动
引用观察:推理必须基于当前观察,不能凭空想象
规划步骤:如果任务复杂,模型应该分解为多个子步骤
示例:
Thought: 用户想了解北京天气并推荐活动。我需要先查询天气, 然后根据天气情况推荐合适的活动。这是两个子任务。 Action: get_weather("北京")Action:执行具体操作
Action 是 ReAct 的"手"——根据 Thought 的推理,执行具体的操作。Action 可以是工具调用,也可以是返回最终答案。
# Action 阶段:执行操作 def action(thought: str, tools: dict) -> str: """根据推理执行具体操作""" prompt = f"""基于以下推理,决定具体行动: {thought} 可用工具: {format_tools(tools)} 输出 JSON 格式: {{"type": "tool_call", "tool": "工具名", "args": {{}}}} 或:{{"type": "final_answer", "answer": "最终答案"}} """ response = llm.generate(prompt) decision = parse_decision(response) # 执行工具调用 if decision["type"] == "tool_call": tool_name = decision["tool"] args = decision["args"] result = tools[tool_name](args) return f"Observation: {result}" # 返回最终答案 elif decision["type"] == "final_answer": return f"Final Answer: {decision['answer']}"Action 的类型:
| 类型 | 说明 | 示例 |
|---|---|---|
| 工具调用 | 调用外部工具获取信息或执行操作 | get_weather("北京") |
| 最终答案 | 任务完成,返回结果 | final_answer("北京今天晴") |
| 中间步骤 | 任务未完成,继续循环 | continue |
Observation:获取执行结果
Observation 是 ReAct 的"眼睛"——获取 Action 的执行结果,作为下一轮 Thought 的输入。
# Observation 阶段:获取结果 def observation(action_result: str) -> str: """获取 Action 的执行结果""" # 解析 Observation if action_result.startswith("Observation:"): return action_result[len("Observation:"):].strip() elif action_result.startswith("Final Answer:"): return action_result[len("Final Answer:"):].strip() else: return action_resultObservation 的设计原则:
简洁性:只包含必要信息,不添加额外解释
结构化:用清晰的格式组织结果,便于下一轮推理
错误处理:如果工具执行失败,返回错误信息而非崩溃
ReAct 的完整流程
将 Thought、Action、Observation 组合成完整的 ReAct 循环:
# ReAct Agent 的完整实现 def react_agent(user_input: str, tools: dict, max_steps: int = 10): """ReAct Agent 核心循环""" history = [] current_observation = f"用户请求:{user_input}" for step in range(max_steps): # Thought:推理 thought_text = thought(current_observation, history) # Action:决策 action_result = action(thought_text, tools) # 检查是否完成 if action_result.startswith("Final Answer:"): return action_result[len("Final Answer:"):].strip() # Observation:获取结果 current_observation = observation(action_result) # 记录历史 history.append({ "step": step + 1, "thought": thought_text, "action": action_result, "observation": current_observation }) return "任务未能在限定步数内完成"完整流程示例:
用户:北京今天天气怎么样?适合户外活动吗? Step 1: Thought: 用户想了解北京天气。我需要先查询天气数据。 Action: get_weather("北京") Observation: 北京今天晴,25°C,湿度 45%,微风 Step 2: Thought: 天气数据已获取。晴天、25°C、微风,非常适合户外活动。 Action: final_answer("北京今天晴,25°C,微风,非常适合户外活动")ReAct 循环:Thought → Action → Observation 反复迭代
ReAct 与纯推理/纯行动的对比
| 维度 | 纯推理(Chain-of-Thought) | 纯行动(Tool-only) | ReAct |
|---|---|---|---|
| 推理能力 | 强 | 弱 | 强 |
| 行动能力 | 无 | 强 | 强 |
| 可解释性 | 高 | 低 | 高 |
| 适用场景 | 问答、分析 | 数据查询、API 调用 | 复杂任务、多步推理 |
ReAct vs CoT:推理+行动 vs 纯推理
ReAct 的优势:
可解释性:每步都有推理过程,便于调试和审查
灵活性:能根据中间结果动态调整后续行动
鲁棒性:推理过程帮助模型避免走偏
ReAct 的局限:
Token 消耗:每步都需要 LLM 调用,成本较高
延迟:推理过程增加响应时间
复杂度:需要设计合适的 Prompt 和工具接口
总结
ReAct 是推理(Thought)和行动(Action)交替的 Agent 设计模式
Thought 是思维链驱动决策,模型用自然语言说明推理过程
Action 是执行具体操作,可以是工具调用或返回最终答案
Observation 是获取执行结果,作为下一轮推理的输入
ReAct 兼顾推理和行动,适用于复杂任务和多步推理
大模型的知识又多又杂,到底怎么学?
做这行久了,被问最多的问题就一个:大模型的知识又多又杂,我到底先学啥?翻了一堆资料,看啥都像重点,结果啥都没学进去。今天把我自己一路摸出来的顺序捋一遍,零基础、应届生、转行的都适用。跟着走,至少方向不乱、不瞎忙,学完拿得出手。
第一阶段(10天):初阶应用
这一阶段就一个目标:把大模型真正"玩明白",不是只会聊天那种,而是能调教它、能用代码把大模型和业务接起来。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
这阶段正式进实战,目标很实在:做出两个能拿出手的东西——一个私有知识库,一个 agent 对话机器人。
为什么要做 RAG
搭建一个简单的 ChatPDF
检索的基础概念
什么是向量表示(Embeddings)
向量数据库与向量检索
基于向量检索的 RAG
搭建 RAG 系统的扩展知识
混合检索与 RAG-Fusion 简介
向量模型本地部署
…
走完这 30 天,Python 或 JavaScript 背景的基本能独立做一套 RAG 应用,简历上也敢写"大模型应用开发"了。
第三阶段(约20天):动手微调
学到这,你已经开始 “造” 模型了 —— 通过微调,搞出垂直领域的专用小模型。
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你从 “只会用” 变成 “能造” 的 AI 小子。那么你还想往下探索吗?
想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!
第四阶段(20天):商业闭环,部署落地
技术学完,落地才算数。这阶段带你搞明白大模型怎么真正跑起来、用起来。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
想要入坑大模型的朋友,给大家准备了一份2026 年最新 AI 大模型全套学习资料:
1、大模型系统化学习路线
2、大模型学习视频教程
3、大模型学习书籍&电子文档
4、AI大模型最新行业报告
5、大模型项目实战&配套源码
6、2026大模型大厂面试真题
7、为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。
8、适合谁学?
- 传统后端 / Java / 前端开发,想转型 AI 应用
- 大学生、应届生,想拿更好的 offer
- 产品经理、运营,想武装职业竞争力
- 技术负责人,想给团队落地提效
学习是反人性的,但回报是真金白银。技术会更新,赛道会切换,但只要你先动手,机会就永远站在你这边。
9、这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
想要入局AI大模型赛道、抢占行业红利的朋友,微信扫描下方CSDN官方认证二维码,即可100%免费领取全套学习资料!
好了,就写到这。路线是死的,人是活的,卡住了随时来问我。觉得有用就点个收藏,别让它进收藏夹吃灰——动起来比啥都强。