上下文过大,已进行多次自动总结但上下文大小仍超出限制。请检查 MCP 服务器或 Skills 是否注入了过多内容,建议减少启用的 MCP 服务器或 Skills 数量,以避免过量消耗 Token。

yicool网站开发日志 5 阅读 更新于 2026-10-25 23:53

https://www.doubao.com/chat/38449238196456706

报错根因

MCP服务器、Skills在会话初始化就会把全部工具定义、系统提示注入上下文,哪怕闲置也持续占用token;自动摘要多次之后依然顶满窗口,说明静态工具定义+历史+大工具返回叠加超限,不是单纯对话太长。下面按优先级操作:

1. 立刻处理(最快见效)

  1. 查看当前所有MCP列表
/mcp
  1. 只保留当前任务必须的1~2个MCP,其余全部禁用(多个MCP的工具Schema叠加消耗非常大,是这个报错头号元凶)

原则:能直接用内置CLI命令完成的(git、gh、ls等),不要开对应MCP

  1. 清理Skills:打开配置,关闭当前任务不需要的Skills。每个Skill都会注入一长串system prompt,多个叠加很容易吃掉几万token
  2. 会话命令
/compact   # 手动强制压缩历史(已经多次自动压缩时效果有限)
/clear     # 终极方案:新开干净会话,把任务摘要、关键文件路径写进去,不要粘贴整段代码

提示:/compact 多次失败后不要再反复压缩,压缩本身也会占用上下文,直接新开会话更稳

2. MCP深度优化(根治静态开销)

  • 启用 defer_loading(延迟加载):MCP配置里加上 defer_loading: true,不调用的时候不把工具定义塞进上下文,只在真正要调用这个工具时才加载,是最推荐的优化项
  • 限制MCP单次输出上限:环境变量
MAX_MCP_OUTPUT_TOKENS=10000

默认20000,日志、大文件读取很容易打满;还可以设置 CODEBUDDY_DISABLE_MCP_LARGE_OUTPUT_FILES=1 强制截断超大返回,避免落盘+引用文本持续占上下文

  • 工具调用习惯:读大文件、日志时,不要一次性全量读取,使用offset/limit分页读取,或者让它只返回过滤后的摘要,不要原始全量文本

3. Skills 优化

  1. 精简每个Skill的prompt,删掉冗余说明、长篇示例
  2. 多Skill不要同时启用,按需临时启用,用完立刻关掉
  3. 长规则、知识库不要塞在Skill里,改成让Agent按需读取本地文件(@文件路径),而不是永久注入系统上下文

4. 文件读取 & 任务流习惯(长期防超限)

  • 不要粘贴大段代码、日志进对话,统一用 @path/to/file 引用
  • 大项目任务拆分:大重构拆成多个子任务,每个子任务独立会话;用子代理执行日志扫描、批量分析,子代理只返回摘要,原始输出留在子会话不进主上下文
  • 查看token消耗:
/cost

看是 system(工具/skill)、history 还是 tool_output 占大头,针对性砍

5. 兜底方案

  • 切换更大上下文窗口的模型 /model
  • 配置文件层面直接注释掉暂时不用的MCP和Skill,而不是只在界面关闭(部分版本界面开关不生效)

排查顺序速记

  1. /mcp → 关掉无关MCP(优先)
  2. 关闭闲置Skills
  3. 配置MCP defer_loading: true
  4. 大文件分页读取,禁止全量读入上下文
  5. /compact 压缩;无效就 /clear 新开会话
  6. 调小 MAX_MCP_OUTPUT_TOKENS
← 返回yicool网站开发日志 yicool 百科 · 上下文过大,已进行多次自动总结但上下文大小仍超出限制。请检查 MCP 服务器或 Skills 是否注入了过多内容,建议减少启用的 MCP 服务器或 Skills 数量,以避免过量消耗 Token。

评论 0