Skip to main content

Claude Code 跨会话消息是什么?把多 Agent 协作从「手动搬运」变成「自动通知」

· 7 min read

Claude Code 跨会话消息把多 Agent 协作从「手动搬运上下文」推进到「自动通知对方」。

  1. 核心能力:一个会话可把文字摘要发给另一个会话,接收方在原任务里继续处理
  2. 三种模式互发摘要 / 双向问答 / Claude 主动通知 改动影响
  3. 关键约束:只传文字摘要,不传完整历史,也不传文件
  4. 使用姿势ListAgents 列出可达会话,SendMessage 按名称发送,prompt 触发即可
  5. 硬门槛:Claude Code v2.1.224+,支持 macOS 与 Linux
  6. 跨机器边界:跨机器或网页会话只能回复,不能主动发起对话
  7. 关键边界这不是会话迁移,要搬完整上下文仍需恢复原会话
  8. 方向意义:多 Agent 协作从「手动衔接」走向「自动通知」,是 Agent 协作从单点走向网络的关键一步

什么是跨会话消息

Claude Code v2.1.224 加了一个长期缺失的能力:会话之间可以互发消息

一个会话能把一段文字摘要发给另一个会话,接收方在自己原来的任务里继续处理这些信息——不需要把对方的历史、文件、上下文一并搬过来。这是它在产品语义上 不是会话迁移 的根本原因:消息只传「我要告诉你的事」,不传「我为什么知道这件事」。

配套的能力还有双向问答和主动通知:当前会话可以向另一会话提问,对方的回答会返回给发起方;Claude 在跑任务时如果发现改动会影响另一个会话,也可以主动发消息过去。

这三种模式覆盖了多 Agent 协作里最常见的两种场景——被动转交(用户主动指派)和 主动协同(模型自己意识到两边状态需要同步)。

三个典型用法

1. 互发摘要

最常见的用法。user-profiles 这个会话正在改数据库 schema,改完之后一个被重命名的字段会在 weekly-digest 这个会话里用到——在过去,这种「下游影响」只能靠用户手动告诉另一边,或者干脆重新跑一遍。现在 user-profiles 会话可以直接发一段摘要过去:

p94HT2
user-profiles → weekly-digest: users.name → users.display_name

另一边的会话在自己的原任务里继续处理,不会被打断、也不会被迁移。

2. 双向问答

当一个会话需要另一个会话的判断时,可以发问。比如 user-profiles 不确定 users.display_name 字段在 weekly-digest 的渲染逻辑里会不会有问题,可以直接问对方,weekly-digest 给出回答后,回答会返回 user-profiles 这边。

这种「隔空对谈」的好处是两个会话各自保有自己的完整上下文——它们不需要合并成一个长任务,只是交换必要信息。

3. 主动通知

这是一种用户可能都没意识到的新行为:Claude 在跑任务时如果发现改动会影响另一个会话,可以自己决定发消息告诉对方。

这意味着多 Agent 协作从「用户手忙脚乱地协调所有会话」变成了「Claude 看见了就主动通知」。对用户来说,协作成本从手动降到了零——你不用记得「诶,我刚才在 user-profiles 改的那个东西,weekly-digest 是不是也得改一下」。

关键约束:只传文字,不传历史

这一条是理解整个功能的核心。

跨会话消息 只发文字不传完整对话历史也不传文件。换句话说:

  • 接收方看不到你之前所有 turn 的细节
  • 接收方看不到你本地读过的文件、跑过的命令
  • 接收方拿到的是一段「总结」而不是「现场」

这看起来是限制,其实是 设计上的取舍。如果跨会话消息连历史和文件都传过去,那就不是消息、是把会话整体迁移过去——而迁移一个会话的意义在哪?原本就有一个会话在那儿,你只需要恢复原会话就行。

跨会话消息的定位是 传递发现、状态、决策或任务影响——一句话能说清楚的事。要搬完整上下文,仍然需要恢复原会话。

怎么用:ListAgents + SendMessage

技术实现很轻量:模型通过两个工具完成跨会话通信。

  • ListAgents:列出当前可达的会话
  • SendMessage:按名称向某个会话发消息

用户不需要直接调工具。在 prompt 里用自然语言说「把 X 告诉 Y」或「问 Y 一下 Z 是什么」就行,模型会去跑 ListAgents 找到 Y,再用 SendMessage 发出去。

这意味着跨会话通信对用户完全透明——你不需要懂 MCP、不需要看 session id、不需要切换终端。

跨机器的限制

地理边界是当前最硬的一条限制:

  • 同机:可以主动发送
  • 跨机器 / 网页会话:只能回复,不能主动发起

也就是说,如果你在 Mac 上跑 user-profilesweekly-digest 在云端网页 claude.ai 网页版上跑,Mac 上可以主动发过去,但网页版那边不能主动发起跨会话消息。

这个限制在 v2.1.224 是一个产品功能边界——它把跨会话消息的能力暂时锚定在「本地多 Agent 协作」的场景里,避免了云端会话随时拉起本地会话的复杂度。

这不是会话迁移

这是整个功能里最容易被误读的一条。

想象一个反例:你有两个多小时历史的长会话 A,想把它的全部上下文搬到会话 B 继续——这种需求跨会话消息 做不到。要做到这一点,目前仍然只有传统办法:原会话保存、重新打开、或者走 claude.ai 网页版的会话同步功能。

跨会话消息的设计是轻量、单向、局部的:

维度跨会话消息会话迁移
传什么文字摘要完整上下文
接收方状态在原任务里继续接续原任务
适用场景传递发现、状态、决策跨设备继续
用户感知「另一会话收到一条消息」「我换了个设备继续」

理解了这一点,才能知道什么时候该用跨会话消息、什么时候该用传统办法。

方向意义

跨会话消息单独看是个小功能——加了两个工具、改了几个 prompt。但放进多 Agent 协作的演进史里看,它是个重要的范式节点

过去一年里,多 Agent 协作的所有进展都集中在「单会话内的工具调用、循环、记忆」——也就是 Karpathy 说的 harness 这一层。跨会话通信一直是个真空地带:每个会话是一个孤岛,模型不知道也不关心其他会话在做什么。

跨会话消息打破了孤岛。会话之间从「互相看不见」变成了「可以互相通知」。 Claude 主动通知的能力尤其关键——它意味着 Agent 协作从「用户手动协调」升级到「模型自动协调」,用户从「传话筒」变成了「旁观者」。

下一步会是什么?很可能是:

  • 跨机器的主动发起(云端会话能主动拉起本地会话)
  • 跨会话的任务依赖图(会话 A 完成的某件事自动 trigger 会话 B 的某个任务)
  • Agent 协作的全局视图(用户能看到所有会话之间的消息流向)

每一步都比上一步更难,但跨会话消息已经打开了门。

什么时候该用、什么时候不该用

最后给一个实操判断:

该用跨会话消息的场景

  • 一个会话改的东西会影响另一个会话
  • 一个会话需要另一个会话的判断(小型问答)
  • 多个会话在并发推进同一项目的不同模块

不该用跨会话消息的场景

  • 想把长会话完整搬过去(用会话迁移功能)
  • 需要传文件、二进制、代码快照(跨会话消息只传文字)
  • 跨机器场景下需要主动发起(暂时不支持)

判断标准:一句话能说清楚的事,走跨会话消息;要搬整个上下文的事,走会话迁移。

References

  1. Claude Code会话可以互发消息 —— 克劳得Everything, 小红书, 2026-08-08