Skip to content

收敛 A2A 扩展协商与承载实现到官方最佳实践 #426

@liujuanjuan1984

Description

@liujuanjuan1984

背景

对照 a2a-python 1.0+ 的扩展实践复审后,当前仓库在扩展协商与承载方式上仍有缺口,需要单独跟进。

发现

  1. AgentCard.capabilities.extensions 已按 SDK v1 推荐声明扩展能力。
  2. 客户端当前只把扩展 URI 放进 Message.extensions,没有通过 ClientCallContext.service_parameters 发出 A2A-Extensions 请求头。
  3. 服务端虽已通过 SDK 默认 ServerCallContextBuilder 读取 A2A-Extensions 并填入 requested_extensions,但仓库主路径没有消费 requested_extensions,共享扩展行为仍只依赖 metadata.shared.* / metadata.opencode.*
  4. 共享扩展中的 session binding / model selection / streaming 已经主要承载在标准 A2A 方法上,但 provider-private 能力仍大量通过 opencode.* JSON-RPC 方法暴露。

期望

  • 客户端按官方推荐显式发送 A2A-Extensions
  • 服务端基于 requested_extensions 真正参与扩展协商,而不是只声明能力或被动读取 header。
  • 共享扩展继续优先承载在标准 A2A 方法上,并明确哪些 provider-private 方法仍保留为自定义扩展接口。
  • 补齐测试与文档,确保扩展声明、协商和运行时行为一致。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions