M5-085M5: NLP & Large Language ModelsAgents & Tool UseEasy
Mastery:
Agents & Tool Use: 描述 ReAct 循环与它的设计动机。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 交替'思考→行动→观察',用外部工具获取信息并修正推理;动机是弥补 LLM 的'知识静态、无法执行动作'。
📌 Key Takeaways
- •循环:思考(该做什么)→ 行动(调工具)→ 观察(看结果)
- •动机:LLM 知识静态、无法访问实时信息与执行动作
- •是 Agent 的基础范式;衍生出规划、反思、多智能体等
📐 Mathematical Derivations
数学机理:<strong>ReAct(Yao 等 2022)</strong> 把 LLM 的两种能力<strong>交织</strong>:(a) <strong>推理(reasoning)</strong>——生成思考步骤('我需要先查 X');(b) <strong>行动(acting)</strong>——调用外部工具(搜索、计算器、API)并接收<strong>观察(observation)</strong>。循环为 thought → action → observation → thought → … 直到得出答案。<strong>设计动机</strong>——LLM 有两个根本局限:(1) <strong>知识静态</strong>——训练数据有截止时间,无法访问实时信息(新闻、股价、内部数据库);(2) <strong>无法执行动作</strong>——不能计算精确算术、不能调用 API、不能修改外部状态。ReAct 通过'工具调用'弥补这两点:把'需要外部信息/精确计算'的部分交给工具。<strong>与 CoT 的差异</strong>——CoT <strong>只在语言空间内推理</strong>(不获取新信息、不执行动作);ReAct <strong>与外部交互</strong>(获取信息、执行动作)。故 CoT 适合'纯推理'任务,ReAct 适合'需外部信息或动作'的任务。<strong>ReAct 的关键设计</strong>:(a) <strong>交错而非分离</strong>——推理与行动交替(而非'先想完再做'),使推理能<strong>基于观察动态调整</strong>(这是它的核心价值);(b) <strong>可解释</strong>——思考步骤显式记录(便于调试);(c) <strong>可组合</strong>——可接多个工具。<strong>失败模式</strong>:(a) <strong>陷入循环</strong>(反复调用同一工具);(b) <strong>工具选择错误</strong>(选错工具或参数);(c) <strong>幻觉工具</strong>(调用不存在的工具);(d) <strong>忽略观察</strong>(不利用工具返回的结果);(e) <strong>过早停止</strong>(未完成就给出答案);(f) <strong>无法终止</strong>(不输出最终答案)。<strong>改进方向</strong>——(a) <strong>Reflexion</strong>(失败后反思并重试);(b) <strong>Plan-and-Execute</strong>(先规划再执行);(c) <strong>Tree search over actions</strong>(LATS);(d) <strong>专门的工具调用训练</strong>(function calling 微调)。<strong>与'推理模型'的关系</strong>——现代推理模型内化了部分推理能力,但<strong>工具调用仍需 ReAct 式的外部交互</strong>(因为信息不在参数里)。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'交错推理与行动'是 ReAct 的精髓</strong>——若把'先想完再做'(plan-then-execute)作为对比,交错方式的优势是<strong>能基于观察修正</strong>(例如搜索结果显示'X 不是创始人',则调整后续推理)。这对'信息不确定'的任务至关重要。② <strong>'工具质量决定 Agent 上限'</strong>——ReAct 的效果高度依赖 (a) 工具的数量与质量、(b) 工具描述的清晰度(模型靠描述选工具)、(c) 返回结果的可用性(太长则占上下文、太简则信息不足)。故 Agent 工程的重点在<strong>工具设计</strong>。③ <strong>'循环失控'是主要工程风险</strong>——需设 (a) <strong>最大轮数</strong>(防死循环)、(b) <strong>成本预算</strong>(防费用失控)、(c) <strong>超时</strong>。④ <strong>与'function calling'的关系</strong>——ReAct 是<strong>提示层面的范式</strong>;function calling 是<strong>模型能力</strong>(模型原生输出结构化的工具调用);后者更可靠(格式固定、参数正确率高),是现代 Agent 的基础。⑤ <strong>'观察'的上下文管理</strong>——工具返回的长文本(如网页)会占用大量上下文;需 (a) 截断/摘要、(b) 只提取相关部分(用检索);这是 Agent 的'上下文工程'。⑥ <strong>面试要点</strong>——被问'ReAct 是什么',应给出'<strong>思考→行动→观察的循环 + 动机(知识静态、无法执行动作)+ 与 CoT 的差异(外部交互 vs 内部推理)</strong>',并列举失败模式(循环/选错工具/忽略观察);能指出'工具质量决定上限'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕把 ReAct 与 CoT 混为一谈(前者有外部动作)
- ✕不设最大轮数与预算(循环失控)
🎯 Interviewer Follow-ups
- ?ReAct 与 CoT 的差异?
- ?ReAct 的失败模式有哪些?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.