为什么需要思维链(CoT)?
凌晨2点44分,我看着Agent给出的答案:"42"。我问它为什么,它说"因为我觉得是42"。
这就是没有思维链的后果——AI不是不聪明,是需要被引导着思考。
❌ 无思维链
问:小明有5个苹果,吃了2个,又买了3个,现在有几个?
答:6个(直接输出,不知道对不对)
✅ 有思维链
问:同上
思考:原5个 → 吃2剩3 → 买3变6 → 答:6个(有过程,可验证)
📊 准确率提升数据:
- 数学推理:无CoT 35% → 有CoT 78%(提升122%)
- 代码调试:无CoT 42% → 有CoT 81%(提升93%)
- 逻辑分析:无CoT 48% → 有CoT 85%(提升77%)
OpenClaw 中的思维链实现
基础 CoT 提示词模板
# cot-template.yaml
name: "chain-of-thought-basic"
description: "基础思维链提示模板"
system_prompt: |
你是一个善于逐步思考的AI助手。
思考规则:
1. 收到问题后,先分析问题的核心是什么
2. 将问题拆解成多个子步骤
3. 逐步解决每个子步骤
4. 整合所有步骤得出最终答案
5. 验证答案的合理性
输出格式:
【分析】问题核心...
【步骤1】...
【步骤2】...
...
【结论】最终答案...
【验证】检查...
user_prompt_template: |
问题:{input}
请按照你的思考规则,一步步解决这个问题。
记住:展示你的思考过程,不要直接给答案。
model: "gpt-4o"
temperature: 0.3 # 低温度保证推理稳定性
在 OpenClaw 中使用思维链
# 安装 CoT Skill
openclaw skill install chain-of-thought-reasoning
# 方式1:直接在提示中加入"一步步思考"
openclaw chat --model gpt-4o --temperature 0.3 \
--message "请一步步思考:如果一家SaaS公司月流失率5%,\
初始客户1000人,12个月后还剩多少客户?请展示计算过程。"
# 方式2:使用 CoT Skill 的专用函数
openclaw run-skill chain-of-thought-reasoning \
--problem "分析为什么我们的AI Agent成本在3个月内增加了300%,给出优化方案" \
--steps 5 \
--output-format "json"
# 输出示例
{
"analysis": "成本激增可能源于:模型调用频次、token消耗、冗余请求",
"steps": [
{"step": 1, "thought": "检查模型调用日志,发现日均调用从1000次增至5000次"},
{"step": 2, "thought": "分析发现80%调用是对简单问题的重复询问"},
{"step": 3, "thought": "引入缓存层,相同问题直接返回历史答案"},
{"step": 4, "thought": "对简单问题路由到gpt-4o-mini,复杂问题才用gpt-4o"},
{"step": 5, "thought": "添加请求去重,10分钟内相同问题只处理一次"}
],
"conclusion": "通过缓存+模型路由+去重,预计成本可降低65%",
"verification": "历史数据回测显示,该方案在相似场景下平均节省68%成本"
}
高级技巧:自洽性思维链(Self-Consistency CoT)
一个思维链可能走偏,多个思维链取交集就更可靠。
# self-consistency-cot.yaml
name: "self-consistency-cot"
description: "多路径思维链,取最一致答案"
skill_config:
reasoning_paths: 5 # 生成5条不同的推理路径
aggregation: "majority_vote" # 多数投票
min_consistency: 0.6 # 至少60%的路径达成一致
prompt_template: |
{input}
请用与之前不同的思路再思考一遍这个问题。
你可以从另一个角度切入,或者使用不同的分析方法。
第{path_id}条推理路径:
# OpenClaw 运行
# 对复杂问题生成5条推理路径,自动汇总最一致的答案
openclaw run-skill self-consistency-cot \
--problem "设计一个OpenClaw Agent的容错机制,保证99.9%可用性" \
--paths 5 \
--timeout 60
💭 妙趣的思考:
思维链就像写代码时的"注释"。不写注释,代码能跑;写了注释,出了问题能快速排查。思维链就是给AI的思考过程写注释。
不同场景的 CoT 模板
1. 数学/逻辑问题
system: |
你是数学推理专家。遵循以下思考步骤:
1. 明确已知条件和求解目标
2. 列出相关公式或定理
3. 代入数据计算
4. 检查计算过程和结果
5. 用另一种方法验证
2. 代码调试
system: |
你是代码调试专家。遵循以下排查步骤:
1. 阅读错误信息,定位错误类型
2. 检查相关代码逻辑
3. 列出可能的错误原因(从最可能到最不可能)
4. 逐一验证,找到根因
5. 给出修复方案,并说明为什么这样修
3. 业务决策
system: |
你是商业分析专家。决策思考步骤:
1. 明确决策目标和约束条件
2. 列出所有可行方案
3. 为每个方案评估:成本、收益、风险、实施难度
4. 用加权评分法排序
5. 给出推荐方案,并说明取舍理由
OpenClaw 工具集成:CoT + 工具调用
# cot-with-tools.yaml - 思维链配合工具调用
name: "cot-data-analysis"
description: "带工具调用的数据分析思维链"
steps:
- id: "understand"
prompt: |
用户请求:{input}
请分析:需要哪些数据?用什么工具获取?
输出JSON:{"required_data": [...], "tools_needed": [...]}
model: "gpt-4o"
- id: "fetch_data"
type: "tool_call_sequence"
tools:
- name: "web_search"
query: "{steps.understand.output.required_data[0]}"
- name: "fetch_url"
url: "{steps.understand.output.required_data[1]}"
- id: "analyze"
prompt: |
原始请求:{input}
获取的数据:{steps.fetch_data.output}
请一步步分析这些数据,得出结论。
展示你的思考过程。
model: "gpt-4o"
temperature: 0.2
- id: "verify"
prompt: |
我的结论是:{steps.analyze.output}
请作为验证者,检查这个结论:
1. 数据支撑是否充分?
2. 推理过程是否有漏洞?
3. 结论是否合理?
如果发现问题,请指出并修正。
model: "gpt-4o"
temperature: 0.1
性能对比
| 方法 | 准确率 | Token消耗 | 适用场景 |
|---|---|---|---|
| 直接回答 | ⭐⭐ | 100 tokens | 简单事实查询 |
| 基础CoT | ⭐⭐⭐⭐ | 500 tokens | 数学、逻辑、分析 |
| 自洽CoT(5路径) | ⭐⭐⭐⭐⭐ | 2500 tokens | 高风险决策、复杂推理 |
| CoT+工具调用 | ⭐⭐⭐⭐⭐ | 800 tokens + 工具成本 | 需要实时数据的分析 |
⚠️ 什么时候不用CoT?
- 简单事实查询("北京天气怎么样")→ 直接回答更快
- 创意生成("写个段子")→ CoT反而限制脑洞
- 实时性要求极高(<100ms响应)→ CoT增加延迟
最佳实践
- 温度设置:CoT用低温度(0.1-0.3),保证推理稳定性
- 步骤数量:复杂问题5-7步,别太多(会绕晕)
- 验证环节:重要决策加一个"验证者"步骤,让另一个提示来检查结论
- 输出格式:结构化输出(JSON),方便程序解析和展示
- 缓存思考:相同问题的思考过程可以缓存,避免重复推理
🎯 妙趣金句:
"不展示思考过程的AI,就像不展示计算过程的计算器——你永远不知道那42是怎么来的。"