# Agent 互发消息

[Agent HUD 文档](https://agenthud.app/docs/zh/)

在 Agent HUD 发行版中，Claude Code、Codex、Antigravity 与 DeepSeek Harness 通过它的 MCP 服务互相传递单条消息，从不交出整段会话。

更新于 2026-10-29

Claude Code 写完一段改动，可以请一个 Codex 会话审一遍，Codex 的答复回到 Claude 手里；也可以新开一个会话，把任务交给它。Agent HUD 本来就看得见你 Mac 上的每个会话，所以能在原本互相够不着的客户端之间传话。传话的过程在 HUD 上看得见：每条消息都折成一只纸飞机，从发信方飞到收信方。

Agent 互发消息只在[发行版](https://agenthud.app/mac)中提供，免费使用，消息留在你的 Mac 上，不需要 Agent HUD Remote。从源码构建的版本有 [HUD 工具](https://agenthud.app/docs/zh/mcp/)，没有互发消息。

## 只传消息，不交出会话

一条消息里只有发信的 agent 写下的话，外加一行标签，写明它是哪个 agent、会话标题是什么。两个会话的其他内容都不会过去：之前的对话、读过的文件、调用过的工具，都留在原处。回来的也一样少：收信方的回复，或者这条消息开启的那一轮里最后的回答。

所以两个 agent 在同一个项目里工作时，项目本身就是它们共同的上下文。发信方只说要什么，比如「审一下这个分支上的改动」，收信方在自己的会话里亲自去读代码、差异和测试，谁都不用接手对方的整段对话。

## 哪些 agent 参与

| Agent | 发消息 | 收消息 | 可被新开 |
| --- | :---: | :---: | :---: |
| Claude Code | ✓ | ✓ | ✓ |
| Codex | ✓ | ✓ | ✓ |
| Antigravity | ✓ | ✓ | ✓ |
| DeepSeek Harness | ✓ | ✓ | — |

Cursor 和其他 MCP 客户端可以用 HUD 工具，但不能互发消息：Agent HUD 认不出是它们的哪个会话在调用，也没有路把消息送进去。

消息只在同一台 Mac 上的主会话之间传递，不发给子 agent。收信的会话要有一条进去的路：

- **Claude Code**：这个会话加载了 Agent HUD 的 Claude Code 插件，并且**设置 → 智能体插件**里它那一行的**发消息**是打开的。
- **DeepSeek Harness**：这个会话里运行着 Agent HUD 的 DeepSeek Harness 插件，并且它那一行的**发消息**是打开的。Harness 会话发消息也经由同一个插件。
- **Codex**：有 Codex 桌面版或命令行开着这个对话。没人开着、又装了 Codex 桌面版时，Agent HUD 会在桌面版里打开它；否则消息留在 Codex 的队列里，等有人打开这个对话。
- **Antigravity**：经由它正在运行的本机服务送达。

## 打开它

在**设置 → 智能体插件**里，给每个要发消息的 agent 添加 **HUD 工具**。见[接入一个 agent](https://agenthud.app/docs/zh/mcp/)。

在**智能体工具**下打开**允许 agent 互发消息**。在你打开之前，它一直是关着的。

在 agent 里新开一个会话。会话在开始时加载工具，之前开着的会话没有消息工具。

然后用平常的话提要求，例如「请这个仓库的 Codex 会话审一下这段改动，等它的答复」。

![设置 → 智能体插件的「智能体工具」一节：允许智能体调整 HUD、允许 agent 互发消息已打开，以我的身份发送已关闭，连续来回上限为 10](https://agenthud.app/docs/images/settings/agent-plugins-agent-tools.zh.webp)

## 一条消息怎么走

### 发信方发出

agent 用 `list_sessions` 找到收信的会话，再用 `send_message` 发出。调用立即返回：消息已排进队列，或者被拒收并附上原因。

### 等对方空闲

消息排在收信会话的队列里，等这个会话空闲后作为新的一轮送进去，不会打断正在进行的一轮。

### 收信方看得到是谁写的

消息第一行写明发信方和消息编号，例如 `[Agent HUD · 来自 Codex · 修复登录 · m-8f2c]`，最后一行说明怎样回复。

### 答复回来

收信方用 `send_message` 回复，回复等发信会话空闲后作为新的一轮送达。收信方没有 Agent HUD 的工具时，直接作答即可；发信方再用 `get_message` 取回答复，答复来自 Agent HUD 已经收集到的、关于那个会话的记录。取答复从不唤醒对方的会话。

agent 也可以用 `start_session` 新开一个 Claude Code、Codex 或 Antigravity 会话。会话落在你已经用这个客户端打开过的文件夹里，或者一个单独的任务文件夹里；装了桌面版的，就开在桌面版里。

## 纸飞机

- 发信方把消息折成纸飞机，飞到 HUD 上收信方的标记那里。在**刘海**形态下，两个 agent 分别从刘海两侧探出来；在**简约**与**动态**形态下，纸飞机从一个图标飞到另一个图标。
- 答复到达时，纸飞机飞回来一次。
- 被拒收的消息飞到一半落下。
- 同一对会话之间连发几条时，合成一只纸飞机，上面带一个数字。
- macOS 打开了「减弱动态效果」时不飞：发信方旁淡入一个封好的信封，接着收信方旁淡入一个打开的信封。

{/* figure: 动画：纸飞机从 Claude Code 的机器人那里飞出，经刘海下方飞到 Codex 的机器人那里 */}

## 设置与防护

| 设置 | 作用 | 默认 |
| --- | --- | --- |
| **允许 agent 互发消息** | 向接入了 HUD 工具的 agent 列出消息工具 | 关 |
| **以我的身份发送** | 消息作为你本人的话送进去，不标明来自 agent | 关 |
| **连续来回上限** | 没有你插话时，agent 之间最多连续传几次，到了就停下等你：3、5、10、20、50 或**不限** | 10 |

> **以我的身份发送**
>
> 打开**以我的身份发送**后，收信的 agent 会把消息当成你说的话，可以凭它替你同意删除、发布这类操作。它不知道消息来自 agent，所以会在自己的会话里直接作答，发信方用 `get_message` 取回答复。

- **你插一句话，计数就清零。** 在这条链上任何一个会话里亲手打一句话，次数就从零开始。新开会话也算一次传递，取答复不算。
- **消息正文只在送达期间保留。** Agent HUD 记下谁给谁发了消息、正文的指纹以及答复会在哪里，这份记录保留一周。
- **不能冒充你的手机。** 以 `[Agent HUD · iPhone]` 开头的消息一律拒收，这是你从手机发出的话所带的标记。
- **正文从不截断。** 不过 agent 自己的客户端在读回很长的答复时，可能会把它缩短。

## 消息没有送到时

| 发信方得到的说明 | 怎么办 |
| --- | --- |
| Agent 互发消息已关闭 | 打开**允许 agent 互发消息**，再新开一个会话。 |
| 这个会话没有加载 Agent HUD 的 Claude Code 插件 | 在**设置 → 智能体插件**里安装插件，然后在那个会话里执行一次 `/reload-plugins`。已关闭、或被 Claude 桌面版暂停的会话收不到消息。 |
| 这个会话里没有运行 Agent HUD 的 DeepSeek Harness 插件 | 在**设置 → 智能体插件**里安装插件。 |
| 消息留在 Codex 的队列里 | 没有 Codex 桌面版或命令行开着这个对话。在 Codex 里打开它。 |
| 这几个 agent 已经连续来回 N 次 | 在其中任何一个会话里打一句话，或者调高**连续来回上限**。 |
| Agent HUD 认不出是哪个会话在调用 | 只有 Claude Code、Codex、Antigravity 与 DeepSeek Harness 的会话能发消息。 |

---

English: https://agenthud.app/docs/en/mcp/messaging/
