AI

你的Claude们终于能自己聊天了

Claude Code 最近悄悄上线了一个功能:让不同终端里的 Claude 会话互相发消息。

以前你在 A 终端里吭哧吭哧改完代码,B 终端里的 Claude 对此一无所知。想让 B 知道发生了什么,你得手动复制粘贴,重新解释前因后果。这事干过的都知道有多烦。

现在不用了。你可以直接告诉 Claude「把这段摘要发给那个会话」,它自己搞定。

传的是摘要,不是全部上下文

这个功能有一个关键设计:会话之间传输的是一条 Claude 自己写的文本摘要,不是你整个对话历史,也不是一堆文件。

所以不用担心隐私问题,也不用担心目标会话被无关内容污染上下文。Claude 会自己判断哪些信息值得传递,然后写成一条干净的消息发过去。

消息是双向的。你可以让一个会话回答另一个会话的问题,也可以让 Claude 在发现自己的改动会影响其他会话时,主动通知对方。

什么时候用得上

官方文档列了几个典型场景,不是那种「理论上可以」的废话,而是确实能解决实际痛点的:

交接发现。一个会话发现某个改动是破坏性变更,Claude 会自动总结并通知受影响的那个会话。以前你可能会在合并代码时才意识到,现在中间过程就能拦截。

并行 worktree 协调。不同会话在各自的 worktree 里改同一个仓库,Claude 会告知其他会话你做了什么改动。git worktree 的多分支并行开发终于有了 AI 侧的配合。

获取长时间运行任务的状态。迁移或测试跑完了,直接让那个会话报告结果,不用你切过去看。

跨机器回复。你可以回复来自其他机器或 Web 端会话的消息。不过有一点要注意:跨机器只能回复,不能主动发起新对话。

有开发者在评论区说,5 小时前刚想要这个功能,现在就发布了。也有开发者提到自己几个月前就在用别的方式 hack 类似的事,说明这个需求确实真实存在。

消息是怎么送达的

接收方的 Claude 会在工具调用的间隙读取消息,不会打断正在运行的任务。如果接收方正好空闲,Claude Code 会直接开始一个新 turn。

如果接收方在忙,消息会排队。每条消息折叠成一行「Message from」,按 Ctrl+O 展开查看。

默认情况下,消息是否被接收取决于双方的权限模式。你可以通过设置 crossSessionInbound 来控制,三个选项:accept(接受)、hold(暂存)、refuse(拒绝)。

还有一点值得注意:接收方收到消息后,会像处理普通 prompt 一样计费。不是免费的。

限制

  • 只能传纯文本,不能传结构化数据。
  • 只支持 macOS 和 Linux,原生 Windows 不行。
  • 不支持 Amazon Bedrock、Google Cloud Agent Platform 等平台。
  • 会话之间不能互相审批权限,也不能改配置。消息永远不会代表你做任何操作,它只是传递文本。

怎么开始

更新 Claude Code 到 v2.1.224 或更高版本。在会话里运行 /list-agents(或 /peers)可以查看能触达的会话列表。

每个会话默认有一个名字,通常来自工作目录的文件夹名,比如 myapp-3f。用 /rename 命令可以自定义。

桌面版 Claude Code 在 macOS 和 Linux 上同样支持这个功能,官方已经确认了。

一点想法

多会话并行工作时,信息同步的成本。以前这活儿只能人肉干,现在 Claude 自己就能完成一部分。

但它不是 agent team 那种协同模式。跨会话消息更像是在独立会话之间搭了条小水管,而 agent team 是让一个 Claude 同时管理多个子代理。两者解决的问题不同,别搞混。

你依然需要自己决定开哪些会话、给它们什么任务。不过至少,Claude 之间能自己沟通一些事了。

会话交接并非新概念,很多项目都在解决这样的问题。在tokenbank(一个token或智能体共享交易网络的开源项目)里,会话也可以交接,并且可以跨应用,比如ClaudeCode到Cursor或者Workbuddy,采用的的方法也是基于摘要,IDE间可以各取所长,从这一点看,这个功能并非独创,但ClaudeCode把它集成进去,说明这样的刚需存在。

有网友开玩笑说,现在我的 Claude 们终于能自己聊天了。也有开发者担心自己被排除在循环之外,但就目前的设计来看,这担心有点多余:消息只是文本,不涉及任何审批或操作权限。

关注公众号回复“进群”入群讨论