前言¶
做 Agent 时,常见做法是往上下文里堆系统提示、工具定义、检索结果和对话历史,指望「窗口够大就能记住一切」。实际表现往往是:长会话后半段开始跑偏、关键约束被忽略、工具输出把有效指令挤到边缘。问题往往不在 prompt 写得不够长,而在没弄清「上下文」在推理时到底包含什么、注意力如何分配、以及为什么质量比数量更重要。
下面介绍仓库 Agent Skills for Context Engineering 中的 context-fundamentals Skill。它不负责具体调参或压缩实现,而是建立一套可复用的概念框架,适合作为读同系列其他 Skill 之前的开篇。
这是什么¶
context-fundamentals 是面向概念解释与背景阅读的 Agent Skill,用 SKILL.md 描述能力边界与触发条件。
维护方在 Skill 元数据中标注为 Agent Skills for Context Engineering Contributors;Skill 归属开源合集 muratcankoylan/Agent-Skills-for-Context-Engineering,官方路径为:
https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/context-fundamentals
它要解决的问题可以概括为两点:
- 定义 context:推理时刻模型可见的完整状态,包括 system instructions、tool definitions、retrieved documents、message history、tool outputs。
- 定义 context engineering:在有限注意力预算下,筛选「最小的高信号 token 集合」,提高期望行为出现的概率。
同合集里的 context-degradation、context-optimization、context-compression 等负责落地操作;本 Skill 只提供理解这些决策所需的心智模型,并把运维类工作明确路由到对应 Skill。
核心功能¶
以下内容均来自官方 SKILL.md 与合集 README,仅列已写明的能力。
何时应激活¶
适合在以下概念性工作中启用:
- 解释 context 是什么,以及 attention mechanics 如何约束 Agent 行为。
- 新成员入职,需要先建立心智模型再接触运维类 Skill。
- 从第一性原理推演上下文相关设计(约束意味着什么、权衡为何存在),再选具体手段。
- 撰写或评审文档,需要把操作指南锚定在底层机制上。
不应用本 Skill 替代运维工作,例如:
| 任务类型 | 应路由到的 Skill |
|---|---|
| lost-in-middle、context poisoning、注意力失败诊断 | context-degradation |
| masking、partitioning、prefix caching、预算控制 | context-optimization |
| 长会话压缩与交接摘要 | context-compression |
| 大工具输出卸载、持久 scratchpad | filesystem-context |
| LLM 项目形态与流水线设计 | project-development |
核心概念:注意力预算与 U 型曲线¶
官方建议把 context 当作有限的注意力预算,而不是无限存储桶。每增加一个 token 都会参与竞争,且推理过程中预算无法「中途充值」。工程目标是在三类约束下最大化「单位 token 效用」:
- 硬性的 token 上限;
- 低于标称窗口的有效容量上限;
- U 型注意力曲线:长上下文评测中,中间位置的信息往往比首尾更难被可靠召回。
组装 context 时,官方给出四条原则:
- Informativity over exhaustiveness — 只放与当前决策相关的内容,其余按需检索。
- Position-aware placement — 关键约束放在上下文首尾。
- Progressive disclosure — 启动时只加载 Skill 名称与摘要,任务匹配后再加载全文。
- Iterative curation — 每次向模型传内容时持续裁剪,而非一次性写完 prompt。
上下文解剖(Anatomy of Context)¶
Skill 按组件拆解典型 Agent 上下文,并给出设计要点(节选):
- System Prompts:用 XML 标签或 Markdown 标题分区(背景、指令、工具说明、输出格式);关键约束放在首尾;控制「指令高度」,避免过细 brittle 或过粗模糊;从最小集开始,按失败模式迭代补充。
- Tool Definitions:描述需回答三件事——做什么、何时用、返回什么;工具集保持精简,JSON 序列化后 schema 通常比纯文本描述膨胀约 2–3 倍。
- Retrieved Documents:维护轻量标识(路径、查询、链接),按需 JIT 加载;分块沿语义边界切分。
- Message History:承担进度与状态 scratchpad;长任务中需监控占比,用摘要或引用替换陈旧 tool 输出。
- Tool Outputs:在 Agent 轨迹中常占大头;处理完后可用 observation masking 换成紧凑引用。
上下文窗口与注意力机制¶
- Attention Budget:对 n 个 token,注意力机制涉及 n² 量级的成对关系;上下文变长时表现是梯度式退化,而非硬截断。
- Position Encoding Limits:位置编码外推可拉长序列,但远距离检索与推理精度可能下降。
- Context Quality Versus Quantity:拒绝「窗口越大越好」;对每条 context 做信号密度检验——删掉它是否仍会改变输出。
官方 Guidelines 还提到:开发过程中监控 context 占用,在约 70–80% 利用率时考虑触发 compaction(具体策略见 context-compression / context-optimization)。
示例与延伸阅读¶
Skill 内带可复用的结构示例,例如用分区标签组织 system prompt(见下文「典型用法」)。同目录下 references/context-components.md 供调试具体组件时查阅;合集 README 将本 Skill 列为 Foundational Skills 之首。
安装与启用¶
本 Skill 遵循 Agent Skills 目录规范:每个 Skill 是一个文件夹(内含 SKILL.md),不能 flatten 成单个 .md 文件,否则会破坏 references/ 等相对路径。
Claude Code(插件市场)¶
合集作为 Claude Code Plugin Marketplace 发布。官方步骤:
Step 1:注册 marketplace
/plugin marketplace add muratcankoylan/Agent-Skills-for-Context-Engineering
Step 2:安装插件
直接安装:
/plugin install context-engineering@context-engineering-marketplace
也可在 UI 中选择 context-engineering-marketplace → context-engineering → Install now。安装后 Skill 会根据任务上下文自动激活。
Cursor¶
官方推荐两种方式:
- 从 Cursor Plugin Directory 的 context-engineering 条目 安装;或 clone 仓库后将 Cursor 指向插件根目录。
- Cursor 读取
.plugin/plugin.json,通过 Open Plugins manifest 发现仓库根目录下的skills/。
仅安装 context-fundamentals 到项目(需先取得仓库中的 skills/context-fundamentals 目录,例如下载或 clone 后复制,用户环境禁止在本介绍中执行 clone):
mkdir -p .cursor/skills
cp -R skills/context-fundamentals .cursor/skills/
说明:官方明确不要依赖仓库 symlink;Windows 与插件打包下易失效。
Codex / 其他 Open Plugins 宿主¶
- 将仓库作为插件目录添加,宿主读取
.plugin/plugin.json发现skills/下各 Skill。 - 项目级手动安装示例:
mkdir -p .codex/skills
cp -R skills/context-fundamentals .codex/skills/
通用 Agent Skills 路径还可使用 .agents/skills/(见合集 README)。
Claude Code 项目级目录为 .claude/skills/,布局与 Cursor 相同。
典型用法¶
1. 按官方建议的阅读顺序入门¶
新贡献者可先读本 Skill,再读 context-degradation,再按项目需要选 context-optimization、context-compression、filesystem-context、memory-systems 等。Skill 原文指出:跳过概念层容易「只会手法不懂原因」;跳过运维 Skill 则难以对症选型。
2. 用分区 system prompt 落实「首尾强注意力」¶
官方 Example 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>
<OUTPUT_DESCRIPTION>
Provide code blocks with syntax highlighting.
Explain non-obvious decisions in comments.
</OUTPUT_DESCRIPTION>
3. 概念问题与运维问题分开问¶
例如「要不要总结长会话」可拆成两层:本 Skill 回答为何需要总结(预算有限、U 型曲线、信号密度);如何压缩、阈值设多少交给 context-compression。
向 Agent 提问时,可显式说明需要「上下文工程基础概念」或引用 Skill 名 context-fundamentals,以便宿主按 description 路由(Claude Code / Cursor 插件模式下多为自动匹配)。
适用场景与注意¶
适合谁
- 设计或评审 Agent 架构、工具面、RAG 与历史管理策略的工程师。
- 要写内部文档、做 onboarding,需要统一「context / attention budget」术语的团队。
- 计划系统阅读 Context Engineering _SKILL 合集,希望第一篇建立共同语言的人。
限制与常见坑(来自官方 Gotchas,节选)
- 标称 context window ≠ 有效容量;复杂检索与推理任务上应先用自有 workload 做退化测试。
- 用「约 4 字符 / token」估算英文会低估代码、URL 与非英文;预算敏感时应使用提供方 tokenizer。
- 工具 schema 序列化后的 token 开销常被低估;十多个中等 schema 可能在首条用户消息前就占数千 token。
- Agent 循环中 message history 会静默膨胀;宜设历史 token 上限并主动 compaction。
- 安全约束、输出格式等不要放在长 system prompt 中间;U 型曲线下中部召回明显弱于首尾。
- Progressive disclosure 若「稍有相关就全量加载」,会重现 context stuffing。
本 Skill 不替代压测、压缩实现或故障排查;那些工作应切换到上表中的专项 Skill。
结尾¶
context-fundamentals 把上下文窗口拆成可操作的组件,用注意力预算与 U 型曲线解释「为什么塞满不等于更好」,并给出与合集其他 Skill 清晰的分工。若你正在搭建或优化 Agent,建议先过一遍这套概念,再进入 context-degradation 与 context-optimization 等实战篇。
官方地址:
https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/context-fundamentals
合集仓库:
https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering