错误消息
API Error: 400 {"type":"error","error":{"type":"invalid_request_error","message":"prompt is too long: 213456 tokens > 200000 maximum"}}
API Error: 400 input is too long for requested model
Context limit reached · /compact or /clear to continue
Error during compaction: automatic compaction failed
Error: a single-exchange conversation cannot be compacted
Stop hook error: Hook evaluator API error: Prompt is too long
前两种来自 API,并带有 400 状态:请求被拒绝,原样重试仍会以同样的方式失败。 Context limit reached 是 Claude Code 在发送前自行做出的估算。压缩错误意味着应急手段本身也失败了,通常是因为对话只有一轮庞大的交互,没有更早的内容可供总结。
究竟是什么填满了上下文窗口
- 工具结果。 A
cat一个 4 MB 的日志、一个压缩后的打包文件、一个find遍历node_modules——输出的每个字节都会进入对话。先请求head,grep或wc -l,或告诉代理要读取哪些文件。 - MCP 工具定义。 每个已注册的服务器都会将其工具 schema 加入*每次*请求。 #50284:Explore 子代理失败,报错为
Prompt is too long,注册多个 MCP 服务器后,每次调用都会如此——子代理还没开始做任何事,上下文窗口就已接近满载。停用此项目中未使用的服务器(claude mcp list,然后移除它们或限定其作用范围)。 - 技能和 CLAUDE.md。 #69179 报告了
Context limit reached,显示使用量为 21%,就在加载内置的claude-api技能之后;帖子中的另一位用户在新进程的首次提示时就遇到了这个问题,并通过移除 CLAUDE.md 中的技能调用解决了问题。自动加载的大型技能是一项隐性的固定开销。 - 评估对话的钩子。 该
/goalStop 钩子会将近期对话发送给评估模型;会话很长时,溢出的正是评估请求本身(#58192,17 条评论, #62345)。一位 Anthropic 工程师指出,目标的长度上限为 4,000 个字符,因此原因不在目标文本,而在会话长度。长时间自主运行前,请清除目标或压缩对话。 - 子代理。 每个子代理都有自己的上下文窗口,但有报告称,Cowork 式的子代理创建出现了故障,报错为
Prompt is too long,当时仅有 0 个 token(#55712);如果遇到这种情况,请更新 CLI。
在 Claude Code 中修复
/context # what is in the window right now, by category
/compact # summarise history, keep the task
/compact focus on the failing test and the diff # steer what survives
/clear # fresh window; paste a short brief of where you were
/model # a (1M) variant if the job is genuinely large
顺序很重要:先查看 /context 。如果 MCP 工具或某项技能占用了三分之一的上下文窗口,压缩对话的效果也无法维持太久;应移除这项固定开销。如果问题出在单个工具结果上, /clear 比反复尝试压缩更快。如果工作确实需要数十万个 token,那么 (1M) 模型变体才是合适的工具——但请阅读下一节,因为选择它也有陷阱。
用量计显示不准时
问题跟踪器中的多份报告表明,实际用量远低于公布的窗口容量时,也会发生失败。 #51915: Context limit reached ,当时已使用 27%,而 /compact 随后也报错了。 #49605:尚未达到上限时就触发了警告。 API 错误 400 指南 介绍了与之相关的情况: Prompt is too long 发生在 166K 到 178K 个 token 之间,这些账户实际获得的是 200K 的窗口,而客户端显示的是 1M。实用原则:如果 /context 显示仍有空间,但 API 依然拒绝请求,就将大约 150K 视为实际上限,并在此处压缩对话。
反向的陷阱:如果某个模型默认使用 1M 窗口,而你的套餐不包含该窗口,选择它会产生*用量限制*消息,而不是上下文限制消息(#62052 ——“选择 Sonnet 时出现误导性的‘已达到用量限制’错误——实际上是 1M 上下文档位的访问限制”)。在以下位置选择非 1M 变体: /model,或设置 CLAUDE_CODE_DISABLE_1M_CONTEXT=1。详情见 用量限制页面.
claude.ai 上的“此对话过长,无法继续”
聊天产品也有相同的限制,只是措辞不同:*你的消息将超出此聊天的长度限制。请尝试附加更少或更小的文件,或开始新对话。*以及*此对话过长,无法继续。请开始新聊天,或移除一些工具以释放空间。*第二条与连接器有关:每个启用的工具或 MCP 连接器都会在每条消息中占用上下文,因此该消息建议移除工具(#58521)。开始新聊天,减少附件数量,将固定的参考资料放入 Project,而不是反复附加,并关闭当前对话中未使用的连接器。
使用 API 和通过网关调用时
因长度问题返回的 400 由模型决定,因此无论直接调用 Anthropic 还是通过本网关,行为都相同(ANTHROPIC_BASE_URL=https://aiprimetech.io)。区别在于计费:API 按 token 收费,没有会话用量窗口,因此频繁触发订阅限制的长上下文任务,使用 API 密钥往往更便宜,也更省心。请先在以下位置查看端点提供的模型及其窗口大小: /v1/models ,然后再考虑使用 (1M) 版本。
export ANTHROPIC_BASE_URL=https://aiprimetech.io
export ANTHROPIC_API_KEY=your_gateway_key
claude厌倦了与这个问题反复较劲?
改为通过 AI Prime Tech 网关运行 Claude Code:使用相同的 Claude 模型,由网关自己的上游账户提供服务,设置两个环境变量即可切换,新账户可获得 $5 免费 API 额度 使用优惠码 FIXIT — 无需银行卡。
export ANTHROPIC_BASE_URL=https://aiprimetech.io
export ANTHROPIC_API_KEY=your_key常见问题
“输入对于所请求的模型而言过长”是什么意思?
请求超出了所选模型的上下文窗口。API 返回的是 400:运行 /compact 或 /clear,移除未使用的 MCP 服务器和技能,或切换到上下文窗口更大的模型变体。
如何修复 Claude Code 中的“已达到上下文上限”?
运行 /context 查看什么占满了窗口,运行 /compact 进行总结,如果压缩失败则运行 /clear。如果远未达到上限就触发了提示,请将其视为误报,但仍压缩对话;问题跟踪器中已有多项此类缺陷。
为什么压缩会失败?
自动压缩需要有更早的对话轮次可供总结。如果对话只有一轮庞大的交互,例如一次巨大的工具输出,就没有内容可供归并;请运行 /clear,然后用更小的输入重新说明任务。
如何修复 claude.ai 上的“此对话过长,无法继续”?
开始新聊天,附加更少或更小的文件,并停用未使用的连接器或工具:每个启用的工具都会在每条消息中占用上下文。
通过网关运行 Claude Code
相同的模型,两个环境变量,面值 7.69231 倍的额度,或固定费率不限量方案。 新账户:使用优惠码 FIXIT 可获得 $5 免费 API 额度。
获取 API 密钥 查看不限量方案AI Prime Tech 是独立的 API 网关,与 Anthropic 无关联,也未获得其认可或赞助。“Claude”和“Claude Code”是 Anthropic 的商标。此处介绍的 Claude Code 功能以撰写时 Anthropic 的公开文档为依据,且经常发生变化;本页面的价格和模型列表读取自此网关的实时设置。