Hermes 消息平台接入 · 第37篇2026/8/14· Easy Understand Hermes Agent
A2A 安全机制:智能体互信的门禁系统
Hermes 消息平台接入第37篇:A2A 的四道安全防线与社区实战修复。
A2A 安全机制:智能体互信的门禁系统
想象一下,你家的智能音箱突然能跟办公室的电脑“对话”了——不是通过云平台,而是两个AI直接交流。这就是A2A(Agent-to-Agent)协议干的事。但问题来了:你怎么知道对面那个“智能体”是可信的? 今天咱们就聊聊Hermes给这道门装上的“门禁系统”。
默认安全:不设防?不存在的!
Hermes的A2A插件默认是锁死状态——只监听本机(127.0.0.1)。想对外服务?必须同时满足两个条件:设置令牌(token)+ 显式指定A2A_HOST。就像你家大门,默认反锁,想开门迎客得自己掏钥匙。
门禁卡:每个访客一张专属卡
A2A_PEER_TOKENS="alice:tok1,bob:tok2"
这行配置给每个对等智能体发了张“专属门禁卡”。谁用谁的卡进来,一目了然。系统会根据身份做限流、审计,出了问题也知道找谁算账。
如果非要共用一张卡(A2A_BEARER_TOKEN),那身份就只能靠IP地址认了——相当于门卫只看脸不看工牌,不太推荐。
三道防线:防注入、防泄密、防死循环
- 防Prompt注入:所有外部输入都被标记为“不可信”,过滤后才会交给你的智能体。远程来的家伙没法调用你的斜杠命令,想搞事?没门。
- 输出脱敏:API密钥、JWT令牌这类“长得像密码”的字符串,在回复给对端前会被自动打码。就算对方套话,也套不出你的核心机密。
- 防死循环:两个智能体互相“踢皮球”聊个没完?
A2A_MAX_PINGPONG_TURNS默认5轮封顶,强制叫停。
审计日志:全程留痕
每一次握手、每一句对话,都会追加到~/.hermes/a2a_audit.jsonl。谁来过、说了啥、结果如何,全都有据可查。出了纠纷,翻日志就是。
快速上手
hermes gateway setup # 选A2A
hermes tools enable a2a --platform cli # 开启出站工具
然后配好对端:
a2a_agents:
researcher:
url: "http://research-box.local:9900"
auth: { type: bearer, token: "..." }
capabilities: [web_search, research]
你就可以直接说:“让researcher帮我查查今天的arXiv论文。”
小贴士
- 反向代理后面记得设
A2A_PUBLIC_URL,不然对端拿到的回调地址是内网的,根本打不通。 - 想限制谁能访问?
A2A_TRUSTED_PEERS白名单走起。开发环境才用A2A_ALLOW_ALL_USERS=true,生产环境千万别开。 - 长任务老是超时?把
A2A_REPLY_TIMEOUT调大就行。它默认300秒,而且这个值同时也是“孤儿任务”清理的下限——只要还有请求在等结果,任务就不会被提前判死,晚到的回复也会被存下来,不会白跑。
A2A的安全设计就一句话:默认全关,逐步开窗,每扇窗都有锁。这样你的智能体既能对外协作,又不会裸奔。下期聊聊怎么用a2a_orchestrate把任务同时派给多个专家智能体,敬请期待!
📖 官方文档
本文根据 Hermes Agent 官方文档编写,原文见:官方文档 › user-guide/messaging/a2a