Context Engineering

Context Engineering 是系统地选择、组织、压缩和注入上下文,让模型在正确材料上完成任务。

1. 与 Prompt Engineering 的区别

Prompt Engineering 关注“怎么表达任务”。

Context Engineering 关注“模型完成任务需要哪些信息,以及这些信息如何稳定进入上下文窗口”。

可以理解为:

  • Prompt:一次输入
  • Context:任务所需的信息环境
  • Context Engineering:管理信息环境的方法

2. 上下文包括什么

  • 用户目标
  • 当前任务状态
  • 相关代码或文档
  • 业务规则
  • 工具说明
  • 历史决策
  • 用户偏好
  • 验收标准
  • 错误和运行结果

3. 核心问题

3.1 选什么

哪些信息对当前任务真正相关。

3.2 放多少

上下文太少会缺信息,太多会引入噪声和成本。

3.3 怎么放

不同信息需要不同结构:

  • 任务目标放前面
  • 约束单独列出
  • 代码保持原始格式
  • 检索材料附来源
  • 历史信息只保留决策摘要

3.4 何时更新

长任务中上下文会过期,需要随着中间结果更新。

4. 常见策略

  • 文件选择
  • 文档检索
  • 摘要压缩
  • metadata 过滤
  • 记忆分层
  • 上下文模板
  • 中间产物保留
  • 过期信息淘汰

5. 失败模式

  • 把无关材料塞满上下文窗口
  • 忘记关键约束
  • 历史摘要丢失决策理由
  • 检索结果没有来源
  • 工具返回格式不稳定
  • 同一任务中上下文前后矛盾

6. 与 RAG 的关系

RAG 是 Context Engineering 的一种重要实现方式。

RAG 解决的是从外部知识库按需取上下文;Context Engineering 还包括任务状态、工具信息、用户偏好、运行结果等更广的上下文治理。

7. 一句话总结

Context Engineering 的重点不是让 prompt 更长,而是让模型每一步都拿到足够、准确、低噪声的上下文。