上下文工程(Context Engineering)
上下文工程为 LLM 任务筛选最小化的高信号 token 集合。目标:在最小化 token 使用量的同时,最大化推理质量。
何时激活
- 设计/调试 Agent 系统
- 上下文限制影响性能
- 优化成本/延迟
- 构建多 Agent 协调
- 实现记忆系统
- 评估 Agent 性能
- 开发 LLM 驱动的流水线
核心原则
- 上下文质量 > 数量 - 高信号 token 优于全面内容
- 注意力是有限的 - U 形曲线倾向于开头/结尾位置
- 渐进式披露 - 即时加载信息
- 隔离防止退化 - 在子 Agent 间分配工作
- 先衡量再优化 - 了解你的基准线
快速参考
| 主题 | 使用场景 | 参考文档 |
|---|---|---|
| 基础概念 | 理解上下文结构、注意力机制 | context-fundamentals.md |
| 退化问题 | 调试失败、中部信息丢失、中毒攻击 | context-degradation.md |
| 优化策略 | 压缩、遮蔽、缓存、分区 | context-optimization.md |
| 压缩技术 | 长会话、摘要策略 | context-compression.md |
| 记忆系统 | 跨会话持久化、知识图谱 | memory-systems.md |
| 多 Agent 模式 | 协调模式、上下文隔离 | multi-agent-patterns.md |
| 评估方法 | 测试 Agent、LLM-as-Judge、指标 | evaluation.md |
| 工具设计 | 工具整合、描述工程 | tool-design.md |
| 流水线 | 项目开发、批量处理 | project-development.md |
关键指标
- Token 利用率:70% 时警告,80% 时触发优化
- Token 方差:可解释 80% 的 Agent 性能差异
- 多 Agent 成本:约为单 Agent 基线的 15 倍
- 压缩目标:50-70% 缩减,<5% 质量损失
- 缓存命中目标:稳定工作负载 70%+
四桶策略
- 写入(Write):将上下文保存到外部(草稿本、文件)
- 选择(Select):仅拉取相关上下文(检索、过滤)
- 压缩(Compress):在保留信息的同时减少 token(摘要化)
- 隔离(Isolate):跨子 Agent 分割(分区)
反模式
- 全面上下文取代精选上下文
- 关键信息放在中间位置
- 达到限制前未设置压缩触发器
- 对可并行任务使用单个 Agent
- 工具缺乏清晰描述
指导方针
- 将关键信息放在上下文的开头/结尾
- 在 70-80% 利用率时实施压缩
- 使用子 Agent 进行上下文隔离,而非角色扮演
- 用四问框架设计工具(做什么、何时用、输入什么、返回什么)
- 针对 tokens-per-task 优化,而非 tokens-per-request
- 用基于探针的评估进行验证
- 在生产环境中监控 KV-cache 命中率
- 从最小化开始,仅在证明必要时增加复杂性
脚本
- context_analyzer.py - 上下文健康分析、退化检测
- compression_evaluator.py - 压缩质量评估