Appearance
高级 Prompting 与推理增强(Advanced Prompting & Reasoning)
基础 Prompting 解决的是“把需求说清楚”。高级 Prompting 解决的是另一个问题:当任务需要多步推理、外部信息、工具调用或反复校验时,怎么让 AI 更稳。
你可能已经遇到过这种情况:同一个问题,AI 有时回答得很清楚,有时又像“绕口令”。这不一定是模型突然变笨,而是任务本身需要拆解、检索、验证,甚至需要模型边行动边观察结果。
这一章,我们把几种常见方法放在同一个框架下看:Chain-of-thought、ReAct、RAG,以及模型原生推理(Model-native Reasoning)。它们不是互相替代的流行词,而是解决不同问题的工具。
从答案提示到过程提示
普通 Prompt 往往直接要结果:
text
帮我分析这个方案是否可行。高级 Prompting 更关心过程控制:
text
请先列出这个方案成立所需的关键假设,
再从成本、风险、实施难度三个角度分析,
最后给出结论和需要人工确认的事项。差别在哪里?
- 不只是问“答案是什么”,而是要求 AI 说明判断维度。
- 不只是让它生成内容,而是让它暴露关键假设。
- 不只是相信一次回答,而是把验证步骤写进任务里。
这就是高级 Prompting 的核心:让 AI 的思考过程更可控,让你更容易发现它在哪里可能错。
Chain-of-thought:把复杂问题拆开
Chain-of-thought(思维链,常写作 CoT)最初的意思,是让模型通过中间步骤解决复杂问题。它适合处理多步骤推理,比如数学题、逻辑题、方案比较、复杂决策。
但在实际使用中,不建议把它理解成固定模板:“一步一步思考”。更稳妥的做法,是让 AI 输出你真正需要检查的结构。
比如:
text
请按下面结构回答:
1. 问题拆解
2. 关键假设
3. 推理步骤摘要
4. 最终结论
5. 可能出错的地方注意这里说的是“推理步骤摘要”,不是要求模型把所有内部思考逐字写出来。对用户来说,真正有价值的是可检查的中间结论:假设是什么、依据是什么、风险在哪里。
CoT 适合解决“信息已经在上下文里,但需要推理”的问题。它不适合解决“信息根本不存在”的问题。如果你问一个模型不知道的事实,它就算写出很长的推理过程,也可能只是把错误说得更像真的。
ReAct:边推理,边行动,边观察
ReAct 是 Reason + Act 的组合。它的核心不是让 AI 一直想,而是让 AI 在推理和行动之间循环:
- 理解当前目标。
- 决定下一步行动。
- 执行动作,得到观察结果。
- 根据观察结果调整计划。
在纯对话里,你可以把 ReAct 当成一种任务管理方式:
text
请按循环方式推进这个任务:
先说明下一步要验证什么,
再告诉我需要提供什么信息,
等我补充后再继续下一步。在 Agent 系统里,ReAct 会更具体:模型可以调用搜索、读文件、执行命令、访问 API。每一次工具调用都会产生观察结果,模型再根据结果决定下一步。
ReAct 适合不确定性比较高的任务,比如调试问题、查资料、分析代码库、排查线上故障。它的优势是不会把一开始的计划当成真理,而是随着新信息不断修正。
但 ReAct 也有成本:步骤更多,延迟更高,也更容易在错误观察上继续走偏。所以它需要边界:
- 每一步只做一个清晰动作。
- 重要结论要回到证据本身。
- 高风险动作必须由人确认。
RAG:先找信息,再让模型回答
Chain-of-thought 和 ReAct 解决的是“怎么推理”和“怎么行动”。RAG 解决的是另一个问题:模型没有看到正确资料。
RAG(Retrieval-Augmented Generation,检索增强生成)的基本思路是:先从知识库里找出相关内容,再把这些内容放进 Prompt,让模型基于资料回答。
基本流程是:
- 离线阶段:把文档切成小块(Chunking),每一块转换成向量(Embedding),存入向量数据库。
- 在线阶段:用户提问时,把问题也转换成向量,在数据库里找到最相关的文档块。
- 生成阶段:把检索到的文档块拼进上下文,让模型基于这些材料回答。
为什么需要向量?因为向量能捕捉语义。“怎么退货”和“退款流程是什么”在字面上差别很大,但语义接近,向量检索更容易把它们联系起来。
RAG 很适合企业知识库、产品文档、客服问答、内部制度检索。它的价值不是让模型“学会”这些资料,而是在回答时把资料临时放到模型面前。
RAG 的局限也很明确:
- 检索质量决定回答质量:找错资料,回答就会跑偏。
- 文档质量决定上限:过时文档、错误文档会被模型原样使用。
- 上下文组织很重要:塞太多材料会引入噪声,塞太少又可能缺关键证据。
提醒:RAG 不是万能药。它解决的是“让 AI 看到正确的信息”,但不能保证 AI “正确地使用这些信息”。输入质量决定输出质量。
延伸阅读:如果你想了解 RAG 的技术细节(向量嵌入、HNSW 索引、混合搜索策略等),可以看RAG 技术详解。
模型原生推理:不要手工模拟一切
随着模型能力提升,很多推理能力开始变成模型原生能力。你不一定需要写很复杂的提示词来模拟“思考过程”,模型本身就能在内部做更长的推理、计划和自我检查。
这就是模型原生推理(Model-native Reasoning):把复杂推理交给底层模型能力,而不是完全依赖外部 Prompt 模板。
这和前面讲的升级对齐定律是一致的。底层模型升级后,一些过去必须手写的技巧会变成细节。比如早期你可能要反复写“请一步一步思考”,现在更重要的是:
- 给清楚目标。
- 给必要上下文。
- 给明确约束。
- 说明输出格式。
- 要求列出关键假设、证据和风险。
也就是说,你不需要控制模型的每一个“内心步骤”,而是要控制它交付给你的结果结构。
一个更稳的提示是:
text
请先在内部完成必要推理。
最终只输出:
1. 结论
2. 关键依据
3. 不确定点
4. 建议的下一步验证这类写法适合强推理模型。它让模型保留内部推理空间,同时把用户真正需要检查的信息输出出来。
准确性控制:上下文、幻觉与验证
AI 有时会“编”。这叫幻觉(Hallucination)。它不是故意骗你,而是生成机制决定了它会补全缺失信息,即使那个信息并不存在。
避免幻觉的关键在于约束和验证。
约束:缩小生成空间
- 给明确的事实依据:比如“根据以下文档回答”,而不是“你知道的都说”。
- 限制范围:比如“只讨论 2024 年以后的情况”。
- 要求标注不确定性:比如“如果不确定,请明确说‘我不确定’”。
验证:交叉检查
- 要求反例:让 AI 自己找可能的反驳。
- 要求依据:让 AI 给出信息来源或上下文片段。
- 多角度提问:用不同方式问同一个问题,看答案是否一致。
例如:
text
请给出结论,并列出 2 条可能的反例或失败条件。提醒:如果你需要高可靠性结果,请让 AI 输出“假设清单”,然后你逐条确认。AI 的推理可以参考,但最终判断权在你。
确认偏误:AI 倾向于“同意”你
这里有一个很多人没意识到的陷阱:AI 倾向于同意用户。
你问“这个方案可行吗?”,AI 大概率会说“可行”,然后找理由支持你。你问“这个代码有 bug 吗?”,AI 可能会说“看起来没问题”,即使有问题。
这不是 AI 在“讨好”你,而是它的训练方式决定了它倾向于生成用户期望看到的内容。这就是确认偏误(Confirmation Bias):在 AI 语境下,它会倾向于支持你的预设。
怎么办?
- 主动要求反驳:“请反驳这个方案,列出 3 个可能的问题。”
- 换角度提问:“如果你是这个方案的反对者,你会怎么说?”
- 给对立立场:“假设这个方案是错的,最可能的原因是什么?”
text
我有一个方案:[方案内容]。
请先不要评价它的好坏,
而是从反对者的角度列出 3 个最可能的问题。Human-in-the-loop:高风险节点必须人工校验
不管 AI 的推理能力多强,有一个原则始终不变:高风险决策必须有人参与。
什么是“高风险节点”?
- 不可逆操作:删除数据、发布上线、发送邮件。
- 高影响决策:架构选型、技术方案、预算分配。
- 涉及价值判断:内容审核、风险评估、合规检查。
在这些节点上,不要让 AI 自己做决定。让它给出建议和依据,你来做最终判断。
这不是不信任 AI,而是一种合理分工:AI 擅长信息处理和方案生成,快速给出多个选项;人擅长价值判断和最终决策,在选项中做出选择。
小结
- 高级 Prompting 的重点不是更长的提示词,而是更可控的过程。
- Chain-of-thought 适合多步骤推理,但要关注可检查的假设、依据和结论。
- ReAct 适合需要边行动边观察的任务,尤其是调试、检索和工具调用场景。
- RAG 适合把外部知识放进上下文,但检索质量和文档质量决定效果上限。
- 模型原生推理会让一部分旧技巧变成细节,你需要控制输出结构,而不是控制每一步内心活动。
- 幻觉、确认偏误和高风险节点都需要验证机制,不能只靠模型自信程度判断结果。
练习
- 选一个多步骤问题,写一个“假设 → 依据 → 结论 → 风险”的提示,对比它和直接提问的区别。
- 给 AI 一个你认为正确的观点,然后要求它从反对者角度反驳。记录它提出的问题是否有价值。
- 找一篇长文章,先让 AI 总结成 5 条要点,再只基于其中一条继续追问,观察上下文缩短后回答是否更稳定。
- 设计一个简单的 ReAct 流程:让 AI 每次只提出下一步要验证的问题,等你提供观察结果后再继续。