news 2026/11/5 21:28:26

Chorus Daemon教程:把本地机器变成7x24 AI智能体运行时,一键远程唤醒

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Chorus Daemon教程:把本地机器变成7x24 AI智能体运行时,一键远程唤醒

【免费下载链接】Chorus

The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)

项目地址:https://gitcode.com/gh_mirrors/chorus13/Chorus
点击查看免费下载

Chorus Daemon 是 Chorus 自带的本地守护进程,它把本地机器变成一个 7x24 在线的AI 智能体运行时:订阅 Chorus 服务端的任务通知,一旦有任务派给这个 agent,就自动在本地唤醒 Claude Code / Codex / Kiro 等无头(headless)编码智能体接活、干活、交活——支持一键远程唤醒,全程不需要人守在终端前。

上面这张演示图:在网页上把一条 Idea 派给远端某台机器的某个目录,本地的 Claude Code 被 Daemon 唤醒后自动接手,打开对话窗口即可实时看它干活。

为什么需要 Chorus Daemon

平时用 Claude Code 这类编码智能体,流程是这样的:打开终端 → 启动 CLI → 手动粘贴任务上下文 → 盯着它跑。任务一旦跨设备、跨时间就断了:你派给 agent 的任务,得等你哪天打开终端手动领下来才会动一下。

Chorus Daemon 补的就是这个缺口,核心机制四件事:

环节Daemon 做了什么
订阅连接 Chorus 服务端,订阅 agent 通知流(SSE)
唤醒收到task_assigned事件,spawn 一个 headless 子进程(如claude -p)
上下文唤醒时带上 Chorus MCP 工具,agent 自己查任务、需求结论、验收标准
会话锚定同一条 Idea 的多次唤醒 resume 同一个 session,上下文不丢

效果一句话:把任务派过去,远端 agent 自己就接着干。相关设计思路可参考 docs/blogs/v2ex-daemon-remote-wake.zh.md。

一键安装步骤:从安装到首次唤醒

第 1 步:安装 Chorus CLI

需要 Node.js 环境,一条命令全局安装(无需数据库、无需 Docker):

npm install -g @chorus-aidlc/chorus

本地先起一个 Chorus 服务端(内置 PGlite,开箱即用):

chorus # 默认打开 http://localhost:8637

第 2 步:创建 API Key 并保存凭据

在 Web 界面Settings → Agents → Create API Key创建密钥(以cho_开头,只显示一次),然后登录保存凭据:

chorus login

chorus login会把url/apiKey写入~/.chorus/daemon.json(权限 0600)。注意它是字段级合并写入——之后重跑 login 轮换密钥,不会丢掉你已配置的cwds、yoloAckAt等其他字段。

也可以一步到位用chorus agents add:它会探测本机已装的编码 agent、安装对应 Chorus 插件并写入凭据:

chorus agents add --agents claude

第 3 步:启动 Daemon,观察唤醒

chorus daemon # 前台运行 chorus daemon -d # 后台运行(pidfile + logfile)

启动时会打印一个信息横幅:服务端 URL、agent 身份、权限模式(YOLO 会高亮提示)、凭据来源、claude可执行文件检测状态等。第一次在终端以 YOLO 模式启动会有一次性y/N确认,答案记为yoloAckAt,之后不再询问。

此时去网页端把一条 Idea/Task 派给这个 agent 对应的目录——Daemon 收到事件即唤醒本地 agent。每次唤醒的日志长这样:

[Chorus] ▶ wake: task_assigned → task:<uuid> [Chorus] spawning new session <idea-uuid> — take over with: claude --resume <idea-uuid> [Chorus] ✓ wake done: task:<uuid> (exit=0, 1234ms)

中间那行claude --resume <idea-uuid>是个彩蛋:你在 daemon 工作目录里执行它,就能直接插进 agent 刚才那场对话,随时人工接管。

最快配置方法:三种启动模式与生命周期管理

需求命令
前台启动chorus daemon
后台启动(detached)chorus daemon -d
查看是否运行(含 pid)chorus daemon status
查看日志~/.chorus/daemon.logchorus daemon logs
重启chorus daemon restart
停止 / 强制清理chorus daemon stop/stop --force
详细日志--verbose或CHORUS_VERBOSE=1

后台状态存在~/.chorus/daemon.pid和~/.chorus/daemon.log;pidfile 里记录了启动时间 + 命令行作为身份标识,重启系统后被操作系统复用的旧 pid 会被自动识别为 stale 并清理,不会卡住stop/start。

被唤醒的 agent 在干活时,看板卡片状态(To Do → In Progress → To Verify)和 presence 指示器实时更新。

开机自启配置:把本机变成常驻 AI 智能体节点

想让机器 7x24 挂着接活,推荐用install一键装成 Linux systemd 用户服务:

chorus daemon install --cwd ~/proj # 生成 systemd --user unit 并启用 chorus daemon install --cwd ~/a --cwd ~/b # 同时守护多个目录 chorus daemon uninstall # 卸载服务

这条命令替你生成正确的systemd --userunit、执行daemon-reload并enable --now,不用手写 unit 文件。它还会:

  • 交互询问 agent 后端(Claude Code / Codex / Kiro),或传--agent指定;选中的后端写入~/.chorus/daemon.json,unit 本身不带--agent;
  • 检查所选 CLI 是否在PATH上,缺失会告警;
  • 装好后status/stop/restart/logs自动委托给systemctl/journalctl。

两个踩坑提醒(systemd 环境极简,不加载你的 shell 配置):

  1. 凭据务必用chorus login落盘到~/.chorus/daemon.json,而不是只写在~/.zshrc的CHORUS_API_KEY里——否则 unit 看不到凭据,服务会无限 crash-loop;
  2. unit 的PATH通常不含~/.local/bin,如果claude装在那里,每次唤醒都会 spawn 失败;启动时看到⚠ claude CLI NOT FOUND就该检查这里,也可以用CHORUS_CLAUDE_PATH直接指定绝对路径。

macOS 用户可以按 docs/DAEMON.md 里给出的 launchd plist 模板手动安装,并执行launchctl load加载。

权限模式与多智能体配置

权限模式:YOLO 是默认值

被唤醒的 agent 默认处于YOLO 模式(--dangerously-skip-permissions):有完整 shell、可写文件,因为 daemon 存在的意义就是让它真正完成写代码工作。所以只在可信 / 沙箱环境里跑 daemon。想收紧权限,用 chorus-only 模式,agent 只能调用 Chorus MCP 工具(评论 / 领取 / 汇报 / 状态),不能碰 Bash 和文件:

chorus daemon --chorus-only # 或 CHORUS_CHORUS_ONLY=1

一个 Daemon 服务多个独立 agent

~/.chorus/daemon.json的agents[]数组可以让同一个 daemon 进程同时服务多个完全独立的 agent——不同身份、不同权限、不同后端,各用各的连接、唤醒队列和 spawner,一个 agent 挂了不影响其他:

{ "url": "https://chorus.example.com", "agents": [ { "apiKey": "cho_alpha", "agentType": "claude-code", "cwds": ["/home/me/projA"] }, { "apiKey": "cho_beta", "agentType": "kiro", "cwds": ["/home/me/projB"], "permissionMode": "chorus" } ] }

每个 agent 还可以在条目上单独配args/env(模型、provider 环境变量等),详见 docs/DAEMON.md 的 "Per-agent CLI arguments and environment" 一节。新增 agent 推荐用chorus login --add(校验密钥后追加,不会覆盖已有 agent)。

选择 agent 后端

Daemon 默认唤醒 Claude Code,也可以指定 Codex、Kiro 等其他后端:

chorus daemon --agent claude-code # 默认 chorus daemon --agent codex chorus daemon --agent kiro

解析优先级:--agent参数 →CHORUS_AGENT环境变量 →daemon.json的agent字段 → 默认claude-code。

常见问题排查

现象排查方向
启动即报凭据缺失非 TTY(systemd/nohup)下不会弹交互提示,先chorus login落盘凭据,或传--url/--api-key
唤醒失败claude找不到unit PATH 缺少~/.local/bin,设置Environment=PATH=...或CHORUS_CLAUDE_PATH
401 UnauthorizedAPI Key 失效,到 Settings → Agents 重新创建
改完daemon.json不生效daemon 启动时快照配置,必须chorus daemon restart
想插话 / 接管日志里的claude --resume <idea-uuid>;网页端还能插话、打断、恢复

凭据解析顺序(先命中先赢):--url/--api-key参数 →CHORUS_URL/CHORUS_API_KEY环境变量 →~/.chorus/daemon.json→ Claude Code 插件配置。TTY 下全都缺省时,chorus daemon会直接交互式提示输入并保存,无需单独跑chorus login。

小结

  • 一条chorus daemon命令,本地机器即变为 7x24 AI 智能体运行时,网页派单即一键远程唤醒;
  • 唤醒不是靠超长 prompt,而是把 agent 放进一个能自查上下文的环境:MCP 工具让它自己查任务、需求和验收标准;
  • 会话锚定在 Idea 上,跨任务不失忆,人随时可以--resume插回来;
  • 后台运行可看(SSE 实时 transcript)、可拦(打断/恢复)、可插话,丢后台也放心;
  • chorus daemon install一条命令装成开机自启服务,多台机器各挂一个,组成你的 agent 集群。

核心实现都在 CLI 里:daemon 主循环 cli/daemon.mjs、唤醒队列 cli/wake-queue.mjs、Claude 唤醒器 cli/claude-spawner.mjs,配合 docs/DAEMON.md 的完整命令参考,可以深入阅读。

【免费下载链接】Chorus

The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)

项目地址:https://gitcode.com/gh_mirrors/chorus13/Chorus
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/5 21:28:26

数据交换方式

一、三大基础交换类型&#xff1a;电路交换、报文交换、分组交换1. 电路交换&#xff08;Circuit Switching&#xff09;流程&#xff1a;建立连接→ 传输数据 → 释放连接1.通信前独占一条物理通路&#xff0c;全程带宽专用&#xff1b;2.数据直达&#xff0c;时延小、实时性强…

作者头像 李华
网站建设 2026/11/1 7:23:43

电源Y电容选型与EMC整改实战:安规、漏电流与PCB布局

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/1 6:55:16

Nacos生产级集群部署实战:注册中心与配置中心一体化落地指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/31 19:44:27

考研数学中值定理与微分等式不等式证明题解题套路与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/1 17:46:27

ESP32C3下载工具V3.9.8深度解析:量产级烧录原理与Secure Boot实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华