概述
本示例演示了如何将大语言模型(LLM)配置为推理智能体(Reasoning Agent),使其具备分析思维和定量问题求解能力。它展示了从简单文本生成到复杂认知任务之间的桥梁。
什么是推理智能体?
推理智能体是一种通过精心设计的系统提示词(System Prompt)配置的 LLM,能够执行逻辑分析、数学计算和多步问题求解。
类比理解
推理的挑战
为什么推理对 LLM 来说很难
然而,它们可以从训练数据中学习推理模式,并通过系统提示词加以引导。
通过系统提示词实现推理
配置模式
推理任务类型
LLM 如何"推理"
模式匹配 vs 真正的推理
推理过程
问题复杂度层级
本示例的复杂度
土豆问题极其复杂:
- 多个实体(15 人以上)
- 关系推理(家谱)
- 条件逻辑(如果已婚则...)
- 否定条件(已故人员)
- 特殊情况(饮食限制)
- 多次计算
- 单位换算
纯 LLM 推理的局限性
常见失败模式
- 计数错误:统计 15 个具有复杂关系的人时,可能输出 "14" 或 "16"
- 算术错误:在多步计算的中间步骤出错
- 上下文丢失:忘记前面的信息
改进推理:演进路径
级别 1:纯提示(本示例)
局限性:所有推理都在 LLM 内部完成,没有验证,没有工具,过程不可见。
级别 2:思维链(Chain-of-Thought)
级别 3:工具增强(simple-agent)
级别 4:ReAct 模式(react-agent)
不同类型的智能体对比
| 推理 | 工具 | 记忆 | 多轮对话 | |
|---|---|---|---|---|
| intro.js | ✗ | ✗ | ✗ | ✗ |
| translation.js | ~ | ✗ | ✗ | ✗ |
| think.js(本示例) | ✓ | ✗ | ✗ | ✗ |
| simple-agent.js | ✓ | ✓ | ✗ | ~ |
| memory-agent.js | ✓ | ✓ | ✓ | ✓ |
| react-agent.js | ✓✓ | ✓ | ~ | ✓ |
图例:✗ = 不具备,~ = 有限/隐式,✓ = 具备,✓✓ = 高级/显式
关键要点
- 系统提示词赋能推理:合理的配置可以将 LLM 转变为推理智能体
- 局限性存在:纯 LLM 推理在复杂问题上容易出错
- 工具有帮助:外部计算(计算器等)可以提高准确性
- 迭代很重要:多步推理模式(如 ReAct)效果更好
- 透明性有价值:可见的推理过程有助于调试和验证