上下文窗口是一个以 token 为单位的有限工作空间。你的指令、检索到的文档、工具输出和对话历史记录都会争夺空间。如果你的组织方式不合理,Claude 就会搞不清哪些信息是重要的。

当上下文管理不当,可能会遇到如下五种问题:

模式描述举例处理
错误残留早期错误、失败尝试、错误假设留在上下文,导致后续推理建立在错误的基础上AI 误判了项目结构,后续一直沿着这个误判回复/clear
规则冲突同时存在互相矛盾的信息 / 规则claude.md 说用 uv,readme 说用 pipenv,用户临时说用 poetry明确优先级:用户指令 > claude.md > readme > 注释
惯性延续旧任务的行为模式权重太高模型看到大量历史上下文一直在改 A,会认为现在大概率还是围绕 A,实际上任务可能已经变成 B不要让一个会话连续承载太多不同类型的任务
信息干扰上下文塞了太多无关工具、文档,模型不知道哪些和当前任务有关本次做 API 鉴权,但上下文里同时有 Docker 部署文档、数据采集脚本说明、前端组件规范,AI 可能误以为这次任务和 Docker、前端等有关,开始搜索不必要的文件,甚至调用不该用的工具skills 按需加载
费用模型按 token 阶梯收费0-32k: 2 元
32-64k: 8 元

六个支柱

上下文工程包含六个相互关联的组成部分

代理 (Agents)

每个 agent 都有干净、专注的上下文,主 agent 用来协调各个子 agent 的结果

  • 单个 agent: 研究、规划、构建、测试和部署支付系统
  • 多 agent:
    • 主 agent: 构建支付系统
    • 研究 agent: 收集需求
    • 后端 agent: 构建支付宝 SDK 集成
    • 前端 agent: 创建支付 UI

查询增强 (Query Augmentation)

用户的输入可能含糊不清,plan 可以在执行前对其进行优化

  • 用户输入: “处理支付 bug”
  • plan 优化:
    • 分析支付模块最新修改
    • 识别日志中的错误信息
    • 受影响的文件作用域
    • 生成修复测试用例

检索 (Retrieval)

从海量可能相关的信息中,挑出当前任务真正需要的那一小撮

例如你让 Claude Code 修复登录失败的问题,模型需要的不是整个项目,而是:

  • auth 相关文件
  • 最近修改过的登录逻辑
  • 错误日志
  • 登录接口约定
  • 项目里的错误处理规范
  • 测试规范

提示技巧 (Prompting Techniques)

模型上下文窗口变大 (1M),可以看到更多东西,但不代表:

  • 模型 “知道哪些最重要”
  • 模型 “知道哪些是规则,哪些是参考”
  • 模型 “知道冲突时该听谁的”
  • 模型 “知道按什么步骤处理”
  • 模型 “不会被无关内容干扰”
    信息塞进上下文不等于模型会用好,信息组织的方法、顺序、时机很重要

Prompting Techniques 本质上就是在给上下文加 “语义权重”,上下文里的信息可以分为几种类型:

目标:我要做什么
背景:为什么要做
证据:现在发生了什么
材料:相关代码 / 日志 / 文档
约束:什么不能做
流程:应该怎么做
验收:怎样算完成
输出:最后怎么汇报

如果不分层,所有内容混在一起,模型就要自己猜:

这句话是任务目标,还是背景?
这个规则是必须遵守,还是参考?
这个文档是最新的,还是历史遗留?
这个错误是主线,还是旁枝?

Prompting Techniques 的作用,就是减少这种猜测

记忆 (Memory)

将无状态的模型转变为能够在交互过程中保持上下文的系统

通过会话管理和不断完善的文档,你可以创建一个高度专属于你代码库的记忆层。随着时间推移,Claude 将逐渐精通你的特定代码库

工具 (Tools)

工具将理论推导与实际操作联系起来

读取、写入、bash 脚本等,以及用于外部集成的 MCP

一个完整示例

任务: 升级项目里的 SQLAlchemy 用法

完整链路如下:

  1. 查询增强 (Query Augmentation)
    把 “升级 SQLAlchemy” 细化成:
    • 检查当前版本
    • 找出 deprecated API
    • 查询官方迁移文档
    • 修改代码
    • 补测试
  2. 检索 (Retrieval)
    • 读取 pyproject.toml
    • grep SQLAlchemy 用法
    • 用 MCP / Context7 查 SQLAlchemy 文档
    • 找项目里的 repository 层规范
  3. 提示技巧 (Prompting Techniques)
    把材料组织成:
    • 当前版本
    • 目标版本
    • 受影响文件
    • 迁移规则
    • 禁止破坏的行为
    • 分步骤执行计划
  4. 工具 (Tools)
    • Read / Edit / Bash / pytest
  5. 记忆 (Memory)
    • 把迁移决策写回 docs 或 CLAUDE.md
  6. 代理 (Agents)
    • 一个 agent 查文档
    • 一个 agent 改代码
    • 一个 agent 做测试审查