乐于分享
好东西不私藏

让两个AI助手互相聊天:实战教程

让两个AI助手互相聊天:实战教程

你有没有想过,让两个 AI 助手直接对话?

不是那种"让 A 生成大段文字粘贴给 B"的笨办法,而是真正的——A 说一句话,B 在微信上聊天一样自然。

我最近把这事做出来了:

上面是实际的对话记录。小智和小慧两个 AI 助手在 Telegram 里互相聊天,讨论各自负责的服务状态、帮对方排查问题,完全自主。

━━━━━ 为什么要这么做 ━━━━━

我有两台机器在跑各自的 AI 助手(基于 Hermes Agent):

小智:跑在家里的本地机器上,负责日常任务

小慧:跑在云服务器上,负责远程运维

以前我想让小慧帮忙查个磁盘空间,得自己 SSH 上去看,或者在两个聊天窗口之间转发消息。现在我只需要对小智说一句"帮我问小慧服务器磁盘还剩多少",剩下的全自动。

━━━━━ 核心原理:Webhook 触发 ━━━━━

整个方案的核心就一句话:完整的 agent 能力,能调用工具、能读文件、能记住上下文。就像你直接跟 B 说话一样。

具体流程:

1. 小智调用 ask_xiaohui 工具 → 发送 HTTP POST 到小慧的 webhook 端口

2. 小慧的 gateway 收到请求 → 触发一个完整的 agent session

3. 小慧处理完后 → 调用 ask_xiaozhi 工具回复

4. 小智收到回复 → 转发给用户

关键点:不是简单的 API 调用,而是触发完整的 agent 会话。小慧收到消息后可以自主决定要不要查日志、跑命令、甚至再问小智要更多信息。

━━━━━ 怎么搭的 ━━━━━

第一步:开启 Webhook 平台

在两边的 config.yaml 里都加上 webhook 配置:

platforms:
  webhook:
    enabled: true
    extra:
      host: 0.0.0.0
      port: 8644
      secret: your-shared-secret
      routes:
        partner_name:
          secret: your-shared-secret
          prompt: "[来自对方的消息]\n\n{message}"
          deliver: telegram
          deliver_extra:
            chat_id: "your-chat-id"

第二步:写桥接工具

每边写一个 Python 工具,核心就是 HMAC 签名 + HTTP POST:

import hmac, hashlib, requests

def send_to_partner(message):
    body = json.dumps({"message": message, "session_id": "bridge-main"})
    signature = hmac.new(
        SECRET.encode(), body.encode(), hashlib.sha256
    ).hexdigest()  # 纯 hex,不加前缀!
    
    requests.post(
        PARTNER_WEBHOOK_URL,
        data=body,
        headers={
            "Content-Type": "application/json",
            "X-Webhook-Signature": signature
        }
    )

第三步:注册到 toolset

把工具注册到 messaging toolset,这样 agent 在需要时会自动调用。

━━━━━ 踩过的坑 ━━━━━

坑1:签名格式

HMAC 签名必须是纯 hex 字符串,不能加 sha256= 前缀。加了就 401。

坑2:session_id 很重要

如果不指定固定的 session_id,每次消息都会创建新会话,对方记不住上下文。

坑3:防止无限循环

A 问 B,B 回 A,A 又问 B... 需要在 prompt 里明确告诉 agent"这是桥接消息,处理完直接回复,不要再转发"。

坑4:网络可达性

两台机器之间需要网络互通。我用的 Tailscale 组网,内网 IP 直连,不用暴露公网端口。

━━━━━ 开源了 ━━━━━

完整代码和配置模板已经开源:

github.com/dute8505/hermes-agent-bridge-tutorial

包含:

- 完整的 README 教程(中文)

- 可直接复制使用的桥接工具模板

- 所有敏感信息已脱敏为占位符

如果你也在玩 AI Agent,想让多个 agent 协作起来,可以参考这个方案。核心思路很简单:webhook 触发 + HMAC 认证 + 固定 session。

 最省事方案,直接把项目地址喂给你的agent,让它自己就解决了。

━━━━━ 写在最后 ━━━━━

说实话,看着两个 AI 自己聊起来的时候,还挺有意思的。它们会互相确认信息、主动提供帮助、甚至偶尔开个玩笑。

当然,目前还是"fire-and-forget"模式——发出去就不管了,等对方自己回。未来可能会加上同步等待模式,让对话更流畅。

有问题欢迎留言,我会尽量回复。