Agent 协作(A2A)¶
Agent 协作(A2A)用于让一个 Agent 把需要其他专业能力、数据范围或工具权限的工作,委派给已授权的目标 Agent。两个 Agent 可以位于不同工作空间,并始终在各自的权限和行为边界内执行。
例如,负责故障响应的 Agent 可以把数据库诊断交给另一个空间中的数据库专家 Agent,再将返回的证据和建议汇总到当前任务。用户无需在多个工作空间之间重复描述问题,也不需要把目标空间的数据权限开放给调用方 Agent。
Beta
Agent 协作当前为 Beta 功能,仅支持 Obsy Agent Teams 服务下的 Agents 之间互相授权调用。它也不是第三方 Agent2Agent Protocol 接入入口。
Agent 协作能做什么¶
Agent 协作将能力发布、调用授权、任务委派和结果汇总串联起来,帮助团队:
- 复用专业 Agent:让数据库、SRE、安全、测试或成本分析等 Agent 继续专注各自职责;
- 隔离数据与权限:目标 Agent 使用自己的工作空间数据、Skill、MCP 服务和工具权限处理任务;
- 开展跨空间协作:调用方不需要直接获得目标工作空间的数据权限;
- 保留执行过程:当前任务会展示外部 Agent 调用的排队、执行和最终状态;
- 减少重复分析:目标 Agent 的结果会返回当前任务,由调用方 Agent 继续汇总和推进。
Agent 协作适合目标 Agent 拥有独有数据、工具、权限或领域知识的任务。如果当前 Agent 已经能够独立完成工作,通常无需额外发起协作。
flowchart LR
A[配置两个 Agent 的标识] --> B[目标 Agent 发布能力说明]
B --> C[目标 Agent 授权调用方]
C --> D[调用方 Agent 发起任务]
D --> E[目标 Agent 在自身边界内执行]
E --> F[结果返回并汇总到当前任务]
认识协作关系¶
进入 Agent 工作台的配置 > Agent 协作,可以查看当前 Agent 的名片和两类协作关系:
| 区域 | 说明 | 主要操作 |
|---|---|---|
| Agent 名片 | 展示当前 Agent 的唯一标识和对外能力说明。 | 首次配置 Agent 标识;检查和编辑对外能力说明。 |
| 授权给 | 展示哪些调用方 Agent 可以调用当前 Agent。 | 添加、编辑、启停或删除调用授权。 |
| 可调用 | 展示哪些目标 Agent 已授权当前 Agent 调用。 | 查看目标 Agent、所属工作空间、能力说明和在线状态。 |
建立一条跨空间协作关系时,需要由目标 Agent所在空间完成授权。例如,Agent A 需要调用 Agent B,应在 Agent B 的授权给页签中添加 Agent A 的标识。保存后,Agent B 会出现在 Agent A 的可调用列表中。
开始前准备¶
配置 Agent 协作前,请确认:
- 调用方和目标 Agent 均已创建并完成运行服务部署;
- 两个 Agent 当前可用,并已分别配置便于识别的职责和行为边界;
- 您已获得两个 Agent 的管理人员配合;
- 目标 Agent 已启用完成委派任务所需的 Skill、MCP 服务和数据权限;
- 团队已经明确哪些任务可以委派,以及哪些操作仍需人工确认。
空间拥有者、管理员和当前 Agent 的创建者可以维护该 Agent 的名片与调用授权。其他可访问成员只能查看。Agent 创建中、离线、停用或暂不可用时,协作配置会切换为只读。
第一步:配置 Agent 标识¶
Agent 标识是一个 Agent 在协作关系中的唯一身份。调用授权、能力识别和任务委派都以该标识为准。
- 进入目标 Agent 的工作台。
- 打开配置 > Agent 协作。
- 在 Agent 标识中输入便于识别的前缀。
- 检查系统生成的完整标识。
- 点击保存,并在二次确认中确认标识无误。
标识前缀需要符合以下规则:
- 长度为 3–32 个字符;
- 以小写英文字母开头;
- 仅使用小写字母、数字和单个连字符(
-); - 不能以连字符结尾。
系统会在前缀后自动添加当前 Agent 的专属后缀。例如,输入 database-diagnostics 后,完整标识可能为:
注意
完整 Agent 标识确认后将永久生效,不能再次修改。保存前请使用能够长期代表职责的名称,不要加入临时项目名、环境名或人员姓名。
调用方 Agent 也建议先完成 Agent 标识配置。添加授权时,需要把调用方的完整 Agent 标识提供给目标 Agent 的管理人员。
第二步:完善对外能力说明¶
对外能力说明用于告诉其他 Agent 当前 Agent 擅长什么,以及什么情况下适合调用。系统会根据 Agent 名称、所属工作空间和描述生成默认内容,您可以按实际职责继续编辑。
建议写明:
- Agent 的专业职责和主要服务对象;
- 可以使用的数据范围、Skill 或工具类型;
- 适合处理的任务和期望输入;
- 可以返回的结果;
- 不处理的任务或必须人工确认的操作。
示例:
我是数据库诊断 Agent,来自数据库运维工作空间。
我可以分析数据库 Query、慢 SQL、连接池、锁等待和容量风险,并返回证据、影响范围和优化建议。
请提供数据库对象、异常时间范围和需要判断的问题。默认只执行只读分析,不直接修改数据库配置或执行 SQL。
能力说明应具体、可判断。仅填写“可以处理各种问题”会让调用方难以判断何时需要协作。
第三步:授权调用方 Agent¶
由目标 Agent 的管理人员完成以下操作:
- 进入目标 Agent 的Agent 协作页面。
- 打开授权给页签。
- 点击添加授权。
- 填写调用方 Agent 的完整 Agent 标识。
- 选择权限模式。
- 按需填写调用边界。
- 保存授权,并保持授权开关启用。
| 配置项 | 说明 | 使用建议 |
|---|---|---|
| 调用方 Agent 标识 | 唯一确定获得授权的调用方 Agent。 | 从调用方 Agent 的名片中复制完整标识,避免手动输入错误。 |
| 权限模式 | 控制目标 Agent 执行委派任务时的确认方式。 | 生产和敏感场景优先使用默认权限。 |
| 调用边界 | 进一步限定允许处理的任务、数据范围或操作类型。 | 使用可判断的规则,例如“仅处理数据库只读诊断,不执行配置修改”。 |
| 启用状态 | 控制该调用方是否还能发起新的协作。 | 新增授权保存后默认启用;需要暂停新调用时,可在授权卡片上关闭开关。 |
权限模式包括:
| 权限模式 | 执行方式 | 适用场景 |
|---|---|---|
| 默认权限 | 目标 Agent 沿用常规确认规则;如果委派任务中的动作需要人工审批,外部调用无法代为确认,本次调用会以已拒绝结束。 | 首次接入、只读诊断、生产数据和边界尚未完全验证的场景。 |
| 完全访问权限 | 目标 Agent 可以在自身已有能力范围内直接执行,不再逐次请求确认。 | 来源可信、范围稳定且团队已完成风险评估的低风险自动化。 |
完全访问权限只调整确认方式,不会扩大目标 Agent 的数据范围、Skill、MCP 服务、工具权限或行为边界,也不能绕过调用边界和系统安全限制。
保存后,返回调用方 Agent 的Agent 协作 > 可调用页签,确认目标 Agent 已出现,并检查其能力说明和在线状态。
第四步:在任务中使用协作¶
协作关系建立后,用户仍从调用方 Agent 的我的任务发起工作,无需预先选择目标 Agent、打开额外会话或手动调用工具。
- 进入调用方 Agent 的工作台。
- 新建任务或打开已有任务。
- 像平时一样描述需求并发送。您可以指定某个 Agent 处理其中一项工作,也可以只说明任务目标、需要分析的对象、所在空间和期望结果;当需求超出当前 Agent 的数据范围或能力边界时,它会自动判断是否需要调用已授权的外部 Agent 协同完成。
示例:
调用方 Agent 会先使用自身能力处理任务。当任务需要自身无法访问的数据或不具备的专业能力时,它会检查已授权的可调用 Agent 是否具备对应能力;匹配成功后,协作会自动发生。用户无需知道或输入目标 Agent 的名称。
目标 Agent 会在自己的工作空间、能力和权限范围内完成相应工作,并将结果返回调用方 Agent。调用方 Agent 会结合当前任务上下文汇总结果并统一答复,用户无需切换工作台或执行额外操作。
最佳实践:跨空间数据库故障诊断¶
以下示例演示如何让应用故障响应 Agent 调用另一个工作空间中的数据库诊断 Agent。
1. 准备两个 Agent¶
| 角色 | Agent 标识示例 | 职责 |
|---|---|---|
| 调用方 | incident-response_ab12cd |
汇总告警、日志、链路和变更,组织故障分析。 |
| 目标方 | database-diagnostics_27abcd |
查询数据库可观测数据,分析慢 SQL、连接和锁等待。 |
在目标 Agent 的对外能力说明中写清数据库类型、可访问数据和只读边界。
2. 添加调用授权¶
在数据库诊断 Agent 的授权给页签添加 incident-response_ab12cd:
| 配置项 | 示例值 |
|---|---|
| 权限模式 | 默认权限 |
| 调用边界 | 仅处理数据库只读诊断;不得修改参数、执行 SQL 或重启实例。 |
| 启用状态 | 启用 |
3. 发起任务¶
在故障响应 Agent 中输入:
分析订单服务从 15:20 开始出现的超时。
请先关联当前空间中的告警、日志和链路,再调用 database-diagnostics_27abcd 检查同一时段的慢 SQL、连接池和锁等待。
最终输出时间线、双方证据、最可能原因、影响范围、下一步验证和需要审批的操作。
4. 核对结果¶
确认任务中出现数据库诊断 Agent 的调用卡片,并等待状态变为已完成。最终答复应区分调用方和目标方提供的证据;如果目标 Agent 返回的信息不足,应继续补充对象、时间范围或具体验证问题,而不是直接扩大权限。
常见问题¶
| 问题 | 排查建议 |
|---|---|
| 添加授权不可用 | 确认当前 Agent 已配置 Agent 标识、账号具有管理权限,并且 Agent 当前可用。 |
| 目标 Agent 未出现在可调用列表 | 确认授权添加在目标 Agent 上、调用方标识填写正确、授权开关已启用,然后刷新页面。 |
| 任务没有发起外部调用 | 确认目标 Agent 在线且出现在可调用列表;如果必须协作,在任务中明确指定目标 Agent 和委派范围。 |
| 调用被拒绝 | 检查目标 Agent 的对外能力说明、权限模式、调用边界和行为边界,缩小任务范围后重试。 |
| 调用失败 | 检查两个 Agent 的运行状态、授权是否仍有效,以及目标 Agent 所需 Skill、MCP 服务和数据权限是否可用。 |
| Agent 标识无法修改 | 标识在首次确认后即永久生效,这是用于保持授权关系稳定的预期行为。 |
停用一条授权后,调用方不能再发起新的调用。停用或删除授权都会取消排队中的调用,已经执行中的调用则会继续完成。操作前请先确认是否仍有正在运行的跨 Agent 任务。
使用建议¶
- 按专业职责拆分 Agent,不要为了协作而创建职责高度重叠的 Agent;
- Agent 标识使用长期稳定、便于识别的职责名称;
- 对外能力说明同时写清“能做什么”和“不能做什么”;
- 首次授权使用默认权限,并为生产场景设置明确的调用边界;
- 在任务中只传递完成委派所需的信息,不要包含密钥、Token 或无关敏感数据;
- 定期检查授权给和可调用列表,停用或删除不再需要的协作关系。
