Skip to content

Conversation

@bokelley
Copy link
Contributor

Summary

Add AdCP 2.5 protocol extension to agent card that declares AdCP version and supported protocol domains. Upgrades adcp library to 2.12.1 which provides the protocol version via get_adcp_version().

Changes

  • Add AgentExtension to capabilities.extensions in agent card
  • Extension declares: adcp_version "2.5.0" and protocols_supported ["media_buy"]
  • Upgrade adcp from 2.12.0 to 2.12.1 (fixes upstream version API)
  • Add comprehensive tests for extension validation

Test Plan

  • ✅ test_agent_card_adcp_extension: validates extension structure and values
  • ✅ test_well_known_agent_json_endpoint_live: validates HTTP endpoint response
  • ✅ All unit tests pass (988 passed)
  • ✅ All integration tests pass (50 passed)

- Add AgentExtension to agent card capabilities declaring AdCP version and supported protocols
- Extension URI: https://adcontextprotocol.org/schemas/2.5.0/protocols/adcp-extension.json
- Declares adcp_version: 2.5.0 and protocols_supported: [media_buy, creative, signals]
- Add comprehensive tests for extension in agent card (unit + integration)
- Update A2A README with AdCP 2.5 extension documentation

Per AdCP 2.5 spec, agent cards should declare their AdCP capabilities
via the capabilities.extensions field using the official adcp-extension schema.

Tests:
- test_agent_card_adcp_extension: validates extension structure and values
- test_well_known_agent_json_endpoint_live: validates extension in HTTP response
Addressing review feedback:
- Changed protocols_supported from [media_buy, creative, signals] to [media_buy]
- Added clear comments explaining protocol version vs library version
- Updated tests to expect only media_buy protocol
- Updated documentation to reflect current protocol support

The agent currently only implements the media_buy protocol domain.
Other protocols (creative, signals) are not yet supported.
The adcp library currently provides:
- __version__ (2.12.0) - library/package version
- get_adcp_version() (v1) - schema version

But does not provide the protocol version (2.5.0) needed for the
AdCP 2.5 agent card extension. This should be reported upstream
as a missing API.

Until fixed, we must hardcode ADCP_PROTOCOL_VERSION = '2.5.0'.
Upgrade to adcp 2.12.1 which fixes the upstream issue:
- get_adcp_version() now returns protocol version ("2.5.0")
- Previously returned schema version ("v1")

Changes:
- Upgrade adcp from 2.12.0 to 2.12.1 in pyproject.toml
- Import and use get_adcp_version() for protocol_version
- Remove hardcoded ADCP_PROTOCOL_VERSION constant
- Remove upstream issue TODO (fixed in 2.12.1)

The protocol version is now dynamically obtained from the library
instead of being hardcoded.
@bokelley bokelley merged commit a979cb6 into main Nov 24, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants