AAMP version matrix

AAMP has no single version number: 4 of its 8 repositories have never been tagged, and the string "AAMP 2.3" appears in no file in the corpus — it names a July 2026 IAB Tech Lab announcement.

AAMP is IAB Tech Lab's umbrella for agent-to-agent ad buying, expanded by the hub README as Agentic Advertising Management Protocols. It ships as 8 separate GitHub repositories rather than as one specification, and the README sets the versioning policy: Each repository uses independent semantic versioning. The next bullet promises releases via GitHub tags and release notes. The README has not been edited since April 2026; the first tag in any AAMP repository was cut on 8 July 2026.

IAB Tech Lab announced "AAMP 2.3" on 30 July 2026, and no file in any repository contains that string, so the number resolves to the announcement and to nothing in the code. The dates line up with the agents' minor line: buyer-agent's latest tag is v2.3.0, and seller-agent was tagged v2.3.3 the day before the release went out. No README, changelog or manifest in the corpus states that mapping or mentions the announcement, and seller-agent was tagged v2.4.1 six days after it.

What to pin today

An integration is possible by pinning and vendoring: seller-agent at a tag, the primitives at v0.5.0, the schemas copied into the implementer's own tree, and the umbrella number left out of the build. The seller-agent tag matters. Its README records that v2.3.3 and earlier ship a uv.lock stale against pyproject.toml, so uv sync --locked fails on those checkouts; the fix landed in v2.4.0.

What is not available is a version range or a single AAMP version to name in a contract. A commit SHA pins one of the 4 untagged repositories exactly but carries no signal: nothing announces that the repository moved. Vendoring costs the same — a copied schema set has no upstream version, so a change upstream is found by diffing.

The wire contract's package version

iab-agentic-primitives carries five tags and a CHANGELOG with an entry for one of them. The tag v0.5.0 points to commit 5fdbe57, and that commit's pyproject.toml reads version = "0.1.0". The bump to 0.5.0 landed one commit later, after the tag. Both reference agents pin the tag exactly, iab-agentic-primitives[client] @ git+https://github.com/IABTechLab/iab-agentic-primitives.git@v0.5.0, and buyer-agent/uv.lock records the v0.5.0 revision and the version 0.1.0 on two adjacent lines.

A tag pin ignores the number the package reports, so the mismatch only bites a dependency range. The primitives README says both agent repositories pin a compatible version range; neither does, and an implementer who follows that README and writes >=0.5,<0.6 gets no candidate, because the published package reports 0.1.0. The same README opens WORK IN PROGRESS — NOT YET RELEASED and says the library should not be depended on for production use, a notice that reaches anyone who inherits the library through an agent's dependency list.

Untagged repositories

None of the 4 untagged repositories sits on the path of a transaction; the four tagged ones do. agentic-direct declares "version": "1.0.0" in each of its three package.json files, and registry-agent-example declares the same in its one, so four manifests carry a version no tag corresponds to. None of the 4 has a .github/ directory, so none has a workflow that could cut a tag.

AAMP repositories on 12 August 2026: tag, kind, substance and hub listing. The version column shows the nearest git tag.
Repository Version Kind Substance In the hub README
agentic-rtb-framework v1.0 specification substantial Yes
iab-agentic-primitives v0.5.0 specification substantial No
seller-agent v2.4.1 reference implementation substantial Yes
agentic-audiences untagged specification partial Yes
agentic-direct untagged reference implementation partial Yes
buyer-agent v2.3.0 reference implementation partial Yes
AAMP untagged hub thin Yes
registry-agent-example untagged example thin Yes

agentic-audiences carries no tag. It calls itself "Draft v0.1" from inside a directory named v1.0, and its catalog-info.yaml still files the project as LiveRamp/user-context-protocol. Nothing in the repository declares how it connects to the other 7: the file that would, and three others, are among the empty files in the corpus.

Manifest versions

The policy the README quotes asks for semantic versions. Two tags are two-part rather than three: ARTF's only tag is v1.0, and the oldest of seller-agent's twelve is v2.0. For the three-part tags the mismatch is inside the repository.

seller-agent is tagged v2.4.1, its pyproject.toml reads 2.4.1, and the top released entry in its CHANGELOG is [2.4.1] — 2026-08-05. Then docs/api/openapi.json in that same repository declares "version": "1.0.0". buyer-agent has four tags, the latest being v2.3.0, which sits 24 commits behind the branch it points into, and its pyproject.toml still reads version = "0.1.0", its starting value. The repository has no CHANGELOG.

Three of the 8 repositories have CI: the primitives and the two agents. Their nine workflow files all run on pushes and pull requests, and none is triggered by a tag or publishes a release.

The ARTF protobuf

agentic-rtb-framework (ARTF) ships its protobuf twice under v1.0. The root copy opens edition = "2023"; the copy under rust/proto/ opens syntax = "proto3", and they disagree about where the telemetry field comes from: MetricsPayload.metric is typed BidRequest.Metric in the root file and BidRequest.Imp.Metric in the rust one. Only the second exists. Both copies of the vendored openrtb.proto define Metric inside Imp, and the root file's import path is not in its own tree either.

Citing a version

seller-agent v2.4.1 resolves to a commit and to the schemas that commit ships, and it is the one version string in AAMP a repository will back up. ARTF v1.0 resolves to a specification document that records a November 2025 release and to a git tag cut in July 2026. There is no smaller unit to cite: almost every JSON file under the primitives spec/ directory carries no $id, so an individual schema has no identifier of its own.

Two files under that directory do carry a $id. Both resolve to github.com/atc964/, a personal fork, rather than to an IABTechLab URL.

Frequently asked

What version of AAMP should I cite?
A repository name and a tag together, such as "AAMP seller-agent v2.4.1". The 4 untagged repositories have nothing to cite but a commit SHA.
Why does AAMP not have one version?
No artifact defines one. The hub README leaves cross-repository alignment to "governance coordination", and the corpus holds no shared manifest and no file that names a set of repository versions as a release. The README does not list all 8 repositories: the wire contract both agents import is missing from it.
Is AAMP 2.3 a real version?
No. The only AAMP-plus-number identifier anywhere in the corpus is the mock AGY-AAMP-001, in a seller-agent test fixture.

Related