【Claude】Prompt is too long 上下文超长报错已解决

关键词:Claude Code、Prompt is too long、上下文窗口、contedow、/compact、/clear、/context、CLAUDE.md、MCP、DISABLE_AUTO_COMPACT

一、问题现象

Prompt is too long

配图

二、根因:上下文窗口装不下了

Claude Code 维护一个上下文窗口(context window)——每次向 API 发请求时,这个窗口里的全部内容(系统提示 + 工具定义 + 历史消息 + 你当前的消息)都要作为输入发给模型。

每个模型都有一个最大 Token 容量(标准约 200K)。当上下文窗口的总 Token 数超过这个容量,API 就拒绝请求,Claude Code 显示 Prompt is too long

上下文里都有什么(按典型占用从大到小)

内容 说明
历史消息 整段对话的全部消息
工具定义 所有 MCP 工具和内置工具的描述
系统提示 Claude Code 的基础系统提示(约 20,000–30,000 Token)
CLAUDE.md 内存文件 你配置的项目指令
粘贴 / 读入的大文件内容 直接放进消息的文件内容

系统提示就是"起步价",每次请求必须带上。工具越多,工具定义越占地方。子代理还会从父会话继承所有 MCP 工具定义,放大这个问题。

为什么通常看不到这个错误

Claude Code 的**自动压缩(Auto-Compact)**默认开启,会在上下文接近 93% 时自动触发 /compact 压缩对话。这个机制能在大多数情况下防止 Prompt is too long

当你看到这个错误,通常意味着

  1. 你设置了 DISABLE_AUTO_COMPACT=1 关掉了自动压缩;
  2. 或者上下文增长速度太快,自动压缩来不及触发;
  3. 或者 MCP 工具定义本身就已经占满了大部分窗口。

三、解决方案

方案一:运行 /compact

/compact

压缩早期对话,释放空间。可以带上方向说明:

/compact 重点保留我们讨论的认证模块逻辑

压缩后就能继续发消息了。

注意:如果窗口实在太满,/compact 本身也会失败(Error during compaction: Conversation too long),这时见下一篇文章的处理方法。

方案二:运行 /context 找出"吃货"

/context

这个命令用彩色可视化展示当前上下文窗口的占用——系统提示、工具定义、内存文件、消息各占多少。加 all 展开逐项明细:

/context all

找出最大的占用来源,针对性清理。

方案三:关掉不用的 MCP 服务器

工具定义是上下文"隐形大户"。每个 MCP 服务器加载后,它的所有工具描述都会进入每次请求的上下文:

/mcp disable <服务器名>

特别注意子代理:子代理从父会话继承所有 MCP 工具定义,可能在第一轮之前就把自己的上下文窗口填满。在生成子代理之前,禁用不需要的 MCP 服务器。

方案四:精简 CLAUDE.md

CLAUDE.md 内存文件在每次会话里自动加载到上下文中。检查它是否过大:

  • 使用 /doctor 检查,它会标记超大的内存文件;
  • 把不常用的说明从全局 CLAUDE.md 移到路径范围规则(path-scoped rules),只在相关目录下加载;
  • 删除过时的说明。

方案五:重新启用自动压缩

如果你设置了 DISABLE_AUTO_COMPACT=1

unset DISABLE_AUTO_COMPACT

自动压缩恢复后,Claude Code 会在接近容量时自动压缩,通常能防止 Prompt is too long 再次出现。

方案六:/clear 重新开始

如果上下文已经无法压缩(太满了),开一个新的对话:

/clear

之前的对话已保存,可以用 /resume 找回。

四、避坑

  • 不要 DISABLE_AUTO_COMPACT 后放任不管:没有自动压缩,必须手动控制;
  • 不要在子代理里加载大量 MCP:先禁用不需要的再生成子代理;
  • 定期 /compact:在自然断点主动压缩;
  • /context all 定位大块:知道占用来自哪里,才能精准清理。

五、总结

Prompt is too long = 上下文窗口满了。解法:/compact(压缩)→ /context 找大块 → 关不用的 MCP → 精简 CLAUDE.md。自动压缩开着时通常不会看到这个错误,看到了先检查 DISABLE_AUTO_COMPACT 是不是被设置了。


参考:Claude Code 官方《错误参考》"请求错误"章节、上下文管理文档。

Logo

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

更多推荐