什么是上下文(Context)?

  想象你在和一个新同事协作编程:
  - 如果你不告诉他项目情况,他只能盲目修改代码
  - 如果你告诉他:这是个Python项目、使用FastAPI框架、Git分支是main、当前在处理登录功能...他就能做得更好

  上下文管理系统就是自动收集这些信息,然后告诉AI,让AI更聪明。

  Claude Code 的上下文包含什么?

  📦 完整上下文
  ├── 🖥️  系统信息
  │   ├── 操作系统(Linux/Mac/Windows)
  │   ├── 当前工作目录
  │   ├── Shell类型(bash/zsh)
  │   └── 环境变量
  │
  ├── 📁 项目信息
  │   ├── Git状态(分支、改动)
  │   ├── README.md内容
  │   ├── 项目配置(package.json、requirements.txt)
  │   └── 项目结构
  │
  ├── 🔧 工具信息
  │   ├── 可用的工具列表
  │   └── 工具使用说明
  │
  └── 💬 对话历史
      ├── 之前的问题和回答
      └── 已执行的操作


claude code怎么计算当前上下文大小?

  1. 先从消息列表末尾往前找
  2. 找到“最近一次带真实 usage 的 assistant 响应”
  3. 这条 usage 代表“上一次 API 请求时,整个上下文有多大”
  4. 如果这之后又新增了消息,就只对“新增部分”做粗略估算
  5. 最后结果是:

最近一次真实 usage token 总数 + 后续新增消息粗估 token

current_context_size = last_real_usage_tokens + estimated_tokens_of_new_messages

口径1:计算api调用的上下文:
 

input_tokens + cache_creation_input_tokens + cache_read_input_tokens + output_tokens
  • 输入上下文
  • cache 创建 token
  • cache 命中 token
  • 输出 token

口径2:服务端最终上下文窗口大小”口径

input_tokens + output_tokens


最重要的是最近一次真实 usage + 后续新增消息粗估

它才是用来做:

  • autocompact
  • session memory
  • threshold comparison

这些判断的核心函数。

当前上下文大小
 

current_context_tokens =
    last_api_usage_total_tokens
    + estimated_tokens_of_messages_added_after_that

autocompact 阈值

effective_window =
    context_window - reserved_summary_output_tokens

autocompact_threshold =
    effective_window - autocompact_buffer_tokens

在原版默认 200k 上下文、预留 20k summary 输出、buffer 13k 的情况下,大致就是:

effective_window = 200000 - 20000 = 180000
threshold = 180000 - 13000 = 167000


Memory机制

Claude Code 的 Memory 系统是一个多层次、多类型的持久化知识管理体系。它解决的核心问题是:**如何让 AI 助手在不同会话之间保留有价值的上下文信息,同时避免信息污染**。

系统分为两大层:

1. **指令型记忆(Instruction Memory)**:CLAUDE.md 文件体系,存储用户/团队对 AI 行为的持久指令

2. **事实型记忆(Fact Memory)**:AutoMem/MEMORY.md 体系,AI 自动从对话中提炼并持久化的知识点

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐