context-fundamentals:上下文工程的基础心智模型

前言

做 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

它要解决的问题可以概括为两点:

  1. 定义 context:推理时刻模型可见的完整状态,包括 system instructions、tool definitions、retrieved documents、message history、tool outputs。
  2. 定义 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 时,官方给出四条原则:

  1. Informativity over exhaustiveness — 只放与当前决策相关的内容,其余按需检索。
  2. Position-aware placement — 关键约束放在上下文首尾。
  3. Progressive disclosure — 启动时只加载 Skill 名称与摘要,任务匹配后再加载全文。
  4. 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

官方推荐两种方式:

  1. 从 Cursor Plugin Directory 的 context-engineering 条目 安装;或 clone 仓库后将 Cursor 指向插件根目录。
  2. 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

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜