直接答案
上下文预算包含系统指令、历史、工具定义、附件和预留输出,不只是用户刚输入的文本长度。
这篇内容解决什么问题
解决 context_length_exceeded、maximum context length、提示过长和工具定义挤占上下文。
先确认症状与影响范围
请求返回 context_length_exceeded、maximum context length 或提示输入加最大输出超过模型窗口。长会话也可能不报错但出现压缩、遗忘或质量下降。
客户端界面只展示用户消息,实际请求还可能包含系统指令、仓库规则、MCP 工具 schema、附件、历史工具结果和预留输出 Token。
- 确认当前模型的上下文上限和请求中的最大输出设置。
- 分别估算系统指令、历史、工具定义、附件和最新输入。
- 比较新会话的最小请求与原长会话。
常见原因与责任边界
上下文超限既可能来自一次超大输入,也可能来自会话持续累积。切换更大窗口模型并不能替代上下文治理,还会改变成本和行为。
- 把大型日志、生成目录或整份数据文件直接加入上下文。
- 长会话保留大量重复历史与工具输出。
- MCP 工具 schema、Skills 或仓库指令数量过多。
- 输入接近窗口上限,同时预留了过大的最大输出。
按层执行最小诊断
从新会话发送最小请求,确认模型与认证正常。随后按系统指令、必要文件、工具和历史逐类恢复,识别主要预算来源。
不要把敏感仓库内容上传第三方 Token 计算网站。优先使用客户端自身的 context/status 视图或本地 Token 工具。
- 01确认模型窗口使用当前模型目录和客户端状态,不依赖旧教程数字。
- 02拆分预算分别核对指令、历史、工具 schema、文件与输出预留。
- 03新会话对照用同一模型启动空会话,发送最小任务。
- 04逐类恢复一次增加一类上下文并观察预算与质量。
find . -type f -size +1M -not -path './.git/*' -print | head -50
git status --short
# Claude Code 会话中使用 /context。
# Codex 任务只指定当前问题需要的目录和文件。针对根因完成修复
删除无关历史与工具结果,用可审查摘要保留决策、文件和验证命令;大文件先本地过滤再提供必要片段。输出预算按任务需要设置,不要总是使用最大值。
- 01缩小输入提供相关文件、行号和错误片段,而不是整个仓库或日志。
- 02清理会话无关任务开新会话,同一任务使用有保留要求的压缩。
- 03减少工具面只启用当前任务所需 MCP 与工具定义。
- 04校准输出将最大输出设为足以完成任务的预算。
目标:<当前唯一目标>
已确认事实:<3-5 条>
涉及文件:<精确路径>
未解决风险:<仍需验证的假设>
下一步命令:<可执行验证>
不要保留:<旧日志、无关工具输出、已否定方案>验证修复而不是只看一次成功
在缩减后的新会话中重复原任务,确认请求不再超限且关键约束仍被正确执行。记录输入规模、输出上限、成本和质量变化。
- 上下文为任务留出明确输出余量。
- 摘要保留已确认事实、修改文件和验收命令。
- 清理后没有丢失安全规则和不可变业务约束。
安全边界与升级证据
不要为了计算 Token 把私有代码、密钥或用户数据粘贴到未知网站。压缩摘要也必须删除凭据,并避免把秘密从短期上下文持久化到仓库规则。
- Token 估算在本地或可信客户端完成。
- 摘要不包含 Key、个人数据或完整生产日志。
- 扩大模型窗口前重新评估成本与数据边界。
官方来源与核验范围
本文以协议规范和客户端官方文档为事实依据。错误文案、重试头和配置字段可能随服务或客户端版本变化;执行前请核对来源,并对日志与请求样例脱敏。
查看技术核验方法