SuperAPI AI 工具集

kage-bunshin

智能体与模型

查看项目

更新于 10-16 11:07

技能介绍

用途

Kage Bunshin 用于生成和管理持久化的交互式 Claude Code CLI 会话。它在 tmux 中启动独立的 claude CLI 进程,让编排者能够与多个并行会话进行双向通信,从而将工作分派给独立进程并在运行过程中进行干预。

需要说明的是,这些会话并非子代理或协作者,而是拥有自己上下文窗口的独立 CLI 进程,会继承项目目录中的全部 MCP 服务器、技能、插件和代理。

主要能力

  • spawn:在 tmux 中启动新的持久化交互式 claude 会话,支持 --name、--model(默认 sonnet)、--max-budget、--effort(low、medium、high、max)等参数,输出 JSON 记录。每个会话通过内置 --worktree 获得自己的 git worktree。
  • send:通过 tmux send-keys 向运行中的会话发送消息,如同人工输入一样,会话会将其作为新的对话轮次处理,可用于调整方向、重定向或补充上下文。
  • read:通过 tmux capture-pane 读取会话当前屏幕内容,捕获最后 200 行。
  • status:检查会话健康状态,报告 tmux 会话是否存活、模型、存活时长和 tmux 会话名。
  • list:列出所有已注册会话及其存活/失效状态,输出 NAME、MODEL、STATUS、AGE、TMUX_SESSION 表格。
  • stop:优雅关闭,发送 Ctrl-C,轮询最长 30 秒等待退出,超时则回退到强制 kill。
  • kill:强制终止,直接调用 tmux kill-session,绕过关闭钩子和会话持久化,仅用于挂起或无响应的会话。

使用方式

所有操作经由 ${CLAUDE_SKILL_DIR}/scripts/spawn.py 执行。通过 --session-id 隔离每个编排者的注册表,需为同一批会话生成一次 UUID 并在每次调用时传入;未提供时默认为 "default",也可通过 KB_SESSION_ID 环境变量设置。

会话状态保存在 ~/.dh/projects/{slug}/kage-bunshin/sessions/{session-id}/{name}.json,可用 DH_STATE_HOME 覆盖基础目录。状态检测通过 read 实现:capture-pane 输出最后一行出现 ❯ 提示符表示 Idle,缺失 ❯ 表示 Working。

会话会继承同一工作目录下的能力(.mcp.json、~/.claude.json、.claude/CLAUDE.md、插件缓存、项目技能)。不应使用会破坏继承的 --bare、--strict-mcp-config、--disable-slash-commands。

可通过项目设置中的 worktree.symlinkDirectories 跨 worktree 共享 .venv、node_modules、.cache 等目录。

适用场景

  • 并行舰队管理:同时生成和控制多个协调者,每个 spawn 调用立即返回,可批量分派、查看仪表盘、中途调整和统一关闭。
  • 里程碑分派:用于 /groom-milestone 和 /work-milestone 生成并行的 kage-bunshin 工作进程(groom 分派和工作分派两种模式)。
  • 模型选择:协调者会话可用 --model haiku(快速、低成本地分派工作),做技术实现工作的会话用 --model sonnet。
  • 会话监控:可生成后台 Haiku 子代理监视需要响应的交互状态(权限批准、Y/n 提示、AskUserQuestion 事件)。监控脚本为 ${CLAUDE_SKILL_DIR}/scripts/monitor.py,含 poll(监视会话,在完成或需干预时输出 JSON)和 health(快照团队状态后立即退出)两个子命令。
    • 选项 A — 后台 bash:用于所有会话以 --dangerously-skip-permissions 生成时(绕过模式下不会出现权限提示),被动等待通知,零 LLM token。
    • 选项 B — 后台代理:用于可能出现权限提示、Y/n 关卡或 AskUserQuestion 事件时,代理可中继内容供编排者处理。
    • 监控在首次检测后立即退出,处理干预后需重新生成以恢复覆盖。all_complete 时应为舰队中每个会话调用 stop;timeout 时应读取各活动 pane 判断状态。

注意事项与限制

  • spawn 后需验证提示提交:脚本发送初始提示并回车,但 REPL 可能尚未完全初始化(与 3 秒等待存在竞态)。生成后 15 秒内 read,若仍显示 ❯ 且无工具使用或响应文本,说明回车被吞,需重发 tmux send-keys -t {tmux_session} Enter,最多重试 2 次(间隔 15 秒);仍无活动则应 kill 并重新 spawn。
  • send 后需验证送达:5 秒内 read,若无响应则重发回车,重试一次;仍无活动则会话卡住,应 stop 并重新 spawn。
  • 权限提示使用光标选择而非文本输入:显示编号菜单时发送 Enter 接受高亮选项,或用方向键切换,不要发送 "1" 或 "2" 文本。
  • stop 用于优雅关闭,kill 绕过钩子仅作最后手段。会话任务完成后仍在运行会占用 git worktree 和 tmux 资源,应及时 stop。

暂未提供

资料未提供收费、价格、平台兼容性、性能数据等信息。