饭碗端稳,四处溜达 个 人 博 客  ·  G A O L E X . N E T
共 四十七 篇
二〇二六年九月
不定期更新
AI

A2A打通后,AI先学会了拒绝

两台 Mac 上的 Hermes Agent 通过 A2A 双向协作;真正重要的结果,是敏感配置在未获本人直接授权时被拒绝了。

这两天我一直没有写文章。

因为我把时间都花在了一件更有意思的事情上:让两台 Mac 上的两个 Hermes Agent,真正开始互相工作。

Mac mini 上运行着主 Agent“达达”,MacBook Air 上运行着“芬达”。芬达负责 Air 本机事务,达达负责统筹、整理和验收。

以前,它们已经共享 iCloud,也能通过 SSH 互相访问。但那不叫 Agent 协作。

iCloud 解决文件同步,SSH 解决远程操作。A2A 解决的是:一个 Agent 如何把任务交给另一个 Agent,由对方理解、执行,再把结果送回来。

两个 AI,不等于一个团队

A2A 是 Agent-to-Agent 协议。

如果说 MCP 解决“Agent 如何调用工具”,A2A 解决的就是“Agent 如何与另一个 Agent 协作”。

接通后,每个 Agent 都会公开一张 Agent Card,说明自己的身份、能力和通信方式。另一个 Agent 可以读取这张卡片,再向它提交任务、跟踪状态、获取结果。

目前,达达与芬达之间的网络、双向 SSH 和双向 A2A 都已打通。两端 Agent Card 可以互访,使用 A2A 1.0 的 JSON-RPC 接口,各自声明了 54 项能力。

iCloud、SSH 与 A2A 的三层分工

但它不是打开一个开关就结束了。

最初只有达达能调用芬达,反方向却一直超时。中间又遇到 IPv4 与 IPv6、HTTP Server 监听和 macOS 入站连接等问题。

直到两个方向都分别完成任务并返回 TASK_STATE_COMPLETED,我才把它认定为完成。

A2A 只通一个方向,不叫互通。

打通以后,它们真的开始干活

我先让达达改善输出排版:先说结论,使用短段落和清晰列表,避免大段文字堆在一起。

达达更新自己的记忆后,通过 A2A 把要求交给芬达。芬达完成本机记忆更新,再返回“已记录并生效”。

后来,我又让它们分别整理自己的热记忆。达达先处理本机内容,再通过 A2A 通知芬达执行同样的治理。芬达使用自己机器上的工具完成任务,并返回处理前后的数据。

这不是复制一份配置文件。

达达传递的是目标,芬达负责在自己的环境中完成。

两个 Hermes Agent 双向完成任务

最让我满意的,是一次拒绝

真正让我觉得 A2A 有价值的,并不是第一次收到 PONG,而是达达拒绝了芬达的一项任务。

当时,芬达通知达达:法律检索的默认数据源已经调整,要求同步修改 Skill、记忆和路由规则,并说明这是我已经确认的新口径。

达达检查后发现,这项通知与自己保存的旧规则直接冲突。法源路由又会影响后续法规、案例和企业信息的检索,属于敏感配置。

所以它没有因为“另一个 Agent 说主任已经同意”就直接采纳,而是回复:

我不能仅凭 A2A 转述反转这项规则。需要主任的原始指令,或者由主任直接向我确认。

随后,达达绕过芬达,单独给我的 Telegram 发来确认请求:

芬达转达您已调整法源检索口径,我这里的记录与此冲突。请直接确认是否反转?

直到我本人回复:

确认反转。

最终的全量同步,才以我的直接指令完成收口。

并行会话中还出现过部分先行处理。这反而提醒我:这样的安全边界不能只靠某次临场判断,必须变成所有 Agent 共同遵守的规则。

普通信息可以转达,敏感配置必须由我直接授权。

敏感配置停在人类直接授权闸门前

消息可以转发,权限不能转述

这个细节可能比整个网络配置更重要。

A2A 让 Agent 之间可以互相提交任务,但不能让一个 Agent 自动继承我的权限。

系统还需要明确:谁能给谁派任务,哪些任务可以直接执行,哪些信息必须独立核验,哪些变更必须由人本人授权,以及重复任务如何避免执行两次。

否则,A2A 只是把单个 Agent 的提示注入风险扩展到整个 Agent 网络。

真正可靠的 Agent,不是永远听话,而是知道什么时候不能听另一个 Agent 的话。

A2A 也没有替代 SSH

实际使用后,我发现两者是互补关系。

SSH 适合确定性操作:传文件、检查进程、修改配置和故障救援。

A2A 适合语义任务:让另一个 Agent 理解目标,结合自己的记忆、环境和工具完成工作。

SSH 执行我已经知道怎么做的事;A2A 把问题交给另一个具备判断能力的 Agent。

以前,达达和芬达只是分别运行在两台机器上的两个 AI,我仍然要在中间复制消息、转述要求、确认结果。

现在,它们可以同步偏好、整理记忆、互查状态、协助运维,也能在收到敏感任务时停下来向我确认。

这两天我完成的,不只是接通一个协议。

我开始为自己的 Agent 建立职责、协作和授权规则。

以前,我有两个 AI。

现在,我开始拥有一个 Agent 团队。