提示词工程学习 Day 23: #45 上下文增强提示 + #46 反事实假设提示

📚 提示词工程学习 Day 23

2026-04-19 | 组合技巧专题

今日学习两个进阶组合技巧:上下文增强提示反事实假设提示,掌握如何通过优化上下文质量和探索替代现实来提升 AI 推理能力。


📝 技巧 #45: 上下文增强提示 (Context Enrichment Prompting)

核心概念

上下文增强提示是一种通过主动扩展输入上下文的质量和密度,来提升大语言模型输出效果的进阶技巧。它不仅仅是"给模型更多信息",而是精心挑选、组织、排序上下文中的信息,让模型在有限注意力预算内获取最高价值的信号。

上下文工程(Context Engineering)是提示工程的自然进化阶段。在早期,提示工程的重点是"如何写好一句话";而在复杂 AI Agent 场景下,重点变成了"如何设计完整上下文结构"——包括系统指令、工具定义、用户输入、历史消息、外部知识等所有进入上下文窗口的元素。

为什么上下文质量决定输出质量

注意力预算有限:模型在处理长上下文时存在"上下文腐烂"(Context Rot)现象。随着 token 数量增加,模型准确召回上下文中信息的能力逐渐下降。

信息优先级影响解读:上下文中的信息并非平等——不同位置、不同组织方式的信息对模型的影响权重不同。

噪声放大错误:上下文中的无关信息(噪声)不仅无助于任务,还会增加模型误解的概率。

核心原则

好上下文的核心是"高密度、结构化、动态化、示例精选"。上下文工程不是简单堆积信息,而是精心策展信息。

上下文增强的四大核心维度

维度1:信息密度增强

提供高信号、低噪声的上下文。每个进入上下文的信息都应服务于最终输出目标。

维度2:结构化组织

用清晰的语法结构组织上下文,推荐使用分隔符、标题层级、编号列表等:

<background>
[背景信息简洁描述]
</background>

<task>
[任务目标明确描述]
</task>

<constraints>
[约束条件列表]
</constraints>

<examples>
[高质量示例]
</examples>

维度3:动态上下文

Agent 运行循环中,上下文是不断变化的。Anthropic 提出的"刚刚好"(Just-in-Time)策略:预先不加载所有可能相关的数据,在需要时通过工具动态加载,使用轻量级引用代替完整嵌入。

维度4:示例工程

Few-shot 示例是上下文中最有价值的组成部分。最佳实践是精心选择 3-5 个多样化、有代表性的示例。

实践案例

场景:开发一个 AI 研究助手,需要根据用户问题撰写搜索计划

任务类型:撰写搜索计划

背景信息:
- 用户是一名AI研究员,正在做文献调研
- 用户当前项目关注LLM在代码生成领域的最新进展
- 已有初步搜索关键词:LLM、code generation、2024-2025

核心指令:
1. 生成5个子查询,覆盖不同的研究维度
2. 每个子查询需要明确优先级(高/中/低)
3. 每个子查询需要附上预期信息类型(论文/博客/代码仓库)

输出格式:
[{ "subquery": "...", "priority": "...", "expected_type": "..." }]

上下文增强的常见陷阱

陷阱1:信息过载 — 过多的无关信息会稀释关键信号

陷阱2:结构不一致 — 不同来源的信息采用不同格式和术语

陷阱3:示例堆砌 — 超过5-7个示例后边际效益急剧下降

陷阱4:静态上下文 — Agent 运行过程中上下文变化后没有及时清理过时信息


📝 技巧 #46: 反事实假设提示 (Counterfactual Prompting)

核心概念

反事实假设提示是一种引导 LLM 探索"如果……会怎样"(What If)场景的提示技术。通过构造与现实不同假设条件,让模型分析因果关系、预测替代结果,从而获得更深层的推理能力和创新洞察。

反事实推理的心理学基础

上行反事实(Upward):想象如果结果更好 → 通常导致遗憾感

下行反事实(Downward):想象如果结果更差 → 通常导致庆幸感

反事实提示的核心结构

一个有效的反事实提示包含三个要素:

1. 锚定现实:明确当前的实际情形,让模型理解"基准线"

2. 引入变化:清晰说明要改变的特定变量或条件

3. 探索结果:要求模型分析在变化条件下的可能结果

实际案例:代码调试

以下代码在用户输入非法JSON时会崩溃:

```python
def process_user_input(user_input):
data = json.loads(user_input)
return data["name"]
```

请进行反事实分析:
1. 如果在 json.loads 之前添加输入验证,结果会如何改变?
2. 如果把 json.loads 包裹在 try-except 中,结果会如何改变?
3. 如果用户输入的是空字符串 "",结果会如何不同?

反事实提示的高级技巧

技巧1:多步反事实 — 不仅改变单一变量,而是构建因果链中的多个变化

技巧2:量化影响 — 在反事实分析中加入量化维度,让替代结果更具体

技巧3:对比反事实 — 同时分析多个替代现实,进行横向比较

反事实 + 其他技巧的组合

反事实 + 思维链(CoT):按步骤追踪因果链的每个节点

反事实 + 角色设定:从特定角色视角进行反事实分析

反事实提示的挑战与应对

挑战1:上下文依赖性 — 模型对原始场景理解不准确,反事实分析就会跑偏
应对:在反事实提示前,确保有充分的背景信息描述真实场景

挑战2:幻觉风险 — 反事实场景中生成看似合理但不符合逻辑链的内容
应对:要求模型在反事实分析中明确标注因果链,让推理过程透明化

挑战3:偏见放大 — 训练数据的偏见可能在反事实推理中被放大
应对:在提示中加入伦理边界约束,明确禁止生成有害的反事实内容


📌 今日小结

技巧 #45 上下文增强提示教会我们:上下文的质量直接决定模型输出的质量。好上下文的核心是"高密度、结构化、动态化、示例精选"。上下文工程不是简单堆积信息,而是精心策展信息,让模型的有限注意力预算花在最高价值的信息上。

技巧 #46 反事实假设提示教会我们:让模型学会问"如果……会怎样",是解锁深层推理能力的钥匙。反事实推理帮助模型理解因果关系、评估决策质量、探索替代路径。有效的反事实提示需要清晰的现实锚定、明确的变量变化、系统的结果探索。

两者结合:上下文增强确保模型有足够的高质量背景信息;反事实假设引导模型在已知信息的基础上进行创造性推理和深度分析。


📅 学习日期:2026-04-19 | Day 23 | 技巧 #45, #46

🔧 提示词工程 55+ 技巧学习计划

评论

此博客中的热门博文

OpenClaw 救援机器人建设与演进全记录 - 从单点故障到双实例自愈体系

Lossless Claw:无损上下文管理插件分析报告

[Hello-Agents] Day 2: 第一章 初识智能体