学习精选 · AI 工具
Claude 与 Skill

实测两周 Claude Code 记录:73% 命令来自 subagent,但危险 git 操作几乎全来自主会话

DEV Community2026-11-10约 4 分钟读完AI 整理查看原文

作者用自己维护的开源插件 bulkhead scan 回放两周的 Claude Code 记录,把主会话和 subagent 的 shell 命令分开统计。结果发现 subagent 跑了 73% 的命令,但 73 条高风险 git 命令里有 72 条来自主会话,说明防护规则该装在哪取决于你的使用方式。

今天就能做

  • 如果你跑多个主会话共用一个代码目录,优先给 git 操作加防护规则,subagent 基本是无辜的
  • 检查 subagent 是否在前台轮询等后台任务,超过五分钟会烧掉 prompt cache,用 hook 拦截轮询循环
  • 用 bulkhead scan 回放自己的记录,先看清自己团队里哪类命令真正在被拦截再决定装什么规则

数据怎么来的

  • Claude Code 会为每个 subagent 在 <session>/subagents/ 下单独写记录,所以可以精确拆分统计
  • 回放 10 月 27 日到 11 月 10 日两周数据:全部会话 1754 个记录、112417 条 shell 命令、546 条会被规则拦截
  • 其中 subagent 占 1447 个记录、82475 条命令,主会话占 307 个记录、29942 条命令,subagent 跑了 73%

两边踩的坑完全不同

  • subagent 的 401 条被拦截命令里,393 条是前台轮询循环(如 until [ -f done ]; do sleep 15; done),在等自己启动的后台任务
  • 前台轮询超过五分钟会让 prompt cache 过期,subagent 醒来要重写全部上下文,好在 hook 已拦下 364 条
  • 73 条高风险 git 命令中 72 条来自主会话:在别的会话正在用的目录里 git add -A、checkout、rebase、merge,甚至 6 次 force push 到 main
  • 去掉等待类规则后格局反转:主会话 78 次违规,subagent 只有 11 次

为什么是这个分布

  • 主会话负责提交、切分支、rebase、push,subagent 只被派去做跑测试、搜代码、渲染这类窄任务
  • subagent 只有被明确要求才会去 commit,作者很少这么做
  • 所以单会话多 subagent 的用户该重点防等待和内存类规则;多个主会话共用一个 checkout 的用户才需要 git 类规则

数据的局限

  • 只是一个人的机器和使用习惯,回放只读命令文本,藏在脚本或 alias 里的 kill 不会被统计
  • 「另一会话活跃」的判断按分钟级时间戳重建,可能把开着但闲置的会话也算进去
  • subagent 运行时共享父会话身份,hook 层面无法区分,拆分只能靠记录文件夹

自己跑一遍

  • 工具是 MIT 协议的 Claude Code 插件 claude-bulkhead 里的 bulkhead scan,只读 ~/.claude/projects,不外发数据
  • 把 subagents 文件夹(可用硬链接)复制到单独目录,分别跑 bulkhead scan --since 14d 和加 --path 指向该目录,相减即得拆分数据
  • 作者特别想看 subagent 也会 commit 的人的数据是否不同

原文:Subagents ran 73% of my Claude Code shell commands. The risky git commands came from the main sessions.

来源:DEV Community · 2026-11-10

查看原文

本文由 AI 阅读原文后整理,未经人工逐字核对,内容以原文为准。

登录后可以点赞、查看和发表评论