Prompt 不是"聊天",是编程
2026 年了,如果你还在用"帮我写一篇..."这种 prompt,你就落后了。好的 prompt 应该像函数签名一样精确:明确的输入、约束条件、输出格式。
设计模式一:Chain-of-Thought(思维链)
强制模型展示推理过程,对数学、逻辑、多步决策问题效果显著。
## System
你是一个严谨的算法工程师。回答每个问题之前,先写出你的推理步骤。
## User
下面是一段代码,请判断是否存在死锁风险:
[code]
## 预期输出格式
1. 分析代码中的锁获取顺序
2. 标记所有交叉锁依赖
3. 结论:是否存在死锁风险(是/否)
4. 如存在,给出修复建议
设计模式二:ReAct(推理 + 行动)
模型交替进行"思考"和"行动",适合需要调用工具/搜索的场景。
你是一个数据分析助手。
可用工具:
- search_table(name): 搜索表结构
- run_sql(query): 执行 SQL 查询
- plot(data, type): 生成图表
流程:
Thought: 我需要先了解有哪些表
Action: search_table("revenue")
Observation: [返回表结构]
Thought: 需要查询2024年各月收入
Action: run_sql("SELECT month, SUM(amount) ...")
...
设计模式三:Few-Shot with Negative Examples
不仅要给正确示例,还要给"离正确答案最近但不对"的反例,大幅提升边缘场景的准确率。
判断文本情感(正面/负面/中性):
✅ 正确示例:
"这个产品太棒了!" → 正面
"一般般吧,没什么特别的。" → 中性
"用了三天就坏了,垃圾。" → 负面
❌ 常见错误(不要这样回答):
"还行,但价格有点贵" → 不是负面,是 中性
"还不错,性价比很高" → 不是中性,是 正面
设计模式四:结构化输出约束
分析以下代码片段的安全漏洞。严格按 JSON 格式输出:
{
"vulnerabilities": [
{
"severity": "HIGH|MEDIUM|LOW",
"type": "SQL注入|XSS|CSRF|...",
"line": 42,
"description": "具体描述",
"fix": "修复代码"
}
],
"overall_risk": "HIGH|MEDIUM|LOW"
}
设计模式五:Self-Consistency(多次采样取多数)
对同一个问题采样 5 次(temperature=0.7),取出现最多的答案。这是提升推理准确率最简单有效的方法。
for i in range(5):
answer = model.generate(prompt, temperature=0.7)
answers.append(answer)
final = max(set(answers), key=answers.count)
组合使用才是王道
真实场景中,这五个模式往往是组合出现的。比如一个代码审查 agent:
ReAct 框架 + Chain-of-Thought + 结构化输出 + Few-Shot掌握这些模式后,你会发现 prompt 本质上是一种新的编程范式:用自然语言定义行为约束,用示例代替单元测试。