上下文工程
"上下文工程是一门将上下文窗口填充为下一步所需正确信息的精妙艺术与科学。" — Andrej Karpathy
DeepGraph
与NotebookLM + 播客深度解析聊天
综合课程构建中
上下文工程调查-1400篇研究论文综述
通过第一性原理和可视化,将上下文最新研究成果付诸实践 — 2025年7月,来自ICML、IBM、NeurIPS、OHBM等
"为GPT-4.1提供“认知工具”可将其在AIME2024上的pass@1性能从26.7%提升至43.3%,使其非常接近o1-preview的性能。" — IBM Zurich
Agent命令
支持 Claude Code | OpenCode | Amp | Kiro | Codex | Gemini CLI
上下文工程调查-1400篇研究论文综述 | 上下文腐烂 | IBM Zurich | 量子语义学 | 涌现符号学 ICML Princeton | MEM1 新加坡-MIT | LLM吸引子 上海AI | MemOS 上海 | 潜在推理 | 动态递归深度
一本前沿的、基于第一性原理的手册,旨在超越提示工程,进入更广泛的上下文设计、编排和优化领域。
提示工程 │ 上下文工程
↓ │ ↓
"你说了什么" │ "模型看到的其他所有信息"
(单条指令) │ (示例、记忆、检索、
│ 工具、状态、控制流)
上下文工程定义
上下文不仅仅是用发送给LLM的单个提示。上下文是在推理时提供给LLM的完整信息负载,包含模型为合理完成给定任务所需的所有结构化信息组件。
╭─────────────────────────────────────────────────────────────╮
│ 上下文工程精通课程 │
│ 从零到前沿 │
╰─────────────────────────────────────────────────────────────╯
▲
│
数学基础
C = A(c₁, c₂, ..., cₙ)
│
▼
┌─────────────┬──────────────┬──────────────┬─────────────────┐
│ 基础 │ 系统实现 │ 集成 │ 前沿 │
│ (第1-4周) │ (第5-8周) │ (第9-10周) │ (第11-12周) │
└─────┬───────┴──────┬───────┴──────┬───────┴─────────┬───────┘
│ │ │ │
▼ ▼ ▼ ▼
┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 数学模型 │ │ RAG系统 │ │ 多Agent │ │ 元递归 │
│ 组件 │ │ 记忆架构 │ │ 编排 │ │ 量子语义学 │
│ 处理 │ │ 工具集成 │ │ 场论 │ │ 自我改进 │
│ 管理 │ │ Agent系统 │ │ 评估 │ │ 协作 │
└─────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
为什么存在这个仓库
"意义不是语义表达的固有静态属性,而是一种涌现现象" — Agostino等人 — 2025年7月,印第安纳大学
提示工程吸引了所有注意力,但现在我们应为接下来发生的事情感到兴奋。一旦掌握了提示,真正的力量来自于工程化围绕这些提示的整个上下文窗口。可以说,是引导思想。
本仓库提供了一种渐进的、基于第一性原理的上下文工程方法,以生物学隐喻为基础构建:
原子 → 分子 → 细胞 → 器官 → 神经系统 → 神经与语义场论
│ │ │ │ │ │
单个 少量 记忆 + 多Agent 认知工具 + 上下文 = 场 +
提示 样本 Agent 运营系统 持续性与共振
"抽象是泛化的代价" — Grant Sanderson (3Blue1Brown)
https://github.com/user-attachments/assets/9f046259-e5ec-4160-8ed0-41a608d8adf3
graph TD
classDef basic fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#01579b
classDef intermediate fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#2e7d32
classDef advanced fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#e65100
classDef meta fill:#f3e5f5,stroke:#6a1b9a,stroke-width:2px,color:#6a1b9a
subgraph Basic["级别 1: 基础上下文工程"]
A[原子]
B[分子]
C[细胞]
D[器官]
end
subgraph Field["级别 2: 场论"]
E[神经系统]
F[神经场]
end
subgraph Protocol["级别 3: 协议系统"]
G[协议壳层]
H[统一系统]
end
subgraph Meta["级别 4: 元递归"]
I[元递归框架]
end
%% 连接
A --> B
B --> C
C --> D
D --> E
E --> F
F --> G
G --> H
H --> I
%% 每一级的描述
A1["单条指令<br>简单约束<br>基本提示"] --> A
B1["示例对<br>少量样本模式<br>演示集"] --> B
C1["持久记忆<br>状态管理<br>上下文窗口"] --> C
D1["多步骤流程<br>专家<br>系统编排"] --> D
E1["推理框架<br>验证工具<br>认知模式"] --> E
F1["连续意义<br>吸引子与共振<br>符号残差"] --> F
G1["结构化模板<br>场操作<br>涌现协议"] --> G
H1["协议集成<br>系统级涌现<br>自我维护"] --> H
I1["自我反思<br>递归改进<br>可解释的演化"] --> I
%% 现实世界类比
A2["如: 基本提示<br>工程"] -.-> A
B2["如: 少量样本<br>学习"] -.-> B
C2["如: 对话式<br>聊天机器人"] -.-> C
D2["如: 多Agent<br>系统"] -.-> D
E2["如: ReAct<br>思维链"] -.-> E
F2["如: 语义<br>场论"] -.-> F
G2["如: 协议<br>编排"] -.-> G
H2["如: 自组织<br>系统"] -.-> H
I2["如: 自我改进<br>智能体"] -.-> I
%% 应用类别
class A,B,C,D,A1,A2,B1,B2,C1,C2,D1,D2 basic
class E,F,E1,E2,F1,F2 intermediate
class G,H,G1,G2,H1,H2 advanced
class I,I1,I2 meta
快速开始
-
阅读
00_foundations/01_atoms_prompting.md(5分钟)
理解为什么仅靠提示往往表现不佳 -
运行
10_guides_zero_to_hero/01_min_prompt.py(Jupyter Notebook风格) 使用最小工作示例进行实验 -
探索
20_templates/minimal_context.yaml
将模板复制/粘贴到你自己的项目中 -
研究
30_examples/00_toy_chatbot/
查看带有上下文管理的完整实现
学习路径
┌─────────────────┐ ┌──────────────────┐ ┌────────────────┐
│ 00_foundations/ │ │ 10_guides_zero_ │ │ 20_templates/ │
│ │────▶│ to_one/ │────▶│ │
│ 理论与核心 │ │ 动手实践 │ │ 可复制 │
│ 概念 │ │ 逐步演练 │ │ 代码片段 │
└─────────────────┘ └──────────────────┘ └────────────────┘
│ │
│ │
▼ ▼
┌─────────────────┐ ┌────────────────┐
│ 40_reference/ │◀───────────────────────────▶│ 30_examples/ │
│ │ │ │
│ 深度解析与 │ │ 真实项目, │
│ 评估手册 │ │ 逐步复杂 │
└─────────────────┘ └────────────────┘
▲ └────────────────┘
│ ▲
│ │
└────────────────────┐ ┌───────────┘
▼ ▼
┌─────────────────────┐
│ 50_contrib/ │
│ │
│ 社区贡献 │
└─────────────────────┘
你将学到什么
| 概念 | 是什么 | 为什么重要 |
|---|---|---|
| Token预算 | 优化上下文中的每一个token | 更多token = 更多$和更慢响应 |
| 少量样本学习 | 通过展示示例来教学 | 通常比仅靠解释更有效 |
| 记忆系统 | 跨轮次持久化信息 | 实现有状态、连贯的交互 |
| 检索增强 | 查找并注入相关文档 | 将响应基于事实,减少幻觉 |
| 控制流 | 将复杂任务分解为步骤 | 用更简单的提示解决更困难的问题 |
| 上下文修剪 | 移除无关信息 | 只保留性能所需内容 |
| 评估指标 | 衡量上下文有效性 | 迭代优化token使用与质量 |
| 认知工具与提示编程 | 学习构建自定义工具和模板 | 提示编程为上下文工程启用新层次 |
| 神经场论 | 将上下文视为神经场 | 将上下文建模为动态神经场,实现迭代上下文更新 |
| 符号机制 | 符号架构实现高阶推理 | 更智能的系统 = 更少的工作 |
| 量子语义学 | 意义依赖于观察者 | 设计利用叠加技术的上下文系统 |
Karpathy + 3Blue1Brown 启发的风格
适用于所有经验水平的学习者
- 第一性原理 – 从基础上下文开始
- 迭代添加 – 仅添加模型明显缺少的内容
- 衡量一切 – token成本、延迟、质量评分
- 无情删除 – 修剪胜于填充
- 代码 > 幻灯片 – 每个概念都有一个可运行的单元格
- 可视化一切 — 每个概念都通过ASCII和符号图表进行可视化
研究证据
记忆 + 推理
MEM1: 学习协同记忆与推理以实现高效长时程Agent - 新加坡-MIT 2025年6月
"我们的结果证明了推理驱动的记忆整合作为训练长时程交互式Agent的现有解决方案的可扩展替代方案的潜力,其中效率和性能都得到了优化。" — 新加坡-MIT
-
MEM1训练AI Agent只保留重要的内容——每一步都融合记忆和推理——所以无论任务多长,它们都不会不堪重负。
-
不堆积无尽的上下文,MEM1在动态中构建一个压缩的“工作记忆”,只记忆相关的过去。
-
在现实世界的任务中,MEM1的表现优于标准方法,展示了如何用更少的token完成更长、更复杂的任务;使长时程推理变得实用。
-
关键在于“推理驱动的记忆整合”:Agent学习根据当前推理动态压缩和合并记忆,而不是被动地将过去的观察转储到提示中。
LLM吸引子:揭示大型语言模型中的收敛动力学 - 上海AI实验室 & 复旦大学有效计算研究中心 2025年2月
关键见解: LLM在其潜在空间内具有稳定的“吸引子状态”。通过推动模型朝向这些吸引子,上下文工程可以提高推理的可靠性和一致性。
-
LLM吸引子通过显示在上下文中存在稳定、可预测的推理模式,为上下文工程提供了理论基础——类似于动力系统中的吸引子。
-
通过使用特定的提示结构和上下文模式,实践者可以更可靠地将模型朝向这些吸引子引导,从而减少输出中的随机变异性。
-
理解这些吸引子为“上下文稳定策略”提供了信息:上下文工程模式,减少LLM推理中的波动,确保更一致的质量,特别是在长时程或高风险的Agent应用中。
-
吸引子还解释了为什么某些上下文配置产生可重复的结果。在系统化的上下文中,模型会收敛到稳定状态。
抽象-泛化权衡 - 3Blue1Brown,IBM Zurich
启示: 比较参数化和非参数化(例如,基于检索的)泛化的一个框架,以及抽象如何影响泛化。
IBM Zurich: 认知工具 - 2025年6月
关键见解: “向GPT-4.1提供“认知工具”可将其在AIME2024上的pass@1性能从26.7%提升至43.3%,使其非常接近o1-preview的性能。”
认知工具→在推理时可用的程序和数据结构——扩展了模型的思维过程。
-
认知工具是结构化提示模式(例如,模板、代码解释器)和推理时可用操作的广义框架,作为模型的“外部认知”。
-
RAG(检索增强生成)是将非参数化上下文合并到参数化模型中的一个特定认知工具实例。
-
只需提供正确的工具,模型的表现就能显著提升——有时足以弥合与比其大得多的模型之间的性能差距。
-
上下文工程的实践者应优先开发可复用的认知工具,而不是依赖模型能力来内部推导解决方案——将其视为为模型构建升级的“工作台”。
上下文腐烂 - Chroma
关键见解: 对于上下文工程来说,什么从上下文中消失与什么进入上下文同样重要。
-
上下文腐烂 指的是随着新信息的积累,模型中先前上下文的相关性逐步衰减。
-
即使是精心选择的上下文,如果任其扩展而不进行管理,也会“腐烂”——变得稀释、冗余或无关。
-
对抗上下文腐烂的策略包括:优先级排序、总结、过期和选择性检索——而不是盲目地将所有内容塞入上下文。
-
有效的上下文工程需要持续的“上下文卫生”——一种积极管理现实世界系统(如Agent循环)中上下文生命周期的系统方法。
MemOS:LLM Agent的混合记忆系统 - 上海AI Alliance & 复旦大学
“MemOS将长期记忆构建为长程时间知识图谱,使用图网络进行泛化,以及使用神经叙事片段进行回忆。”
引用与致谢
@misc{agostino2025quantum,
title={Quantum Semantics: Meaning as an Observer-Dependent Phenomenon in Large Language Models},
author={Agostino, Giorgio and others},
year={2025},
eprint={2506.10077},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
@misc{ContextEngineeringSurvey2025,
title={A Survey of Context Engineering: A Systematic Review of Context in Large Language Models at Inference Time},
author={Agostino, Giorgio and others},
year={2025},
eprint={2507.13334},
archivePrefix={arXiv},
primaryClass={cs.CL}
}