🤖HermesBlog
Hermes 消息平台接入 · 第39篇2026/8/14· Easy Understand Hermes Agent

A2A 多轮对话:AI 之间的聊天记录是怎么接上的

Hermes 消息平台接入第39篇:A2A contextId 多轮对话机制与演进修复。

A2A 多轮对话:contextId 如何接上聊天记录 好嘞,今天咱们来聊聊一个特别有意思的话题:AI 之间是怎么“打电话”聊天的

你可能已经习惯了跟 ChatGPT、Claude 这些 AI 一对一聊天,但你想过没有——如果让一个 AI 去问另一个 AI 问题,它们俩的对话记录是怎么接上的?这就引出了今天的主角:A2A 协议(Agent-to-Agent)。

啥是 A2A?简单说就是 AI 界的“普通话”

A2A 是 Linux 基金会维护的一个开放协议(v1.0),专门让不同的 AI 智能体互相通信。注意,是“不同”——不管你是 Hermes、LangChain、CrewAI 还是 Google ADK 的智能体,只要会说 A2A 这门外语,就能互相聊天。

Hermes 的 A2A 插件是双向的:你的智能体能去调用别人,别人也能通过 HTTP 把任务丢给你。

什么时候用 A2A?

  • 跨机器的 Hermes 互聊:你电脑上的 Hermes 让服务器上的 Hermes 干活,各有各的记忆和工具。
  • 找专家帮忙:对方在它的“名片”(Agent Card)上写着会 web_searchresearch,你聊着聊着就能直接喊它。
  • 把自己变成服务:让别的框架的智能体也能给你派活。

不过注意:如果只是同一台机器上的多个智能体,用 delegation 或 kanban 更轻量。A2A 是给“跨进程、跨机器、跨框架”准备的。

怎么开启?

一条命令搞定:

hermes gateway setup      # 选 A2A

或者手动改 ~/.hermes/config.yaml

gateway:
  platforms:
    a2a:
      enabled: true
      extra:
        port: 9900

重点来了:外呼工具默认是关的,得手动开:

hermes tools enable a2a --platform cli        # 命令行用
hermes tools enable a2a --platform telegram   # 聊天平台用
hermes tools enable a2a --platform a2a        # 让进来的任务也能再呼别人(智能体套娃)

外呼:怎么让 Hermes 去问别的 AI?

开了工具后,你的智能体就多了几个“超能力”:

工具 干啥的
a2a_discover(url) 看看对方名片上写了啥本事
a2a_call(agent, message, context_id?) 发任务、拿回复;带 context_id 就能多轮聊
a2a_list() 查看已配置的伙伴、聊天记录、指标
a2a_history(context_id) 翻旧账,找回之前的对话
a2a_orchestrate(capability, message, mode?) 把任务群发给所有会某技能的智能体(all/first/best

config.yaml 里配好熟人:

a2a_agents:
  researcher:
    url: "http://research-box.local:9900"
    auth: { type: bearer, token: "..." }
    timeout: 120
    capabilities: [web_search, research]

然后直接说:“让 researcher 总结一下今天的 arXiv 论文。” 它就去办了。直接给 URL 也行,a2a_call 认任何 A2A 端点。

内呼:怎么让别人来问你?

开了平台后,Hermes 会提供:

  • Agent Card:在 /.well-known/agent-card.json(老路径 agent.json 也能用),写着你的名字、技能、认证要求。
  • JSON-RPC 2.0:在 POST / 上,支持标准方法(SendMessageGetTaskCancelTask 等)。
  • SSE 流式SendStreamingMessage 支持流式输出。
  • Webhook 推送:长任务干完了主动通知,HMAC-SHA256 签名。

进来的任务会注入到一个活的网关会话里——跟你其他渠道用的是同一个智能体、同一份记忆。对话靠 contextId 关联,所以对方能跟你多轮聊。

安全:默认锁门,钥匙自己配

Hermes 的安全模型是“默认安全,每开一道门都要你点头”:

  • 没 token?只能本机访问。服务器绑在 127.0.0.1,想远程访问必须设 token 和 A2A_HOST
  • 每个伙伴一个 tokenA2A_PEER_TOKENS="alice:tok1,bob:tok2",谁是谁清清楚楚。
  • 防提示注入:外部文本会被过滤,远程伙伴不能调用你的斜杠命令。
  • 防套娃死循环:每个对话有轮次上限,俩 AI 不会无限 ping-pong。

快速测试

从另一台机器:

curl http://your-host

能看到 Agent Card 就说明通了。


一句话总结:A2A 就是给 AI 装上了“电话线”,让它们能跨机器、跨框架地聊天、派活、记上下文。Hermes 这边开箱即用,安全默认拉满,想玩多轮对话?配好 token 就能开聊。

顺带提一句:如果对方任务跑得久、回复超时了,别急着以为消息丢了——把 A2A_REPLY_TIMEOUT 调大就行,孤儿任务清理会跟着这个值走,晚到的回复照样会存下来,不会被丢掉。

📖 官方文档

本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/a2a