协议扩展
扩展机制的目标是“在统一核心协议上做差异化能力”,而不是“各做各的私有协议”。
扩展适用场景
- 仅补充结构化元数据
- 对交互流程施加领域约束
- 增加额外 RPC 方法(扩展技能)
- 细化任务状态语义
兼容性边界
为了保持互操作,扩展不应:
- 修改核心对象的 schema 合同
- 重定义核心枚举值
- 绕过核心认证和授权控制
自定义数据应放入 metadata,并配套明确 schema。
声明与激活
- 智能体在 AgentCard capabilities 中声明支持的扩展。
- 客户端按请求声明要激活的扩展,常见方式是
A2A-Extensions。 - 服务端在响应上下文中回显已激活扩展。
示例头:
A2A-Extensions: https://example.com/ext/konami-code/v1必选扩展
当扩展标记为 required: true 时,客户端必须遵守该扩展约束,否则请求应被拒绝。
实施建议
- URI 中显式包含版本号。
- 破坏性变更使用新 URI。
- 扩展规范放在稳定地址。
- 扩展输入的校验强度不低于核心协议。