Claude Code 跨会话通信教程

Admin
85阅读
0评论
0点赞

Claude Code v2.1.224 起支持独立会话互发纯文本消息。本文介绍版本检查、会话命名、在线对象查询与自然语言传话,并说明本机及跨机器通信路径、权限边界、平台限制、消息队列,以及它与 Agent Teams 的区别。

Claude Code v2.1.224 起支持多个独立会话互发消息。不同终端中的 Claude 可以主动同步字段变更、任务进度等信息,减少人工重复传递上下文;该功能无需额外配置,但仅传输纯文本摘要,不能共享完整对话或直接绕过权限限制。

多个会话如何协作

假设同时运行两个 Claude Code 终端:user-profiles 负责用户资料,weekly-digest 负责每周邮件。前者将 users.name 改为 users.display_name 后,只需告诉当前 Claude:

告诉 weekly-digest,我们把用户名称字段改成了 users.display_name。

发送方会自行整理消息并传给目标会话。接收方看到变更说明后,可以检查自己的代码,将仍在使用的旧字段同步替换,无需用户再次复述背景。

Claude Code 多会话通信演示

四步启用跨会话消息

第一步:确认 Claude Code 版本

在终端执行:

claude --version

版本需要达到 v2.1.224 或更高。如果版本较低,可执行升级命令:

claude update

满足版本和系统条件后,跨会话消息默认启用,不需要单独配置。还可以在会话中运行:

/status

如果状态信息中出现 Peer address,说明通信通道已经建立。

第二步:为会话命名

未手动命名时,Claude Code 会根据工作目录和随机后缀生成名称,例如 my-app-3f。同时运行多个终端时,建议使用更容易识别的名称。

启动时指定名称:

claude -n backend

也可以进入会话后重命名:

/rename backend

官方文档采用 -n 和 /rename。为避免兼容性问题,不建议依赖未明确记录的 --name 或 /name 写法。

第三步:查看在线会话

执行以下命令可查看能够接收消息的对象:

/list-agents

也可以使用它的别名:

/peers

列表会显示会话名称及对应工作目录,通常包括:

  • 当前机器上的其他 Claude Code 会话;
  • 子 Agent;
  • 云端会话;
  • 通过 Remote Control 连接的其他机器会话。

第四步:用自然语言发送消息

不需要手动调用通信工具,直接向当前会话说明目标和内容即可,例如:

告诉 backend,我修改了登录接口的返回格式。

也可以要求当前 Claude 向其他会话询问进度:

问一下 backend,数据库迁移是否已经完成。

Claude 会找到目标会话、发送消息,并在收到回复后将结果带回。

Claude Code 会话消息功能

消息实际包含什么

跨会话传递的是发送方生成的一段纯文本,而不是完整聊天记录、文件或工作目录内容。接收方只能看到这段消息,无法自动获知发送方此前的全部对话和文件修改过程。

因此,两种场景应区别处理:

  • 同步变更和进度:使用跨会话消息;
  • 继续完整上下文:使用 /resume 恢复原会话。

接收方也不会被消息强行中断。若它正在执行任务,通常会在两次工具调用之间读取消息;若处于空闲状态,则可以立即开始处理。

安全边界

本机与跨机器通信路径

同一台机器上的会话通过本地套接字传递消息,不经过 Anthropic 服务器。

跨机器通信则需要经过 Anthropic 服务器,并通过目标机器的 Remote Control 连接送达。如果发送方没有连接 Remote Control,消息仍可能发送成功,但不会携带可用的回复地址,因此接收方无法回传结果。

消息不能绕过权限

跨会话消息受到以下限制:

  1. 不能代替用户授权:其他会话发来的消息不能批准待处理的权限请求。
  2. 不能直接修改安全配置:接收方不应仅根据消息修改权限设置、CLAUDE.md 或其他配置。
  3. 不能远程执行斜杠命令:消息中的 /compact 等命令只会被视为普通文本。
  4. 仍需正常申请权限:如果执行任务需要接收方尚未拥有的权限,系统仍会显示授权提示。

使用前需要了解的限制

  • 操作系统:支持 macOS、Linux,以及 WSL 2 中的 Linux;不支持原生 Windows。
  • 云平台接入:通过 Amazon Bedrock、Google Cloud 或 Microsoft Foundry 使用 Claude Code 时,目前不支持该跨会话消息功能。
  • 非交互模式:通过 claude -p 启动的会话可以接收消息;加入 --bare 后不会绑定 inbox,也不会出现在会话列表中。
  • 容器隔离:容器内会话无法与宿主机上的会话通信,但同一容器中的多个会话可以互发消息。
  • 队列容量:最多保留 100 条消息,超出后会删除最早的消息。
  • 重复消息限制:短时间内发送的相同消息可能被丢弃,可降低会话之间循环刷屏的风险。

如果 /list-agents 无法识别,优先检查 Claude Code 是否达到 v2.1.224,以及当前系统是否属于支持范围。如果命令可用但列表为空,可检查 crossSessionInbound 是否被设置为 refuse,以及权限规则是否禁用了 SendMessage 或 ListAgents。

与 Agent Teams 的区别

跨会话消息和 Agent Teams 面向不同的协作方式:

  • 跨会话消息:多个独立终端互相传递文本信息,各自维护任务和上下文,适合日常并行开发。
  • Agent Teams:多个会话共享任务清单,并由 lead 统一管理,属于更正式的多 Agent 协作模式,且是默认关闭的实验性功能。

如果只是同时打开多个 Claude Code 终端,让它们同步接口、数据库或测试进度,跨会话消息通常已经足够;需要统一编排任务时,再考虑 Agent Teams。

上一篇Gemini 3.8 Flash实测:速度与编程表现下一篇用 DESIGN.md 约束 AI 生成 UI
评论0

暂无评论,期待您的发言...

发表评论