上下文工程基础
上下文是语言模型在推理时可用的完整状态。它包括模型在生成响应时可以关注的所有内容:系统指令、工具定义、检索文档、消息历史和工具输出。理解上下文基础是进行有效上下文工程的先决条件。
何时使用
在以下情况下激活此技能:
- 设计新的智能体系统或修改现有架构
- 调试可能与上下文相关的意外智能体行为
- 优化上下文使用以降低 token 成本或提升性能
- 帮助新团队成员了解上下文工程概念
- 审查与上下文相关的设计决策
核心概念
上下文由多个不同的组件构成,每个组件具有不同的特征和约束。注意力机制创建了一个有限预算,约束着有效的上下文使用。渐进式披露通过仅在需要时加载信息来管理这一约束。工程学科的核心在于策划能够实现预期结果的最小高信号 token 集合。
详细主题
上下文的剖析
系统提示词 系统提示词确立智能体的核心身份、约束和行为准则。它们在会话开始时加载一次,通常在整个对话过程中持续存在。系统提示词应当极其清晰,使用适合智能体的简洁直接语言。
合适的抽象层次需要平衡两种失败模式。一个极端是工程师硬编码复杂脆弱的逻辑,导致脆弱性和维护负担。另一个极端是工程师提供模糊的高层指导,无法为期望的输出提供具体信号,或错误地假设共享上下文。最优层次需要取得平衡:足够具体以有效引导行为,同时足够灵活以提供强有力的启发式规则。
使用 XML 标签或 Markdown 标题将提示词组织成不同的部分,以划分背景信息、指令、工具指导和输出描述。随着模型能力增强,具体格式的重要性降低,但结构清晰性仍然有价值。
工具定义 工具定义指定智能体可以执行的操作。每个工具包括名称、描述、参数和返回格式。工具定义在序列化后位于上下文的前部,通常在系统提示词之前或之后。
工具描述共同引导智能体行为。糟糕的描述迫使智能体猜测;优化的描述包含使用上下文、示例和默认值。合并原则指出,如果人类工程师无法明确判断在特定情况下应使用哪个工具,就不能期望智能体做得更好。
检索文档 检索文档提供领域特定知识、参考资料或任务相关信息。智能体使用检索增强生成在运行时将相关文档拉入上下文,而非预加载所有可能的信息。
即时方法维护轻量级标识符(文件路径、存储的查询、网页链接),并使用这些引用动态加载数据到上下文中。这反映了人类认知:我们通常不会记忆整个信息语料库,而是使用外部组织和索引系统按需检索相关信息。
消息历史 消息历史包含用户与智能体之间的对话,包括之前的查询、响应和推理。对于长时间运行的任务,消息历史可能增长到主导上下文使用。
消息历史充当便笺式记忆,智能体在其中跟踪进度、维护任务状态并跨轮次保留推理。有效管理消息历史对于长周期任务完成至关重要。
工具输出 工具输出是智能体操作的结果:文件内容、搜索结果、命令执行输出、API 响应和类似数据。研究表明,工具输出占据了典型智能体轨迹中大部分 token,观察结果(工具输出)可达总上下文使用量的 83.9%。
无论工具输出是否与当前决策相关,它们都会消耗上下文。这为观察掩码、压缩和选择性工具结果保留等策略创造了压力。
上下文窗口与注意力机制
注意力预算约束 语言模型通过注意力机制处理 token,该机制在上下文中的所有 token 之间创建成对关系。对于 n 个 token,这会创建 n² 个需要计算和存储的关系。随着上下文长度增加,模型捕获这些关系的能力被拉伸。
模型从以较短序列为主的训练数据分布中发展出注意力模式。这意味着模型对上下文范围的依赖关系经验和专用参数较少。结果是一个随着上下文增长而耗尽的"注意力预算"。
位置编码与上下文扩展 位置编码插值允许模型通过将其适配到原始训练的较小上下文来处理更长的序列。然而,这种适配会引入 token 位置理解的退化。模型在较长上下文中仍保持较高能力,但与较短上下文上的性能相比,在信息检索和长程推理方面显示出精度降低。
渐进式披露原则 渐进式披露通过仅在需要时加载信息来高效管理上下文。启动时,智能体仅加载技能名称和描述——足以知道技能何时可能相关。完整内容仅在激活技能执行特定任务时加载。
这种方法保持智能体快速响应,同时使其能够按需访问更多上下文。该原则适用于多个层次:技能选择、文档加载,甚至工具结果检索。
上下文质量与上下文数量
更大的上下文窗口能解决记忆问题的假设已被实证推翻。上下文工程意味着找到最小可能的高信号 token 集合,以最大化期望结果的可能性。
多个因素造成上下文效率压力。处理成本随上下文长度不成比例增长——不仅是 token 翻倍成本翻倍,时间和计算资源呈指数级增长。即使窗口技术上支持更多 token,模型性能在超过特定上下文长度后也会下降。即使有前缀缓存,长输入仍然昂贵。
指导原则是信息性而非穷尽性。包含对当前决策重要的内容,排除不重要的,并设计可按需访问额外信息的系统。
上下文作为有限资源
必须将上下文视为具有边际收益递减的有限资源。像工作记忆有限的人类一样,语言模型在解析大量上下文时会消耗注意力预算。
引入的每个新 token 都会消耗一定量的预算。这产生了仔细策划可用 token 的需求。工程问题是在固有约束下优化效用。
上下文工程是迭代的,策划阶段发生在每次决定向模型传递什么内容时。这不是一次性的提示词编写练习,而是持续的上下文管理纪律。
实践指导
基于文件系统的访问
具有文件系统访问权限的智能体可以自然地使用渐进式披露。将参考资料、文档和数据存储在外部。仅在使用标准文件系统操作需要时加载文件。这种模式避免了用可能不相关的信息填充上下文。
文件系统本身提供了智能体可以导航的结构。文件大小暗示复杂性;命名约定提示用途;时间戳作为相关性的代理。文件引用的元数据提供了有效优化行为的机制。
混合策略
最有效的智能体采用混合策略。预加载一些上下文以提高速度(如 CLAUDE.md 文件或项目规则),但启用自主探索以按需获取额外上下文。决策边界取决于任务特征和上下文动态。
对于动态内容较少的上下文,前期预加载更多内容是合理的。对于快速变化或高度特定的信息,即时加载可避免过时的上下文。
上下文预算
设计时要考虑明确的上下文预算。了解模型和任务的有效上下文限制。在开发过程中监控上下文使用。在适当的阈值实施压缩触发器。设计系统时假设上下文会退化,而非期望它不会。
有效的上下文预算需要理解不仅是原始 token 计数,还要理解注意力分布模式。上下文中间部分比开头和结尾获得更少的注意力。将关键信息放置在注意力优先的位置。
示例
示例 1:组织系统提示词
<BACKGROUND_INFORMATION>
You are a Python expert helping a development team.
Current project: Data processing pipeline in Python 3.9+
</BACKGROUND_INFORMATION>
<INSTRUCTIONS>
- Write clean, idiomatic Python code
- Include type hints for function signatures
- Add docstrings for public functions
- Follow PEP 8 style guidelines
</INSTRUCTIONS>
<TOOL_GUIDANCE>
Use bash for shell operations, python for code tasks.
File operations should use pathlib for cross-platform compatibility.
</TOOL_GUIDANCE>
<OUTPUT_DESCRIPTION>
Provide code blocks with syntax highlighting.
Explain non-obvious decisions in comments.
</OUTPUT_DESCRIPTION>
示例 2:渐进式文档加载
# Instead of loading all documentation at once:
# Step 1: Load summary
docs/api_summary.md # Lightweight overview
# Step 2: Load specific section as needed
docs/api/endpoints.md # Only when API calls needed
docs/api/authentication.md # Only when auth context needed
指南
- 将上下文视为具有边际收益递减的有限资源
- 将关键信息放置在注意力优先的位置(开头和结尾)
- 使用渐进式披露延迟加载直到需要时
- 使用清晰的分界组织系统提示词
- 在开发过程中监控上下文使用
- 在 70-80% 利用率时实施压缩触发器
- 为上下文退化做设计,而非期望避免它
- 优先选择较小的高信号上下文而非较大的低信号上下文
集成
此技能提供所有其他技能构建的基础上下文。应在探索以下内容之前首先学习:
- context-degradation - 理解上下文如何失效
- context-optimization - 扩展上下文容量的技术
- multi-agent-patterns - 上下文隔离如何实现多智能体系统
- tool-design - 工具定义如何与上下文交互
参考资料
内部参考:
- Context Components Reference - 详细技术参考
本集合中的相关技能:
- context-degradation - 理解上下文失效模式
- context-optimization - 高效上下文使用技术
外部资源:
- 关于 transformer 注意力机制的研究
- 来自领先 AI 实验室的生产工程指南
- 关于上下文窗口管理的框架文档
技能元数据
创建时间: 2025-12-20 最后更新: 2025-12-20 作者: Agent Skills for Context Engineering Contributors 版本: 1.0.0
限制
- 仅当任务明确符合上述描述的范围时使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少所需的输入、权限、安全边界或成功标准,请停止并请求澄清。