关于 context-engineering
context-engineering 是用于管理 Agent 上下文窗口信息的 Agent Skills™ 技能,涵盖相关性评分、压缩、排序、Token 预算和渐进式披露,适用于处理长对话或大型代码库的 Agent。
主要功能
- 01上下文相关性评分
- 02压缩与优先级排序
- 03Token 预算分配
- 04渐进式披露
- 05回收不再需要的上下文
适用场景
- 01控制生产工作负载的 Token 用量
- 02在工作流步骤间保留必要状态
- 03处理大型代码库
- 04减少长对话中的上下文稀释
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ itallstartedwithaidea/ agent-skills --skill context-engineering安装后在 Claude Code 中输入/context-engineering确认已加载。
详细介绍
上下文工程
Agent Skills™ 的一部分,由 googleadsagent.ai™ 提供
描述
上下文工程是一门在尽量减少 Token 消耗的同时,最大限度提升 Agent 输出质量的学科。在每个 Token 都会带来成本和延迟影响的世界里,能否精准筛选进入 Agent 上下文窗口的内容,决定了系统是达到生产级标准,还是昂贵的玩具。这项技能将 googleadsagent.ai™ 平台开创的技术系统化。在该平台上,Buddy™ 通常在 200k Token 的窗口内运行,同时保持领域专家级的准确性。
核心洞见是:上下文并非只是“发送给模型的内容”,而是工作记忆,必须像管理其他系统资源一样,以同等严谨的方式进行工程化处理。优化信息密度、采用结构化加载顺序,以及使用渐进式披露模式,可确保 Agent 在恰当的时刻获得恰当的信息。上下文设计不佳会导致幻觉、指令偏移和成本激增。
这项技能教会 Agent 将上下文视为有限且需要管理的资源:对其进行衡量、压缩、排序,并回收利用。这里的技术适用于 Claude Code、Cursor、Codex 和 Gemini 等框架。
适用场景
- 对话越长,Agent 的回复质量越差
- 生产工作负载的 Token 成本超出预算阈值
- Agent 需要对大型代码库进行推理,同时保持专注
- 需要注入领域知识,但又不能耗尽整个上下文窗口
- 多步骤工作流要求在步骤之间仅传递必要状态
- Agent 因上下文窗口饱和或信息稀释而产生幻觉
工作原理
graph TD
A[Raw Context Sources] --> B[Relevance Scoring]
B --> C{Score > Threshold?}
C -->|Yes| D[Compression Engine]
C -->|No| E[Context Archive]
D --> F[Priority Queue]
F --> G[Token Budget Allocator]
G --> H[Context Window Assembly]
H --> I[Agent Execution]
I --> J[Context Reclamation]
J --> K{Session Active?}
K -->|Yes| B
K -->|No| L[Session Summary → Memory]
上下文生命周期从原始来源开始——文件、先前的消息、工具输出和知识库——这些内容会经过相关性评分。低于阈值的内容会被归档,而非丢弃;如有需要,仍可检索。高相关性内容会进入压缩引擎,在保留语义内容的同时减少 Token 占用。优先队列会根据压缩内容的新近度、重要性和任务相关性进行排序。Token 预算分配器会强制执行硬性限制,确保组装后的上下文窗口不会超过目标预算。Agent 执行完毕后,上下文回收流程会识别后续轮次不再需要的内容。
实现
Token 预算控制:
class ContextBudget {
constructor(maxTokens = 180000) {
this.maxTokens = maxTokens;
this.reservedForOutput = 20000;
this.reservedForSystem = 5000;
this.available = maxTokens - this.reservedForOutput - this.reservedForSystem;
this.allocations = new Map();
}
allocate(category, tokens) {
const currentUsage = this.currentUsage();
if (currentUsage + tokens > this.available) {
return this.evictAndAllocate(category, tokens);
}
this.allocations.set(category, (this.allocations.get(category) || 0) + tokens);
return true;
}
evictAndAllocate(category, needed) {
const sorted = [...this.allocations.entries()]
.sort((a, b) => a[1] - b[1]);
for (const [cat, tokens] of sorted) {
if (cat === category) continue;
this.allocations.delete(cat);
if (this.available - this.currentUsage() >= needed) break;
}
return this.allocate(category, needed);
}
currentUsage() {
return [...this.allocations.values()].reduce((sum, t) => sum + t, 0);
}
}
渐进式披露模式:
function buildProgressiveContext(task, depth = 0) {
const layers = [
{ level: 0, content: getTaskSummary(task), tokens: 200 },
{ level: 1, content: getRelevantFiles(task), tokens: 2000 },
{ level: 2, content: getFileContents(task), tokens: 10000 },
{ level: 3, content: getFullDependencyTree(task), tokens: 40000 },
];
return layers
.filter(layer => layer.level <= depth)
.map(layer => layer.content);
}
通过摘要压缩上下文:
def compress_context(messages, budget_tokens):
"""Compress conversation history to fit within token budget."""
total = count_tokens(messages)
if total <= budget_tokens:
return messages
system_msgs = [m for m in messages if m["role"] == "system"]
recent = messages[-4:]
middle = messages[len(system_msgs):-4]
summary = summarize_messages(middle)
compressed = system_msgs + [{"role": "system", "content": f"Prior conversation summary: {summary}"}] + recent
if count_tokens(compressed) > budget_tokens:
return system_msgs + recent[-2:]
return compressed
最佳实践
- 先衡量,再优化 — 在应用压缩技术之前,按类别(系统提示词、对话历史、工具输出、知识)记录 Token 用量。
- 为输出预留空间 — 始终为模型回复预留上下文窗口的 15-20%;将窗口用满必然会导致截断。
- 优先使用结构化格式,而非叙述性文字 — 与文字描述相比,JSON、YAML 和表格格式的单位 Token 信息密度更高。
- 采用渐进式披露 — 从摘要开始,按需加载详细内容;大多数 Agent 轮次只需使用可用上下文的一小部分。
- 实施上下文回收 — 每次工具调用后,评估是否仍需保留完整的工具输出,或能否用摘要替代。
- 区分热上下文和冷上下文 — 每轮都保留经常引用的内容(系统指令、当前任务);将不常访问的内容归档,以便检索。
- 为上下文架构版本化 — 随着提示词和知识库不断演进,记录不同上下文配置对应的质量结果。
- 在临界点测试 — 在上下文利用率达到 50%、80% 和 95% 时验证 Agent 的行为,以了解性能退化曲线。
平台兼容性
| 功能 | Claude Code | Cursor | Codex | Gemini CLI |
|---|---|---|---|---|
| 上下文预算管理 | ✅ 完整支持 | ✅ 完整支持 | ✅ 完整支持 | ✅ 完整支持 |
| 渐进式披露 | ✅ 原生支持 | ✅ 通过技能实现 | ✅ 通过提示词实现 | ✅ 通过提示词实现 |
| 令牌计数 | ✅ Anthropic API | ✅ 通过扩展实现 | ✅ tiktoken | ✅ Vertex API |
| 上下文压缩 | ✅ 完整支持 | ✅ 完整支持 | ✅ 完整支持 | ✅ 完整支持 |
| 会话摘要 | ✅ 钩子 | ✅ 规则 | ✅ 指令 | ✅ 系统提示词 |
Mythos Preview 参考
在 Mythos Preview 评估中,Anthropic 会根据每个文件包含有价值且与漏洞相关逻辑的可能性,为其评分(1–5 分)(例如,仅包含常量的文件与网络解析或身份验证文件的对比)。随后,他们会优先处理评分最高的文件,而不是平均地将预算耗费在每条路径上。
对于任何大型语料库,都可以采用相同的思路:预先评估可能的信息密度,按降序排序,然后按此顺序加载内容或分配任务,让上下文窗口和 Agent 时间优先用于最有潜力的来源。来源:Mythos Preview。
相关技能
- 认知支架 - 根据注意力合理安排内容位置,最大限度地发挥上下文预算中每个令牌的价值
- 提示词架构 - 分层提示词设计,与渐进式披露和令牌预算分配相结合
- Anthropic 工具精通 - 工具结果管理,需要采用感知上下文的缓存和压缩策略
关键词
上下文工程、令牌优化、上下文窗口、信息密度、渐进式披露、上下文压缩、工作记忆、令牌预算、上下文生命周期、Agent 技能
© 2026 googleadsagent.ai™ | Agent Skills™ | MIT 许可证