首页/文章/Claude Code 用量烧得快?一条长日志会跟着每次请求走:用 bashOutputMaxChars 和 Read 规则把它挡在外面

Claude Code 用量烧得快?一条长日志会跟着每次请求走:用 bashOutputMaxChars 和 Read 规则把它挡在外面

· Zumac.Ai

帖子说了什么

@mano_sec 指出:Claude Code 默认会把一条成功命令最多约 30,000 字符的输出直接放进上下文,这些内容会在之后的每次请求里一直带着,直到被清理或压缩。他建议在 .claude/settings.json 里加一行把上限调低:

{ "bashOutputMaxChars": 8000 }

另一位用户 @rthiago 分享了类似的经历:他的 Claude Code 为了查一个依赖版本,读了 pnpm-lock.yaml,花掉大约 18 万 token 的上下文。后来他在设置里 deny 了 Read(./pnpm-lock.yaml),Claude 改用 pnpm why zod 这类命令去查。

官方文档怎么写

对照官方 settings 参考 和 工具参考的输出限制:

  • 默认值:不设时,成功命令约 30,000 字符以内直接进上下文。
  • 超过上限:Claude Code 把完整输出存成会话目录里的文件,Claude 只收到前 2,000 字符左右的预览和文件路径,需要时再去读或搜这个文件。
  • 取值范围:会被限制在 4,000 到 128,000 之间;需要 Claude Code v2.1.261 或更新。
  • 设了它,BASH_MAX_OUTPUT_LENGTH 环境变量就被忽略。
  • 失败的命令另算:失败结果只给约 10,000 字符的首尾摘录,不存文件。

怎么用、怎么验证

  1. 按项目设上限:构建、测试日志很长的项目,设一个较低的 bashOutputMaxChars;需要 Claude 完整看日志的项目,反而可以调高。
  2. 验证:原帖的方法是让 Claude 运行 seq 1 3000(约 13.6KB 输出)。设置生效时,结果会显示输出过大、已保存到文件,并附一段预览。
  3. 挡住没必要读的大文件:锁文件、构建产物、数据导出这类文件,用权限规则 deny Read(...),让 Claude 用专门的命令查询需要的信息。
  4. 随时看上下文被什么占了:运行 /context。

要注意的地方

如果 Claude 后来真的打开了那个完整输出文件,内容还是会进上下文。所以这个设置最适合「看开头几行或搜一下就够」的长日志,不是万能省钱开关。

在订阅额度内用 Claude Code,少让无关内容跟着每次请求走,额度就更耐用,也更少遇到会话中途被限额打断。

如果你想让 Claude Code 跑在一台常开、整机独享的新加坡 Mac mini 上,可以了解 Zumac.Ai,咨询 Telegram @singatao。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服