跳转到内容

Claude Code

Claude Code 有 Chorus 官方插件。它在交互式 Claude Code 会话中提供 Chorus 工具和工作流技能,也可以作为受支持的 Chorus 后台服务后端运行。

安装前,请按照为智能体创建访问权限创建智能体密钥。

Claude 后台唤醒在主轮次后等待子智能体,默认上限 60 分钟(3600000 毫秒)。CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS 优先于 CHORUS_CLAUDE_BG_WAIT_CEILING_MS,不是整次唤醒时限。父智能体必须收齐完成结果或明确停止子智能体后再结束轮次。后台任务被强制终止时,即使原始退出码为零也记为异常;Chorus 尝试在触发的想法或任务上评论,不会自动修复状态或新增重试。零值/空值风险、配置和诊断见后台服务超时设置。

最快的方式是使用 chorus 命令行工具,它会为你安装插件并保存凭据:

Terminal window
npm install --global @chorus-aidlc/chorus
chorus agents add --agents claude

在提示时输入 Chorus 地址和智能体密钥。chorus agents add 会替你运行 claude plugin marketplace add / claude plugin install,并把 CHORUS_URL、 CHORUS_API_KEY 和 CHORUS_AGENT_PROFILE 写入用户全局 ~/.claude/settings.json 的 env 块, 因此交互式 Claude Code 会话无需手动设置环境变量即可完成认证。完成后重新启动 Claude Code。

若要改为手动安装,请在启动 Claude Code 的终端中设置凭据:

Terminal window
export CHORUS_URL="https://chorus.example.com"
export CHORUS_API_KEY="cho_REDACTED"

然后在 Claude Code 中添加插件:

/plugin marketplace add Chorus-AIDLC/chorus
/plugin install chorus@chorus-plugins

重新启动 Claude Code,使插件和技能生效。

如果只在交互式 Claude Code 会话中使用 Chorus,可以跳过这一节。否则,请按照 连接智能体运行环境选择 claude-code 作为运行后端。 先在前台确认连接无误,再按照管理后台服务让它保持在线。

每次唤醒仍启动一个 claude -p 进程,回合结束后退出。Chorus 现在使用双向 stream-json 输入输出,保持连接以处理控制响应。已有会话与 claude --resume 仍可使用;没有纯文本回退或传输切换选项。该行为已在 Linux 上用 Claude Code 2.1.283 和 2.1.284 实际验证;请把它们视为已测试的版本,而不是对所有 Claude Code 版本的最低版本保证。

  • 打断:后台服务先发送协议中断。若进程未在 sigintTimeoutMs 内停止,则强制终止进程树。默认值仍为 10 秒。
  • 受限工具:--chorus-only 模式会明确拒绝非 Chorus 工具,并提示智能体使用 Chorus 工具或通过 Chorus 评论提问。日志只标出被拒绝的工具名称,不记录其输入。YOLO 行为不变。从 Chorus 0.22.2 起,这些工具还会被移除,详见下文。
  • 提问:所有后台服务唤醒(包括 YOLO)都会禁用 AskUserQuestion,因为终端前无人回答。智能体应通过 Chorus 评论或需求细化提问;交互式 Claude Code 会话仍保留正常的提问流程。

--allowedTools 只会自动批准工具,并不会移除它们。从 Chorus 0.22.2 起,--chorus-only 唤醒会传入 --tools "mcp__chorus__*,Task,Agent" 和 --strict-mcp-config,因此智能体只保留本后台服务的 Chorus MCP 工具和子智能体派发(Task / Agent)。Bash、文件编辑等内置工具会被移除,你自己的 MCP 服务器不会被加载,Edit、Write 和 NotebookEdit 也会按名称被拒绝。子智能体继承同样的工具集,因此也无法使用 shell。

每次唤醒时,后台服务都会将 stream-json init 帧中的工具列表与该允许列表进行比对。如果出现任何其他工具,它会强制终止进程树(POSIX 上对进程组发送 SIGKILL,Windows 上使用 taskkill /T /F),从 init 帧起不再转发任何帧,并记录一次失败的唤醒,其中会列出泄漏的工具。如果 init 帧中没有工具列表,后台服务会记录一条警告,说明无法验证该限制,然后继续运行。

升级后,请用主机上实际安装的 Claude Code 版本验证签到、追加一轮对话,以及中断和恢复。协议故障可通过后台服务日志排查;如何继续会话,见中断与恢复会话。

在 Claude Code 中运行 /plugin list,确认 chorus@chorus-plugins 已启用。然后让 Claude Code 执行 check in to chorus。成功的响应会显示所连接的智能体及其权限。

使用后台服务模式时,在 Chorus 中打开设置 → 智能体,确认预期的主机和工作目录处于在线状态。

  • 插件提供 Chorus MCP 工具、工作流技能和生命周期集成。
  • 后台服务模式支持远程启动、追加指令、中断和恢复。
  • 远程工作可以访问本地操作系统用户在已注册工作目录内能访问的一切。只注册你信任的目录。

通用的操作流程见从 Chorus 发起远程工作和中断与恢复会话。

要在自己的终端里接管正在进行的对话,先在对话界面复制它的会话 ID(对话记录顶部的复制 session ID),然后在该对话的工作目录下运行:

Terminal window
claude --resume <sessionId>

复制的 ID 与 Chorus 恢复会话时传给 Claude Code 的 ID 相同;对于 Claude Code 运行后端,它就是该会话所属想法的 UUID。完整流程见中断与恢复会话。

  • 插件没有出现:重新启动 Claude Code,然后检查 /plugin list。
  • 签到返回未授权:创建或轮换智能体密钥,然后重新运行 chorus agents add(或更新 ~/.claude/settings.json 中的 env 块),再重新启动 Claude Code。
  • 后台服务离线:运行 chorus daemon status,然后参阅排查智能体连接故障。
  • 在线的工作目录不对:用正确的绝对路径作为 --cwd 重新安装后台服务。

插件管理的子智能体会话以智能体类型作为名称。同类型的并行子智能体可以共享一个 Chorus 会话, 该会话在最后一个子智能体结束后才会关闭,从而避免一个子智能体退出时提前结束其他子智能体被追踪的工作。