在聊天频道@一下Claude,它就在你电脑上改代码了

[复制链接]
发表于 4 小时前 | 显示全部楼层 |阅读模式
在团队聊天频道里打一句“@claude 退款规格怎么又挂了”,你本机的 Claude Code 就会真的跑起来干活。这是 osFoundry 的 Message 频道里新出现的一种成员:一个可以被 @ 的编码代理。

它干活的位置,是从这个频道绑定的仓库里拉出来的一次性 git worktree。它会读最近几条频道消息当上下文,然后把答案用自己的账号发回频道。如果开着“保持打开并记住”,下一次被 @ 时还是同一个 Claude Code 进程来答,所以它已经知道刚才在聊什么。
Codex 也能照同样的方式加进来。这套流程里写 Claude Code 的地方,换成 Codex 一样成立。
第一步:在桌面应用里选频道
编码代理跑在你自己的机器上,所以只能在桌面应用里用。用浏览器打开时,选择器会提示“Coding harnesses run on your machine, so they are only available in the desktop app.”。
打开 Message,进入要放代理的频道或项目房间,打开频道详情侧栏,在“Where agents here work”(这里代理在哪干活)里指定这个频道的文件夹。这个频道里的编码代理,全都在这个仓库里工作。
第二步:添加代理
在同一个侧栏的“Agents that can act here”(能在这里行动的代理)里点 Add,会弹出“Add to this channel”面板。标题下面写着一句话:代理只在被 @ 时行动,没被 @ 的消息它们从不读取——这既限定了它们花你密钥的成本,也限定了它们能接触到什么。
选“A coding agent”(编码代理),说明是“Claude Code、Codex 或 OpenCode,运行在这台机器上”。列表里会列出桌面应用找到的 CLI,没装的也不会消失,而是灰着标“not installed”。
第三步:填右边几项

  • Handle:@claude。这是别人叫它的方式,之后不能改,消息都靠它指代。
  • Repository:比如 ~/work/shop-api,从允许的文件夹里选,仅限本地。
  • 需要权限时:可选“开始前先决定”或“运行中问我”。
  • 消息之间:可选“每次重新开始”或“保持打开并记住”。

后两个选项决定代理在两次 @ 之间怎么待着。“每次重新开始”是每次 @ 都开新会话、重读频道,慢,但话题不会跑偏。“保持打开并记住”是消息之间也一直跑着并记住内容,它记住的东西属于它自己,不在对话记录里,也搜不到。这个选项必须搭配“运行中问我”,因为会话一直开着,就等于留了一个你能回答的会话。
如果工作区别的频道已经有 @claude,面板会给新 handle 加编号,并弹出“Add @claude instead”。用它的话,两个频道共用一段对话和一份 run 历史。想两个频道各管各的,就新建一个 handle。
第四步:@ 它
像跟同事说话一样在频道里写就行,答案由代理用 @claude 发出来。一次实际运行里,有人问“退款规格为什么不稳定?看看最近几次运行”,它先查 git log、读测试文件,再把测试里的时钟固定住,推了一个分支,回帖说:退款规格用 Time.now 构建时间窗口,CI 在 UTC 午夜附近跑就会失败,已在测试里冻结时钟,PR #482。
它收到的上下文块写的是“自上次听到它以来的新消息”,而不是“最近消息”——因为这是热会话收到的第二次 @。第一次 @ 时它拿到最多 12 条的快照,这次只拿到之后的三行,包括它自己之前的回答。刚发的那条消息不在块里,因为已经写在任务说明里,不重复展示。
边界画在哪
频道里每一行都是当数据、不是当指令送到代理面前的。块上标着 UNTRUSTED DATA,按从旧到新排列,每条消息在 600 字处截断,更早的内容由 channel_history 工具去取。这个工具默认取 30 条,可调 1 到 100 条,只能读代理自己是成员的频道。频道成员就算打出像系统提示的东西,也改不了代理的指令。
热会话不会重发历史,只有冷会话——刚起来的进程——才会收到对话回放和系统框架。看过哪些频道消息的记录绑在那个进程自己的会话 id 上,只有 run 成功时才前进。所以不管是崩溃、30 分钟空闲被回收,还是按了 Start fresh,都不会留下空洞,下一个进程从快照重新开始。常驻进程按“频道×代理”算,同一个 @claude 在两个频道就是两个进程。
代理之间也不会误唤醒对方。回复只唤醒 to 列表里的代理,且不超过频道收件人上限(默认 3)。在回复正文里打 @handle 不会唤醒任何人。普通频道里,别的代理叫不动你的代理,除非它的主人勾了“允许其他代理在这里和这个代理对话”。面板把代价写得很直白:代理之间的对话没有自动上限,所以开着的时候,它在这里的工具是只读的——能说,不能写。项目房间本来就是给代理互相回复用的,同样有对话专用上限,那里没有跳数计数器,取而代之的是房间里实时显示各代理的花费,以及任何成员都能按的停止开关,这个开关连正在跑的 run 也会取消。
没有人类替代理盯着频道。所以需要你点击的 osFoundry 工具不会让它干等,而是带着它必须报告的理由被拒绝。Claude Code 自己的权限询问是另一回事:选了“运行中问我”,它就会停在那里,等你打开 run 回答。代码改动留在 worktree 的一次性分支上,直到 PR 被合并。
接下来可以试的是在一个项目房间里放两个编码代理:@claude 和 @codex。让 @claude 负责改,然后在同一个线程里 @codex 去评审那个 PR。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:2776601884@qq.com

Powered by Discuz! X5.0 Licensed © 2001-2026 Discuz! Team.|青ICP备2025004122号-1

在本版发帖
关注公众号
返回顶部