Sitelet https://github.com/auto-agent-protocol/auto-agent-protocol
Skip to content

Latest commit

 

History

48 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auto Agent Protocol

Auto Agent Protocol (AAP)

Spec version A2A License Validate

Brand assets: symbol, wordmark, and usage guidance.

AAP lets AI assistants shop at your car or motorcycle dealership.

New to the protocol? Read the AAP FAQ for its purpose, supported capabilities, assistant compatibility, and how to get started.

More and more car and motorcycle buyers start their search by asking an AI assistant. AAP is the free, open standard that lets any AI assistant find your dealership, browse your real inventory, and send you a sales lead with the customer's permission — straight into the systems you already use. You publish one small file on your own website, answer a few well-defined kinds of questions, and any AAP-capable agent can do business with you. No app store. No middleman. No per-partner integration projects.

Listings carry an optional vehicle_type (car, motorcycle, trailer, rv, other; absent = car), so the same five skills serve both automotive and powersports retail — including electric models via a generic electric-powertrain field group.

Dealers go live in three steps: publish the Agent Card, serve the skills they choose, and receive consented leads in their CRM

Why AAP: from a mesh of custom integrations to one open profile

For engineers: AAP is an open A2A v1.0 profile. A compliant dealer agent is an A2A agent that publishes an agent-card.json with the AAP automotive extension URI (https://autoagentprotocol.org/extensions/aap/v1.3) and implements one or more of the five standard AAP automotive skills (a small used-car lot might only do inventory.search + lead.submit; a franchise dealership might do all five).

The transport surface is deliberately minimal: every AAP agent exposes the JSON-RPC 2.0 binding — the sole transport (the optional HTTP+JSON binding was removed in v1.1.0); the only A2A operation AAP uses is SendMessage — request Message in, response Message out. The optional A2A surface (streaming, tasks, push notifications, extended cards) is out of scope: dealer agents do not need to implement it and buyer agents must not require it.

The Agent Card advertises the A2A binding, AAP extension, supported skill subset, and per-skill schema URLs

v1.3.0 Scope

v1.3.0 is the current release. It is fully additive over v1.2.0 and introduces interoperable dealer-fee disclosure. price remains the authoritative advertised vehicle price and includes every mandatory non-government dealer charge and required add-on. Optional { name, amount } fees arrays expose the complete itemized breakdown at vehicle level and default schedules at rooftop level. A truthful all-in price may stand alone; list_price and fees without price are informational and never become a consumer-facing price through client-side arithmetic. The five-skill vocabulary, A2A v1.0 wire, and JSON-RPC-only transport remain unchanged. v0.1.0 through v1.2.0 remain published and frozen for consumers pinned to them.

  • Discovery via /.well-known/agent-card.json only (A2A-compatible) — no second well-known file
  • Inventory: facets, search, vehicle detail — across cars and motorcycles via an optional vehicle_type discriminator, with motorcycle body/segment carried in body, displacement in displacement_cc, niche specs in a free-form other_attributes map, and a generic electric-powertrain group (range, battery kWh, motor hp, DC fast charge, charge port) for BEV/PHEV cars and motorcycles alike
  • Transparent pricing: one authoritative all-in price, optional complete vehicle fee itemization, optional rooftop fee defaults for publishers, and explicit handling for list-only and conditional-rebate data
  • Dealership information: group name, welcome message, and one or more rooftops (locations) with address, geo, contacts, hours, timezone, capabilities, and optional default fee schedules
  • Leads: a single unified lead.submit accepting a consented customer plus any combination of vehicle of interest, trade-in, and appointment
  • ADF/XML mapping documented for legacy CRM compatibility
  • Interoperability proven against the official A2A v1.0 client SDKs (@a2a-js/sdk and a2a-sdk for Python) — a standard A2A client can discover an AAP dealer and invoke every skill with no AAP-specific code

v1.3.0 does not cover: authentication (agents are public by default; auth is left to A2A's native securitySchemes), payments, financing approval, RFQ/quote flows, trade-in valuations, buyer-specific out-the-door calculations, or reservations.

How an AI agent shops: discover the dealer, search inventory, inspect one complete vehicle, and submit a consented lead

Quick links

The five skills

Skill Purpose
dealer.information Dealership profile, address, hours, capabilities
inventory.facets Aggregated counts and ranges over the dealer's inventory
inventory.search Filtered, paginated inventory queries (cars and motorcycles)
inventory.vehicle Detail view of one specific vehicle or motorcycle (by VIN, stock, or vehicle_id)
lead.submit Unified consented lead — customer + optional(vehicle of interest, trade-in, appointment)

Packages

AAP SDK: types, schemas, and validator packages generated from the reviewed contract

Package Description
@autoagentprotocol/types TypeScript types generated from JSON Schema
@autoagentprotocol/schemas Raw JSON Schema files as importable modules
@autoagentprotocol/validator Ajv-based validators for all AAP objects

Development

Prerequisites

  • Node.js 22+
  • pnpm 10+

Setup

pnpm install

Commands

pnpm run validate          # Validate schemas and examples
pnpm run generate          # Generate draft artifacts in generated/latest
pnpm run generate:images   # Regenerate tracked latest SVG diagrams in docs/img
pnpm run check:images      # Verify diagram sources, palette, references, and output
pnpm run check:releases    # Verify frozen snapshots and stable packages
pnpm run test:release      # Rehearse release and freeze invariants
pnpm run build             # Build the stable production site
pnpm start                 # Serve editable docs with an unreleased banner

Repository structure

spec/latest/               Editable JSON Schema 2020-12, examples, and skills manifest
spec/v*/                   Frozen released specs (committed, immutable)
docs/                      Editable documentation; served locally as an unreleased draft
docs/img/                  Editable, generated SVG diagrams used by the latest docs and README
versioned_docs/, versioned_sidebars/  Frozen release documentation snapshots
releases.json              Explicit release registry and stable-release pointer
releases/v*/               Frozen generated artifacts, provenance, reports, and integrity manifests
docs/skills/, bindings/    A2A binding + skill reference (committed)
packages/                  npm packages: types, schemas, validator (committed)
tools/image-specs.ts       Reviewed content source for every latest documentation diagram
tools/                     Generators and validators (committed)
src/components/            FieldCard React component (committed)

generated/latest/          Auto-generated draft types, OpenAPI, and MCP manifest (NOT committed)
static/v*/, static/latest/ Site assembly output copied from frozen snapshots (NOT committed where applicable)
build/                     Docusaurus production output (NOT committed)

Draft artifacts are produced by pnpm run generate; production assets are assembled by pnpm run copy-static. Published artifact snapshots are committed under releases/v*/ so a historical release is never regenerated with newer tooling.

Versioning

Released versions are immutable. Repository changes use spec/latest/; the public latest URL always points to the release selected by releases.json. There is no next channel. Each release has pinned schema URLs at https://autoagentprotocol.org/v{version}/schemas/. See the versioning policy and maintainer release guide.

How AAP relates to other protocols

Layer Protocol Role for AAP
Transport / data model (BASE) A2A v1.0 The base protocol AAP profiles. Every AAP message travels inside Message.parts[].data as a typed DataPart. AAP does not invent a wire format.
Adjacent / complementary ACP (Agentic Commerce), MCP (Model Context Protocol) ACP covers commerce checkout (out of scope for AAP). MCP can expose AAP skills as LLM tools — AAP publishes an official MCP reference manifest (generated from skills.yaml at build time and served at https://autoagentprotocol.org/v1.3/mcp.json).
Legacy / target system ADF/XML The 25-year-old dealer-CRM lead format. lead.submit is field-by-field mappable to ADF/XML so existing CRMs ingest AAP leads without code changes.

License

  • Specification and schemas: Apache-2.0 — chosen for its explicit patent grant, which protects every adopting dealership, platform, and SDK vendor; it is also the license of A2A itself.
  • Documentation prose: CC-BY-4.0

Security

See SECURITY.md for how to report a vulnerability in the spec, schemas, or packages.

Contributing

See the Contributing guide for details on proposing changes, and CODE_OF_CONDUCT.md for community standards.

About

Automotive Agent Protocol

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

110 stars

Watchers

0 watching

Forks

Contributors

Languages