工具大全
踩坑实录作者:Coocon2026年9月4日8 次阅读约 4 分钟阅读

Claude Code 报错 temporarily unavailable, so auto mode cannot determine the safety of bash 怎么解决

现象

在 Claude Code 的 auto 模式(自动批准权限模式)下干活,某次工具调用突然被拦,终端里出现类似这样的提示:

error: claude-opus-5[1m] is temporarily unavailable, so auto mode cannot determine the safety of bash right now. wait a moment and then try this action again. if it keeps failing, continue with other tasks that don't require this action and come back to it later. note: reading files, searching code, and other read-only operations do not require the classifier and can still be used.

模型名可能是 claude-opus-4-8claude-sonnet-4-6claude-sonnet-5claude-fable-5,也可能是 glm-5.3k3 这类第三方模型;bash 的位置可能是 writeeditwebfetchwebsearchskillcroncreate 甚至某个 MCP 工具名;括号里的原因可能是 timed outserver errorrate-limitedconnection failed,或者干脆没有括号。这些全是同一个问题,处理方式一样,下文有完整变体速查。

根因:挂掉的是"判定器",不是你的命令被判危险

auto 模式的本质是把"人工点确认"换成"模型判定器":每次要执行 Bash、写文件这类有副作用的动作前,Claude Code 会额外发起一次受限的模型调用,让会话模型扮演安全监视器(system prompt 开头就是 "You are a security monitor for autonomous AI coding agents"),只吐一个危险度判分。我们此前用本地日志代理把这次判定请求整包抓下来逐段解析过,机制细节可以看那篇。

看懂机制,这条报错就好理解了:

  • 报错说的是判定器这次调用失败了——模型服务暂时不可用/超时/限流,判分拿不到。
  • 拿不到判分时,Claude Code 的选择是"宁可不做":既不放行也不判罪,让你稍后重试。所以这不是对你命令的安全判定(新版报错文案甚至直接写了 "This is not a judgement about the action")。
  • 只读操作(读文件、搜代码)不需要判分,所以照常能用——这也解释了为什么卡住的总是 bash/write/edit 这类动作。

解决:按顺序试这四步

  1. 等几秒,原样重试。绝大多数情况是模型服务的瞬时抖动(高峰期尤其常见),重试一两次就过了。
  2. 先干别的。让 Claude 继续做只读类工作(读代码、分析、规划),过几分钟再回头执行被卡的动作——报错文案自己推荐的就是这个策略。
  3. 持续失败:换个会话模型。判定器用的就是你的会话模型——/model 切到另一个可用模型,判定器会跟着换。如果 claude-opus-5 在过载,切 claude-sonnet-5 往往立刻恢复。用第三方路由(报错里出现 glm-5.3k3 等名字的场景)同理:切回官方模型或换一个健康的后端。
  4. 还不行:退出 auto 模式。切回默认权限模式(每次动作人工确认),判定器就不在链路里了,动作照常执行——代价是你要自己点确认。确认完这波工作,再切回 auto。

另外有一个近亲报错:「error: auto mode could not evaluate this action and is blocking it for safety」——同样是判定环节没能给出结论时的保守拦截,处理方式与上面完全相同。

变体速查:你看到的是不是这一族

对照下面三个槽位,句式对上就是本文说的问题:

模型名槽位(谁在当判定器): claude-opus-5[1m] / claude-opus-4-8[1m] / claude-sonnet-4-6[1m] / claude-sonnet-5 / claude-fable-5[1m] / glm-5.3[1m] / k3[1m] / model-sonnet[1m] / 其他任何模型 ID。[1m] 后缀只是表示该模型开着 1M 上下文窗口,与本报错无关。

动作槽位(哪个工具被卡): the safety of bash / write / edit / webfetch / websearch / skill / agent / croncreate / mcp__<服务名>__<工具名>——任何有副作用的工具都可能出现在这里。

原因槽位(timed out) / (server error) / (rate-limited) / (connection failed) / 无括号——分别对应超时、5xx、限流、连接失败,处理方式无差别。

FAQ

是不是我的命令被认定危险了?

不是。危险命令有另一套提示(判定器正常工作时的拦截)。这条报错明确说的是判定器联不上,与命令内容无关——模型过载时,mkdir tmp 这种再无害的写操作一样会撞上它。

为什么用的是 GLM/Kimi,也报这个错?

通过 claude-code-router、one-api 这类路由把 Claude Code 接到第三方模型时,判定器调用也走你配置的后端。第三方后端不稳定时,这条报错里就会出现对应的模型名。处理方式一样:换健康的后端或官方模型。

只读操作为什么不受影响?

判定器只管有副作用的动作(执行命令、写文件、发请求)。读文件、搜索代码这类操作不改变任何状态,设计上就不需要判分,所以判定器挂了它们照常工作。

这个判定器到底怎么工作的?

一句话:会话模型的一次受限调用,11.6 万字符的系统提示词,两级规则(HARD BLOCK / SOFT BLOCK / ALLOW)加两阶段判定。完整抓包解析见《抓包拆开 Claude Code auto 模式的判定器》;想知道这套判定器的真实边界(以及它能被什么样的注入链绕过),见《复现一条能打穿 Claude Code auto 模式的注入链》

教训

遇到 AI 工具链的报错,先分清"判定失败"和"被判定为坏"——前者是基础设施问题(等待/换路重试),后者才是内容问题(改方案)。这条报错的措辞其实已经把答案写在里面了,但在终端里刷出一大段红字时,多数人(包括我们)第一反应都是"我干了什么坏事"。

相关文章

相关文章

复现一条能打穿 Claude Code auto 模式的注入链:模型拒跑恶意二进制,却自写代码把自己坑了

embracethered 8 月底放出一条攻击链,让一句『总结这个网页』把 auto 模式的 Claude Code 拖到 60~80% 的代码执行成功率——而 Anthropic 委托第三方测出的数字是 0.00%。我在隔离环境里把这条链拆开逐段实测:诱导模型从 WebFetch 降级到 curl 的分流端点、以及最关键的一环——模型『拒绝运行陌生二进制、改自己写 Python 解码器』这个安全决定本身,反而踩中了同目录下的同名 struct.py 投毒。确定性部分(分流 + 同名模块投毒 + 缓解对照)在本机完整复现并给出真实证据;live 端我这台机器因判定器限流 fail-closed 而没能跑通完整 RCE,如实标注。文末给出真正有用的缓解手段。

claude-codeauto-模式+5
hands-on2026年8月31日9 min
124

抓包拆开 Claude Code auto 模式的判定器:11 万字系统提示词逐段解析

上一篇复测确认了 auto 模式在放行 Bash 前会调一次会话模型当判定器,但那个判定器收到的到底是什么,一直是黑盒。这次我用本地日志代理把判定请求整包抓了下来:一份 116,879 字符的系统提示词,开头写着 You are a security monitor for autonomous AI coding agents。本文逐段引用抓包原文,拆开它的威胁模型、两级规则(1 条 HARD BLOCK / 68 条 SOFT BLOCK / 17 条 ALLOW)和两阶段判定流程——第一阶段只评估危害、明确不看用户意图,第二阶段才叠加意图和豁免。附三张真实终端截图和抓包证据,所有数字均来自本次读出,未经估计。

claude-code提示词+5
hands-on2026年8月30日11 min
149
把家里的 Mac mini 变成 24 小时在线的 Claude Code 工作站:claudecodeui + SSH 反向隧道,手机浏览器随时接管

把家里的 Mac mini 变成 24 小时在线的 Claude Code 工作站:claudecodeui + SSH 反向隧道,手机浏览器随时接管

家里的 Mac mini 常年开机跑 Claude Code,人在外面怎么用浏览器接管会话?这是一套上线一周、每天在用的真实方案:claudecodeui 做 Web 界面(选型对比了官方 Web 版、ttyd、code-server),SSH 反向隧道把它推到 VPS,nginx 加 TLS 和登录限流反代成一个普通网址。附完整配置、真实运行数据(隧道五天零掉线、内存 170MB)、上线一周就踩到并自己修掉的 <synthetic> 占位符 bug,以及「为什么不用 Tailscale」的正反论证。

claude-codeclaude-code-lab+7
claude2026年8月29日10 min
210

ANTHROPIC_BASE_URL 设了却不生效

在 zshrc 里 export 了 ANTHROPIC_BASE_URL 指向第三方中转站,Claude Code 却依然走 Google Vertex;同一台机器上,launchd 启动的 Web UI 干脆说未认证。两个坑的根子都不在中转站,而在「你以为环境变量设上了」。

claude-code中转站+2
pitfalls2026年8月24日3 min
238