跳至主内容
博客

AI SRE 和你的 Agent 可以互相派活了

在控制台登记一个外部 Agent,AI SRE 就能把任务整个派过去,进度流式地回到对话里;反过来,AI SRE 自己也提供标准 A2A 接口,可以接受别的 Agent 派活。

Flashduty 工程团队

AI SRE 和你的 Agent 可以互相派活了

一条来自 Flashcat 事件墙、灭火图或北极星的告警进入 AI SRE 后,排查往往需要 FlashAI 继续分析。FlashAI 有自己的模型、提示词和数据访问能力,也可能运行在另一套网络里。此时把排查过程拆成一连串工具调用,不仅难以表达完整目标,也让 AI SRE 承担了本应由 FlashAI 做的判断。更合适的做法是把整个分析任务交给 FlashAI,再接收它的进度和结论。

这就是 A2A(Agent-to-Agent)解决的问题。它是 Google 发起的开放协议,允许 AI SRE 把完整任务交给外部 Agent,也允许其他 Agent 把任务交给 AI SRE。控制台提供「连接 FlashAI」模板;接入自有 Agent 时,则登记地址、认证方式和调用说明。

工具和 Agent 不是一回事

MCP 和 A2A 的工程分界,不在于接口长什么样,而在于谁负责决定下一步。

MCP 工具A2A Agent
下一步由谁决定AI SRE 决定调用顺序远端 Agent 自己推进任务
交互方式一次请求、一次响应任务可能持续数分钟,也可能等待输入或授权
状态和失败基本无状态,失败表现为报错保留对话状态,也可以正常回复「无法完成」

如果 AI SRE 需要自己编排每一步,就用 MCP;如果对方需要结合自己的上下文完成一段工作,就用 A2A。我们在从 MCP 到 CLI里讨论过工具接口的取舍;在产品里,连接器目录中的第三方系统走 MCP,外部 Agent 走 A2A。

派出去的任务长什么样

委派的唯一入口是一个异步工具,调用后立即返回任务号,AI SRE 可以继续处理当前对话。远端进度流式写入独立任务卡:卡片带 A2A 徽标,显示 Agent 名、任务、当前状态、工具调用数、Token 和耗时;完整过程可在侧边面板查看。远端需要补充输入或授权时,任务会暂停并说明在等什么,不会被记为失败。结束后,结果作为新消息回到对话。

一个会话最多并行 20 个任务,任务结束后释放名额;委派链最多三层,单次调用最长 30 分钟。连接失败与 Agent 启动较慢使用不同的超时:不可连接会快速失败,加载模型或读取上下文不会被启动超时误判。

怎么让 AI SRE 知道该找谁

「调用说明」告诉 AI SRE 何时选择这个 Agent。它分为常驻的 summary 和首次实际委派时才加载的正文:

---
summary: 一句话说清楚这个 Agent 擅长什么、什么时候该优先派给它
---
正文:具体怎么调,措辞要求、前置条件、输出格式、什么情况不要派给它……

选择 Agent 时,AI SRE 只看到名称和简介,因此简介应写清产品、动作和适用场景。调用规则、前置条件、输出格式和反例放在正文即可。整份说明上限 50 KB,简介上限 1024 个字符。

请求从哪里发出去

出站请求不从 Flashduty 服务端发出,而是从当前会话所在的执行环境发出:云端环境或你部署的 Runner。内网 Agent 需要由能访问该网络的 Runner 调用。

出站请求从会话所在的执行环境发出,不经过 Flashduty 服务端;内网里的 Agent 只有同在内网的 Runner 够得着

「执行环境」不是转发路由。调用始终在会话自己的环境中运行,这个配置只决定 Agent 在哪些环境中可用。如果只有一台 Runner 能访问 Agent,就只选择那台 Runner。当前环境不可达时,AI SRE 会得到明确原因,而不是看到 Agent 从清单中无声消失,从而可以改用其他方案。

地址可以填写服务根地址,由平台按 A2A 约定查找 /.well-known/agent-card.json;也可以填写完整路径并按原样读取。平台不会主动扫描 Agent,仍需在控制台登记。

认证有三种给法

认证方式对应三种边界:

  • 全账户共用:登记一次 Bearer Token 或 API Key,账户内所有会话共用,适合团队共享远端账号。
  • 每人一把密钥:首次调用时由用户填写,密钥按用户加密保存在账户中,适合按人授权或计费。
  • 每人一次 OAuth(OAuth 2.1):首次调用自动发起授权,凭证按用户隔离。

OAuth 请求也从所选执行环境发出,可以是云端 Sandbox,也可以是能访问内网授权服务的 BYOC Runner。所有已存密钥在界面中均以掩码返回,编辑时留空表示保留原值。

默认方式是全账户共用。如果远端能执行高风险写操作,应改用个人密钥或个人 OAuth,避免把同一凭证暴露给账户内所有会话。

我们自己也是一个 A2A Agent

AI SRE 也发布 Agent Card,任何 A2A 客户端都可以调用:

curl -H "Fd-App-Key: $APP_KEY" \
  https://api.flashcat.cloud/safari/a2a/ai-sre/agent-card

它声明三项能力:端到端定位故障根因,在指定时间窗查询并总结服务日志,以及查询并总结指标。外部客户端与产品内部使用同一条接口,没有特权通道。

Agent Card 还声明了可选扩展,调用方可以在消息中指定执行环境,以及结果是否出现在会话列表。不使用扩展也能正常调用,无需为 AI SRE 做额外适配。

边界

委派后,AI SRE 只能看到远端主动上报的状态;远端内部执行了什么、使用了哪些工具,除非随进度返回,否则不可见。

系统不自动重试。委派中途断流时,原因会写入任务结果,由 AI SRE 判断是否再试,最多一次。这样不会在不知情的情况下重复执行远端操作。

从哪儿开始

入口在控制台的 AI SRE → A2A Agents。Flashcat 告警和故障可以从「连接 FlashAI」模板开始;自有 Agent 则填写地址、认证方式和调用说明。

完整的字段说明和 Agent Card 的接口细节在文档里。

相关阅读