多智能体(Multi-agent)策略模式:思维链CoT和ReAct

发布于:2025-07-26 ⋅ 阅读:(19) ⋅ 点赞:(0)

参考:https://zhuanlan.zhihu.com/p/704523060

🎯 一句话记住

  • CoT:像“考试时在草稿纸上写完所有步骤,再抄答案”。
  • ReAct:像“玩密室逃脱,每开一个箱子就去找下一个线索”。

用小学生能听懂的话 + 两个小故事,把 CoT(思维链)ReAct(行动-思考交替) 的区别讲清楚。


🧠 先记住两个关键词

  • CoT:像“在心里自言自语”,把推理过程一口气说完。
  • ReAct:像“边做边说”,先动手做一步,再思考下一步,再动手……

🌰 故事 1:CoT——小明做数学题

题目:小明有 5 颗糖,妈妈又给他 3 颗,他吃掉 2 颗,还剩几颗?

小明心里的小剧场(CoT)
“我先数原来的 5 颗,加上 3 颗就是 5 + 3 = 8 颗。再吃掉 2 颗,8 - 2 = 6 颗。所以还剩 6 颗!”
一口气把推理全说完,再给出答案。
这就是 CoT:先完整思考,再回答


🌰 故事 2:ReAct——小红拼乐高

任务:拼一辆乐高小车,但说明书丢了。

小红边做边说(ReAct)

  1. 行动:先拿起轮子装上去。
    思考:咦,车身还没装,轮子会晃!
  2. 行动:拆掉轮子,先拼底座。
    思考:底座好了,轮子应该装这里。
  3. 行动:把轮子对准卡扣按进去。
    思考:现在装方向盘,车就能开了!
    每一步先做再想,再做再想……
    这就是 ReAct:行动和思考交替进行

📝 小学生总结表

CoT(思维链) ReAct(行动-思考交替)
像什么? 一口气把解题步骤全说完 边做实验边记录
顺序 思考 → 思考 → … → 答案 行动 → 思考 → 行动 → 思考…
优点 逻辑清楚,一步不漏 灵活应变,随时纠错
例子 口算题:先算乘法,再加法 拼乐高:装错了拆了重装

下面用最少的代码,把 CoT(思维链)ReAct(行动-思考交替) 各写一个可运行的小例子,全部用小学生也能看懂的“加减法”场景。


① CoT(思维链)

一口气把推理过程打印完,再给答案。

def solve_by_cot(a, b, c):
    # 1. 先把整个思考过程说完
    print(f"1. 原来有 {a} 颗糖")
    print(f"2. 妈妈又给 {b} 颗,一共 {a + b} 颗")
    print(f"3. 吃掉 {c} 颗,还剩 {a + b - c} 颗")
    # 2. 最后给出答案
    return a + b - c

print("CoT 答案:", solve_by_cot(5, 3, 2))

运行结果

1. 原来有 5 颗糖
2. 妈妈又给 3 颗,一共 8 颗
3. 吃掉 2 颗,还剩 6 颗
CoT 答案: 6

② ReAct(行动-思考交替)

每做一步就停下来“想一想”,再继续下一步。

def solve_by_react(a, b, c):
    total = a
    print(f"行动:数出 {a} 颗糖")
    
    total += b
    print(f"思考:妈妈又给 {b} 颗,现在应该有 {total} 颗")
    
    total -= c
    print(f"行动:吃掉 {c} 颗")
    print(f"思考:所以最后还剩 {total} 颗")
    
    return total

print("ReAct 答案:", solve_by_react(5, 3, 2))

运行结果

行动:数出 5 颗糖
思考:妈妈又给 3 颗,现在应该有 8 颗
行动:吃掉 2 颗
思考:所以最后还剩 6 颗
ReAct 答案: 6

🎯 一句话总结代码差异

  • CoT:先 print 完所有思考,最后 return 结果。
  • ReAct:每做一次运算就 print,边算边说。

网站公告

今日签到

点亮在社区的每一天
去签到