fennu2333

说说我如何实现远端的 Claude Code 全自动干活

  •  
  •   fennu2333 · 7h 36m ago · 1049 views

    先看效果。在网页上把一条想法派给远端某台机器的 Claude Code ,他自己领取任务、开始执行,你用可以就这个任务继续和他聊一些细节,全程我没碰终端:

    远程唤醒 Claude Code

    我做了几个月一个开源项目 Chorus,简单说就是给 Claude Code 配了个带网页的任务后台:想法、提案、任务这一整条开发流程在服务端管着(一条想法会先细化出需求,再拆成带验收标准的任务),Claude Code 在本地领任务、干活、交付。

    但如果被派任务的那个 CC 平时根本不在线。我把任务派给它之后,得等我哪天打开终端、跑起 Claude Code 、把它领下来,他才会按照事先编排好的 AI-DLC 来推进度。最近进行了一波大更新借( chao )鉴( xi ) Multica 的思路,让本地的 Claude Code 能自己接住服务端派来的任务,给大伙说下我遇到的坑吧,也给大伙推荐下 Linear 的 AIG 思想( https://linear.app/developers/aig ) 对我如何设计这个功能有非常大的启发

    如何唤醒远端的 Claude Code

    唤醒这步其实最简单。启个 daemon ,有任务派给这个 agent ,就在本地 spawn 一个 headless 的 claude -p 去执行。

    我遇到的抉择时要不要接 Anthropic 的 Agent SDK ?很多优秀的项目比如 Happy 用了这个 SDK 做远程唤醒 Claude ,效果相当不错。但 Chorus 新版本正在兼容 Codex ,自己维护各个 Agent 的无头模式更通用一些。

    如何让醒过来的 Agent 知道自己该干嘛

    我主要的时间主要花在解决这个问题上了。

    设想用 cron 唤起一个 claude -p,你得在 prompt 里贴上:任务描述、之前细化需求时定下的几条结论、它依赖的前置任务上线了没、验收标准是什么。漏一条它就跑偏。而这堆东西从哪来?多半还是从你自己脑子里。喂少了它做不对,喂多了你又变成在工具之间手动搬运上下文的人。

    其实 Chorus 本来就是一个 Agent 任务管理工具,有很多上下文。任务挂在哪条想法下、聊需求时聊出了什么结论、上游验收了没、验收标准是什么,全是结构化存着的。所以唤起 claude 的时候,prompt 里只放一个想法的 uuid 当入口,配合一套 CC 插件把所有 Chorus 上的功能用 MCP 和 Skill 接进来。唤醒 CC 的时候只要提醒一下他,在那个想法的上下文中被唤醒,它进来就会自动用 MCP 看看自己被派了什么,翻需求沟通记录搞清楚为什么这么做,干完按流程自查验收标准、提交验收。

    它能自己接住任务往下推进、不用我一句句交代,靠的就是这一点:让它醒在一个完整的任务管理环境里,他能非常快地通过环境和唤醒提示词来搞清楚究竟要干啥。

    如何让 Agent 复用会话

    每次唤醒要是各干各的,agent 跨任务就丢了上下文。所以每个 session 锚定在它对应那条想法的 uuid 上:同一条想法下的任务,唤起的是同一个 session ,--resume 接着上次往下走;想法和想法之间,session 互相隔开。

    这么锚定还顺带解决了一件事,就是人能随时插回来。每次唤醒的日志里都打一句 claude --resume <idea-uuid>,你在 daemon 的工作目录里跑这句,就直接进到 agent 刚才那场对话里,不用翻文件找会话 ID 。它干到一半我想自己接手,跳进去就行。背后有个队列按锚点排,保证同一个 session 不会被两次唤醒同时 resume 撞上。

    如何观察和打断 Agent ?

    我通过 SSE 实时推到前端,每个 turn 它说了什么、跑了什么命令都看得到。

    服务端可以给 daemon 发不触发唤醒的控制信号。基于它做了三件事:你能在网页上给正在跑的 agent 插一句话,作为它的下一个 turn ;能打断一个跑歪的 turn ,daemon 收到信号会分两阶段终止那个 headless claude 的进程树,先 SIGINT 留一截宽限窗口、不退再 SIGKILL ;打断之后状态停在那,在 ui 上点恢复还能接着那个任务继续跑。

    小结

    整套链路拆开看就这么几样:订阅通知、spawn 一个 headless 子进程、给它一个能自查上下文的 MCP 环境、加一条反向控制通道。做之前没想道有那么多问题,唤醒进哪个上下文、session 怎么锚定、跑偏了怎么拦、多目录怎么不串。说到底目标就一句话:把任务派过去,远端的 Claude Code 自己就接着执行,干完提交验收,不用我守在终端前。

    但坏处也很明显。。我现在吃饭睡觉随时都可以打开手机推 Claude Code 的进度了。。工作时间超级加倍

    有兴趣的老哥可以关注我的项目哦

    有问题欢迎 Issues 或 Discussions 。

    7 replies    2026-06-29 15:37:36 +08:00
    MozzieW
        1
    MozzieW  
       7h 19m ago
    有实际运行的记录吗?我很好奇这种全自动化的,怎么知道跑偏了、怎么救回来?验收标准是谁验收? 就算我盯着,很多时候跑出来的结果都不是我想要的,任务复杂一点 AI 的代码就容易过度设计,多来几次功能可能没有问题,但是代码肯定已经无法看了。
    fennu2333
        2
    fennu2333  
    OP
       7h 9m ago
    @MozzieW 好问题,其实这个项目第一个版本是半自动化的,核心思想是左移,前期需要高强度的人-agent 对齐,然后他会基于 openspec 进行规划和开发。后续我在 cc 插件里引入了对抗 review 的机制,逐渐一些小任务我就把对齐放给他自己做了,实现了全自动化(要求他自己对抗问答的时候记录问题和答案,方便我事后快速感知他是否跑偏)一些大任务我的实际用法是半自动化,我会在 ui 上唤醒远程的 cc ,他会在任务上提出选择题让我做

    ![]( https://chorus-ai.dev/images/idea-elaborate.png)

    回答完之后再交给他自动化执行,加上我设了几道对抗让他自己循环,一般不会漂移,如果漂移了,由于全程留档,所以也比较好发现和纠正
    huangmiao233
        3
    huangmiao233  
       6h 7m ago
    这种很贵吧。
    fennu2333
        4
    fennu2333  
    OP
       4h 25m ago
    @huangmiao233 嗯会有额外成本,所以只是小修小改的话提供了一个 /quick-dev skill ,记录一个 task 直接开干
    jjx
        5
    jjx  
       3h 21m ago
    @MozzieW

    感觉他们的程序好像无需负责一样,出来就算

    实际上不管哪个模型,真实业务你不人工干预就是一堆屎
    skuuhui
        6
    skuuhui  
       2h 44m ago
    官方自带“例程”功能。你要是第三方 key ,也可以用 loop 。
    还有,我都用网页了,我宁愿用终端。
    现在我们项目,从 issue 创建(或服务器报错日志)到服务器部署。中间只有企业微信几次审批。
    loveumozart
        7
    loveumozart  
       2h 1m ago
    似乎是在 claude code 上做了一层自己的 harness ,现在 harness 迭代速度很快,很多功能 claude code 自己都在做或者正在做了

    比如:
    1. 手机端 push 任务现在才出的 dispatch 能力原生正在支持
    2. 下发任务到看板让空闲的 agent 自动接任务解决这个有实验功能通过 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 开启,但是思路似乎和你的不一样,你的好像是最小化任务的 context ,拆成很小的任务,每次都起一次 claude -p 直接做完,所以是不用你手动 permission review ?按我的实践理解,ai coding 还是得待在电脑旁边 review 命令的,不然完全信任 harness 也有点激进
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5193 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 09:39 · PVG 17:39 · LAX 02:39 · JFK 05:39
    ♥ Do have faith in what you're doing.