除了前面介绍的Prompt设计原则与技巧,我们还可以通过一些更高级的策略,引导模型进行更复杂、更可靠的推理,从而提升输出的质量。
思维链 (Chain of Thought, CoT)
思维链 (Chain of Thought, CoT) 是一种通过引导模型“一步一步思考”来解决复杂问题的方法。它不是让模型直接给出最终答案,而是要求模型首先输出一个详细的、逻辑连贯的推理过程,然后再基于这个过程得出结论。
这种方式模仿了人类解决复杂问题时的思考模式,将一个大问题分解为一系列更小、更易于管理步骤。对于算术、常识和符号推理等任务,思维链可以显著提升模型的准确性。
最简单直接的实现方式,就是在提示词的末尾加上一句“魔咒”:“请一步一步思考” 或 “you must think step by step”。
比如,你直接问DeepSeek:
他的回答是这样的,其实他这个过程就是思维链。他会一步一步的计算得到结果。
这是因为我们用的deepseek R1,他本身就是一个带thinking的模型了。其实,现在很多模型已经很强大了,针对一些数学问题,他都会用COT的方式来解答了。这也证明了COT是行之有效的。
当然,在工作中,还是有些场景,可以用COT的方式来解决一些不稳定的问题。
当然,大模型本身不擅长精确的数学计算,所以上面的例子中,就算 Prompt 中加入了 CoT,也不一定就能保证结论100%正确,模型也可能在任何一步算错。
但是,思维链的核心价值并不在于保证计算的绝对精确,也不在于保证最终结果的绝对正确,而在于它强制模型构建出一条清晰、正确的逻辑路径。
CoT 的首要作用是确保模型正确地理解和分解了问题,这是后续能跟正确解决问题的基础。其次,当模型展示其推理过程时,我们就能清晰地看到它的“思路”,进而通过提示词为错误的步骤进行优化。合适的推理步骤,也有助于后续我们的“工具调用”,模型只需要知道在“在哪一步、应该调用哪个工具”,就可以完成任务了。所以 CoT 非常适合用于我们的复杂任务场景。
自我一致性 (Self-Consistency)
这是智能体工程化的一种进阶用法,它通过“少数服从多数”的原则来提高结果的可靠性。 具体操作是,我们让模型使用思维链对同一个问题进行多次、多样化的推理,然后选择在这些不同的推理路径中出现次数最多的那个答案作为最终答案。 这种方法的好处是,即使模型在某一次的推理中出现了小错误,但只要大多数推理路径都能指向正确答案,我们依然可以获得一个高置信度的结果。它极大地增强了复杂推理任务的稳定性和准确性。 实现步骤 - 多次调用模型使用相同的 Prompt,以奇数次(如 3、5、7 次)方式调用模型(也可以是不同大模型),确保能通过超过半数投票决策。 - 收集推理结果记录每次模型输出的完整推理路径和最终结论。 - 结果汇聚与分析将所有结果汇总后,可以再次交给模型进行总结或统计,判断哪个结论在多个推理路径中出现最频繁。 - 确定最终答案选择出现次数最多或一致性最高的答案作为最终输出。 优化建议 - 并发调用:奇数次调用大模型可并行执行,显著降低整体响应时间。 - 参数调节:适当调整tempature温度系数或者top-p等模型超参,控制模型输出的多样性。条件允许的话,也可以使用不同的大模型,以增强推理路径的多样性。
如果孩子被别的小朋友校园霸凌了,要不要鼓励他勇敢打回去?
请从以下多个视角分别独立思考,并综合给出最终答案:
1、孩子的父母
2、育儿专家
3、学校老师
4、心理学家
5、孩子自身的角度
思维树(Tree of Thoughts,TOT)
TOT的核心思想是:“不要满足于第一个想到的答案,而是像下棋一样,探索多种推理路径,并进行前瞻性评估,最终选择最优解。” 传统的让模型回答问题的方式是“一条道走到黑”,即一步一步推导出一个答案。这对于复杂问题很危险,因为: - 模型可能在第一步就走上错误的推理路径。 - 它只产生一种思路,没有备选方案。 - 无法进行“回溯”或“自我纠正”。 TOT 就是为了解决这些问题而诞生的。 可以把TOT想象成下象棋: - 1、思维分解:你正在思考下一步棋怎么走。 - 2、思维生成:你脑子里想到了3种可能的走法(走马、拱兵、飞象)。 - 3、状态评估:你逐一推演每种走法之后对手可能会怎么应对,以及后续几步的局势如何,最终判断出“走马”能为你带来最大的优势。 如:
[任务]设计订单到期关闭方案
[步骤一]设计3种订单到期关闭的方案
[步骤二]对每种方案评估他的优缺点
[步骤三]综合3种方案,选择一个最优方案
反思机制 (Reflection)
与自我一致性类似,反思机制 (Reflection) 同样也是智能体工程化进阶用法。它是一种让模型自我批判、自我修正的策略。它先让模型先生成一个初步的答案,通过大模型之间的多轮对话的过程,引导模型对答案进行评估和反思,找出其中的不足,最后再生成一个经过优化的最终版本。 实现步骤 - 生成初步答案接收用户Query,注入带有CoT的Prompt之中,调用大模型,获取初步的答案。 - 反思审查 结合用户的原始Query以及初步答案,一起发送给大模型进行分析研判,判断答案是否能够满足用户Query的要求,如果不满足,则提出相应的改进意见,如果满足,则可以直接进行输出。 - 答案修订初步答案如果不满足要求,则将用户原始Query + 答案 + 反思审查的改进结果,进行汇聚,合理结构化分层,发送给大模型,要求其生成修订版答案,并附带修改说明(比如:哪些地方有误,如何修正,修正成什么样了)。 - 生成最终答案对修订后的结果以及用户原始Query进行总结输出。 优化建议 - 增加迭代环节:可以在答案修订和反思审查环节增加循环迭代,通过反复修订+审核,持续提升答案的精度。 生成 → 反思 → 修订 → 再反思 → 再修订 …... → 生成最终答案 但是会有两个问题需要特别注意: - 响应时间,反复迭代会导致响应时间急剧增长,仅适合于离线功能; - 模型上下文,由于审核需要结合之前的历史信息来做判断,可能会导致内容的不断堆叠,导致上下文爆炸,很容易超出模型上下文的限制,需要有更多其他的优化策略(比如记忆压缩、摘要提取等等)。 自我一致性(Self-Consistency)和反思机制(Reflection)本质上并不与思维链(CoT)处于同一维度。 CoT 关注的是如何在单次调用中,通过提示词设计来激发模型显式地生成推理过程。 而 自我一致性 与 反思机制 则属于 更高层次的智能体工程化策略。它们不依赖单次调用,而是通过多轮或多次模型调用,对不同输出结果进行汇总、比较、反思或再加工,以获得更可靠、更高质量的答案。
ReAct 推理+行动 (Reason and Act)
ReAct 框架是将大模型真正转化为“智能体 (Agent)”的关键技术之一,因为它让模型具备了实时与外部世界互动以及动态规划的能力。 它是一种结合思考(Reason)与行动(Act)的智能体框架,用于指导大模型在完成复杂任务时,通过思考、行动、观察、反馈 的反复循环迭代来逐步逼近或者完成任务。这种交错循环模仿了人类解决问题的自然模式:先思考后行动,再观察结果后修正思考。 实现步骤 - 思考推理 规划下一步、分解复杂任务或分析上一步行动的结果,生成具体的执行计划。延续了思维链(CoT)的优势,提供了动态推理和自主规划的能力。 - 行动(工具调用) 基于执行计划中每一步的指令要求,模型会自主选择并执行一个外部工具或 API(如联网查询、数学计算、代码生成、知识库查询等)。这也是大模型能够与外部世界建立连接的接口。 - 观察 / 反馈 反馈智能体成功获取到工具执行的结果后,将会根据原始问题和工具的执行结果,判断任务是否完成,如果未完成,则继续返回思考推理,生成下一步行动的结果,反复循环迭代。如果已完成,则直接进入总结阶段。 - 输出总结 当判断任务已完成时,它会整合整个循环过程中收集到的所有关键信息,生成一个全面、连贯的最终答案。
开源ReAct架构多智能体产品
- Camel-AI https://github.com/camel-ai/camel/blob/master/README.zh.md 这是一个创新的多智能体(Multi-Agent)框架。它并非单个智能体应用 ReAct,而是构建了一个“角色扮演”的环境,让一个“用户智能体”和一个“助手智能体”通过对话来共同完成任务,并且每轮对话迭代都有“反馈智能体”来判断任务是否可以提前结束。其整体的架构就是基于ReAct,通过沟通(观察)来调整自己的下一步思考和行动。
- OpenManus: https://github.com/FoundationAgents/OpenManus/blob/main/README_zh.md OpenManus 是一个开源多智能体系统,旨在复刻商业 AI 系统 Manus 的能力,而 Manus 是由 Monica 开发的通用智能体,能够自主执行复杂任务如个性化旅行规划和数据分析;OpenManus 与 Manus 的关系是前者借鉴后者的智能体设计理念和任务执行模式,但提供了模块化、开源的框架,让开发者可以自由搭建、扩展和实验多智能体系统,同时它的实现核心就是基于 ReAct 架构,通过主智能体进行推理和规划,工具智能体提供外部行动支持,反馈智能体监控任务完成情况,智能体之间通过观察和迭代不断调整决策,实现复杂任务的自主协作。