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

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

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

小夜