Claude Code 新增跨会话消息,一个会话能喊醒另一个

如果你同时开着好几个 Claude Code 会话在跑不同的活,新版本里它们终于能互相「说话」了。根据官方文档,跨会话消息功能需要 Claude Code v2.1.224 及以上版本,且仅在 macOS 和 Linux 上可用。当会话满足条件后,消息功能默认开启,无需额外设置。

实现上,Claude 借助两个工具来完成这件事:ListAgents 用来发现当前能联系到哪些会话,SendMessage 则按名字把消息投递给其中一个。借助同一个 SendMessage,Claude 也能在同一个会话内部或团队里给子智能体发消息。官方文档主要讲的是不同独立会话之间的消息往来。

最常见的使用场景,是一个会话手里有了另一个会话正需要的东西。比如某个会话改动了代码、引发破坏性变更,或者做出了某个决定,Claude 可以主动把要点总结后发给正在相关区域干活的会话,免去用户在多个终端之间来回复制粘贴;当多个会话在同一个代码仓库的不同工作副本上并行推进时,也能互相通报各自的进展;跑得久的迁移或测试任务,还能把状态回报给正在盯着的那个会话。此外,如果消息来自另一台机器或网页端,Claude 也能跨设备回一句。

消息本身只是一段纯文本,而不是完整的对话历史或文件。Claude 会在工具调用之间读取消息,因此不会打断正在跑的操作;当接收方空闲时,则开一个新轮次来处理。每条到达的消息都要经过接收方的入站规则检查,最终落到三种结果之一:送达(Delivered)、暂存(Held)或拒收(Refused)。一旦送达,这条消息会像用户亲手输入的提示一样计入用量,接收方也能以同样方式回复——跨机器的一来一回除外。

权限边界按会话各自隔离。Claude 被明确要求,绝不为另一个会话去做自身会话里被拒绝或拦下的操作,这类工作应当绕回交给你。在接收方一侧,它自身的权限提示和规则依旧对所有消息生效。你可以用 /list-agents 命令查看哪些会话可达,用 crossSessionInbound 设置来决定如何对待来自其他会话的消息:accept 直接送达、hold 先挂着等确认、refuse 直接丢弃。

对重度使用 Claude Code 的开发者来说,这意味着并行多会话的协作终于有了内置的「对讲机」,而不必再靠人肉在终端间搬运信息。

来源:Claude Code 官方文档