提示词工程的三次范式跃迁2023 年的 Prompt Engineering 是手工作坊——每个人凭经验写你是一个专家……请用友好语气……。2026 年这个概念已经完全不同。CoT思维链让模型学会推理、ReAct 让模型学会行动、DSPy 让程序自动优化提示词——Prompt Engineering 从手艺变成了工程。这篇文章不讲怎么写好提示词讲的是四个让提示词产生质变的技术。第一层Chain-of-Thought——让模型说出来再答Zero-shot CoT 的核心逻辑极其简单在问题后面加一句Lets think step by step。但 2026 年的 CoT 已经进化到结构化推理from openai import OpenAI client OpenAI() # 传统 CoT一句话触发推理 simple_cot Q: 一个长方体的长宽高分别是3m、4m、5m它的体积是多少 A: Lets think step by step. # 2026 进阶结构化 CoT —— Few-Shot 推理模板 structured_cot 你是一个数学问题求解器。请按以下步骤推理 Step 1: 识别问题类型和已知条件 Step 2: 列出相关公式 Step 3: 代入计算 Step 4: 验证结果 示例 Q: 圆的半径是7cm面积是多少 Step 1: 这是圆面积问题。已知半径r7cm。 Step 2: 圆面积公式 Sπr² Step 3: S 3.14 × 7² 3.14 × 49 153.86 Step 4: 验证7²49π≈3.14乘积合理。答案153.86平方厘米。 现在请解答 Q: 一个圆柱的底面半径3cm高10cm体积是多少 response client.chat.completions.create( modelgpt-5.1, messages[{role: user, content: structured_cot}] )关键技巧 - Few-Shot 示例比 Zero-Shot 稳定得多——给 2-3 个完整推理示例模型会严格模仿格式 - 推理步骤写具体Step 1: 识别…Step 2: 列出…不要只说请逐步思考 - 验证步骤Step 4显著减少计算错误——模型会自己检查结果第二层ReAct——思考行动的闭环CoT 只思考不行动。ReActReasoning Acting让模型在推理过程中调用工具、获取信息、根据结果调整推理。# ReAct 提示词模板 REACT_PROMPT 你是一个具备工具调用能力的AI助手。请使用以下格式回复 Thought: 我需要做什么当前已知什么还需要什么信息 Action: 调用的工具名称 Action Input: 工具的输入参数 Observation: 工具返回的结果 ... (Thought/Action/Action Input/Observation 可以重复多次) Thought: 我现在有足够的信息来回答 Final Answer: 最终答案 可用工具 - search(query: str) - str: 搜索互联网获取信息 - calculator(expression: str) - str: 计算数学表达式 - get_weather(city: str) - str: 获取城市天气 问题北京今天比上海热多少度 # 模型会输出类似 # Thought: 我需要知道北京和上海今天的温度 # Action: get_weather # Action Input: 北京 # Observation: 北京今天 32°C # Thought: 还需要上海的温度 # Action: get_weather # Action Input: 上海 # Observation: 上海今天 28°C # Thought: 现在可以计算温差 32-284 # Action: calculator # Action Input: 32-28 # Observation: 4 # Final Answer: 北京今天比上海热4度2026 年 ReAct 的实战要点 - 如果模型陷入 Thought-Action 循环不收敛在 prompt 里加max_steps: 5限制 - Action 的 description 写清楚输入格式——模糊描述是 ReAct 失败的第一大原因 - DeepSeek V4 和 Opus 4.7 的 ReAct 能力很强小模型7B容易跑偏第三层Self-Consistency Tree-of-Thought一条推理链可能走偏。Self-Consistency跑多条推理链取投票结果def self_consistency(prompt: str, n_samples: int 5) - str: 生成多条推理链投票选最佳答案 answers [] for _ in range(n_samples): response client.chat.completions.create( modelgpt-5.1, messages[{role: user, content: prompt}], temperature0.7 # 高温度产生多样性 ) answers.append(response.choices[0].message.content) # 用 LLM 选择最佳答案 judge_prompt f以下是对同一问题的{n_samples}个不同推理和答案请找出最一致的答案并返回\n\n \n---\n.join(answers) response client.chat.completions.create( modelgpt-5.1, messages[{role: user, content: judge_prompt}], temperature0.0 # 评判用低温度 ) return response.choices[0].message.contentTree-of-Thought更进一步每步推理生成多个分支评估每个分支的质量选最优路径继续。何时用 - Self-Consistency数学题、逻辑推理——有唯一正确答案的任务 - Tree-of-Thought创意写作、策略规划——需要探索多种可能性的任务 - 简单任务不要用多轮采样是 5 倍 token 消耗FAQ 不需要第四层DSPy——让程序自动优化提示词这是 2026 年最值得关注的范式不写提示词写程序让模型自己找最优提示词。import dspy # 1. 定义任务签名输入 → 输出格式 class QATask(dspy.Signature): 回答技术问题附带解释 question dspy.InputField() context dspy.InputField() answer dspy.OutputField(desc简洁准确的答案) explanation dspy.OutputField(desc推理过程) # 2. 定义评估指标 def qa_metric(example, pred, traceNone): # 用 LLM 评判答案质量 score dspy.evaluate.answer_exact_match(example, pred) return score # 3. 用训练数据自动优化 trainset [ dspy.Example(question什么是RAG?, contextRAG是检索增强生成..., answerRAG 检索 生成), dspy.Example(questionMCP协议是什么?, contextMCP是Model Context Protocol..., answerAI工具调用的标准协议), ] # 4. 自动优化 —— DSPy 自己调 prompt 模板和 few-shot 示例 optimizer dspy.BootstrapFewShot(metricqa_metric, max_bootstrapped_demos3) optimized_program optimizer.compile( dspy.ChainOfThought(QATask), trainsettrainset ) # 5. 使用优化后的程序 result optimized_program( questionGraphRAG和普通RAG的区别?, contextGraphRAG使用知识图谱... ) print(result.answer, result.explanation)DSPy 的核心价值你不再纠结prompt 怎么写更好——DSPy 自动尝试不同模板、few-shot 示例组合、推理链格式用你的评估指标选出最优。这在有明确评估标准的场景QA、分类、信息抽取中效果惊艳。技术选型速查你的需求推荐技术Token成本简单任务一次回答Zero-Shot 结构化指令低需要推理过程Few-Shot CoT中需要推理调用工具ReAct中高需要高准确率Self-Consistency (n5)5倍需要持续迭代优化DSPy 自动化训练时高推理时正常小结Prompt Engineering 在 2026 年已经不是写提示词而是设计推理流程。从 CoT 的结构化推理到 ReAct 的思考-行动闭环再到 DSPy 的自动优化——每一步都在把提示词从经验变成系统。对于大多数开发者我建议的路线先把 CoT Few-Shot 用熟投资回报率最高遇到工具调用场景就上 ReAct有明确评估指标的时候让 DSPy 帮你自动优化。下一篇预告DSPy 进阶——自定义 Optimizer 和 Metric构建自动化提示词优化流水线。