第 2 章 推理与工具使用 / MCP
一个反直觉的事实:模型往往不是不会推理,而是默认不去推理——只要引导它"把过程写出来"或"调用外部工具",复杂任务正确率就大幅跃升。本章先讲推理方法谱系,再讲"推理 → 行动"如何接入工具与 MCP。
3 推理(Reasoning)
3.1 提示层推理方法
Chain-of-Thought(CoT)(Wei et al., 2022)在示例中给出中间推理步骤,是一种涌现能力(约 100B 量级才显著);Zero-shot 版只需加一句"Let's think step by step"。Self-Consistency(Wang et al., 2022)采样多条路径再多数投票,把 PaLM-540B 的 GSM8K 从 56.5%→74.4%。Least-to-Most(Zhou et al., 2022)先把难题分解为由易到难的子问题再顺序求解,擅长组合泛化。Tree of Thoughts(Yao et al., 2023)把推理推广为可生成/自评/回溯的树搜索,Game of 24 上 GPT-4 从 CoT 的 4%→74%。ReAct(Yao et al., 2022)把推理与行动交织,接入外部工具抑制幻觉。Reflexion(Shinn et al., 2023)失败后做言语反思写入记忆,下次重试时读取——"测试时的语言强化学习"。
| 方法 | 核心机制 | 调工具 | 开销 | 最适场景 | 主要短板 |
|---|---|---|---|---|---|
| CoT | 生成中间推理步骤 | 否 | 低(1×) | 通用多步推理 | 单路径,一错全错 |
| Self-Consistency | 多路径采样+投票 | 否 | 中-高(N×) | 答案可归一化(数值/选择) | 成本随采样线性涨 |
| Least-to-Most | 分解子问题+顺序解 | 否 | 中 | 组合泛化、需规划 | 分解质量决定上限 |
| Tree of Thoughts | 生成+自评+搜索/回溯 | 否 | 高 | 规划/试错(博弈/谜题) | 实现复杂;评估器可靠性 |
| ReAct | Thought→Action→Observation | 是 | 中-高 | 知识问答、Agent、交互 | 依赖工具可靠性 |
| Reflexion | 失败后反思+写记忆,重试 | 是 | 高(多轮) | 可重试任务(编码/游戏) | 需可重试环境 |
经验法则:简单题 CoT;可投票的题加 Self-Consistency;难分解用 Least-to-Most;需搜索/规划用 ToT;需外部信息用 ReAct;有重试机会再叠加 Reflexion。
3.2 范式转变:测试时计算与推理模型
传统 scaling 关注训练时算力;测试时计算(test-time compute)主张推理时"想得更久"也能换性能。Snell et al. (2024) 证明存在 compute-optimal 策略,按难度自适应分配推理算力,小模型 + 充足测试时计算可在部分问题上超过 14× 大的模型。推理型模型把"CoT/反思"内化进权重:OpenAI o1(2024)用大规模 RL 训练"回答前先产出长思维链",提出"训练与推理算力双扩张";DeepSeek-R1(2025)证明纯 RL(无需人工推理轨迹)即可激励出推理能力,开源且比肩 o1。这是从"会说话的 LLM"走向"会自主推理的 Agentic LLM"的关键一跃。
3.3 推理的局限与争议
是真推理还是模式匹配? Faith and Fate(Dziri et al., 2023)发现组合任务上 Transformer 倾向退化为"线性化子图匹配"。基准可能高估能力: Apple 的 GSM-Symbolic(2024)发现仅改数值或加无关从句,正确率即明显波动(该结论亦有方法学争议,宜正反并陈)。其余:CoT 忠实性(写出的推理链未必是真实决策依据)、过度思考(简单题长思考反而降准、增本)、误差级联(长链早期小错被放大)。
4 工具使用与 MCP
LLM 的权重是"冻结的世界快照":不会精确算术、不知实时信息、不能执行代码。工具使用把这些外置——与 3.1 的 ReAct 一脉相承:推理决定"用什么工具",工具返回"可信结果"。
4.1 函数 / 工具调用机制
主流做法是结构化函数调用:① 用 JSON Schema 声明工具(名称/用途/参数);② 模型决策是否调用并输出结构化请求(工具名+JSON 参数);③ 运行时执行函数并回传结果;④ 模型把 observation 纳入上下文,生成回答或下一次调用(多轮即 ReAct 工程化)。关键:模型只负责"决定调用+生成参数+解释结果",执行与安全控制在模型之外。
4.2 让模型学会用工具
Toolformer(Schick et al., 2023)自监督学会调用:只保留那些"能降低后续 token 困惑度"的 API 调用作为训练数据。Gorilla(Patil et al., 2023)针对海量、易变 API,用检索增强 + retriever-aware training,写 API 调用超过 GPT-4、抑制用法幻觉。ToolLLM / ToolBench(Qin et al., 2023)从 RapidAPI 收集 16,000+ 真实 API,把工具学习推向"真实、大规模、多步组合"。脉络:学会调用 → 在海量 API 上调对 → 真实大规模多步编排。
4.3 Model Context Protocol(MCP)
MCP 之前,"模型 ↔ 工具"是定制对接:N 模型 × M 工具 = N×M 套胶水代码。MCP(Anthropic,2024-11 开源)是开放标准,用统一协议把 N×M 降为 N+M——"AI 应用的 USB-C"。基于 JSON-RPC 2.0 的 host–client–server 架构,server 通过三类原语暴露能力:Tools(可调用动作)、Resources(可读数据)、Prompts(可复用模板),启动时做能力协商。生态上 Claude 已提供 75+ 连接器;MCP 已捐赠给 Agentic AI Foundation(Linux 基金会下),由 Anthropic/Block/OpenAI 发起、多家支持,走向中立治理。
4.4 工具使用的失败模式
无效/非法调用(工具名错、参数缺失、JSON 不合法)、参数/用法幻觉、工具选择错误、结果误读与误差级联(把上游错误当真,在多步链中层层放大——最危险)、多步编排失败(依赖顺序错、死循环)、安全对抗面(工具返回内容携带间接 prompt injection;恶意 MCP server 的供应链风险)。缓解:严格 schema 校验与重试、检索增强工具文档、自我验证、Reflexion 式反思、最小权限与人类确认、对 observation 做信任边界隔离(详见第 4 章安全)。
关键论文 / 资源(已核实)
- Chain-of-Thought Prompting (Wei et al., 2022) 2201.11903 | Self-Consistency (Wang et al., 2022) 2203.11171
- Least-to-Most Prompting (Zhou et al., 2022) 2205.10625 | Tree of Thoughts (Yao et al., 2023) 2305.10601
- ReAct (Yao et al., 2022) 2210.03629 | Reflexion (Shinn et al., 2023) 2303.11366
- Scaling LLM Test-Time Compute Optimally (Snell et al., 2024) 2408.03314
- OpenAI o1 — Learning to reason with LLMs (2024) 官方 | DeepSeek-R1 (2025) 2501.12948
- Faith and Fate (Dziri et al., 2023) 2305.18654 | GSM-Symbolic (Mirzadeh et al., 2024) 2410.05229
- Toolformer (Schick et al., 2023) 2302.04761 | Gorilla (Patil et al., 2023) 2305.15334 | ToolLLM (Qin et al., 2023) 2307.16789
- Introducing MCP (Anthropic, 2024) 官方 | MCP 规范 · 架构 modelcontextprotocol.io