As the Agent-to-Agent Protocol matures past 1.0, Google adds automated proto file validation — a sign the spec is ready for enterprise implementation.
The A2A repository now runs Google's API Linter on every pull request. Any proto file changes that violate Google's API design guidelines will fail CI before merge.
This sounds mundane — most mature APIs have automated linting. But for a protocol that just shipped 1.0 and is being implemented across the industry, it signals a transition from "experimental spec" to "production infrastructure."
Google's API Linter enforces hundreds of rules from the API Improvement Proposals (AIP) guidelines. For A2A's proto files, this means:
snake_case, RPCs follow PascalCaseThe companion commit that adjusted ListTasksRequest.tenant field numbering shows the linter already catching issues.
When you're building an A2A client or server, you want confidence that:
Automated linting provides that confidence in a way that human review cannot.
A2A is designed for AI agents to communicate across organizational boundaries. Inconsistent proto definitions would cascade into incompatible implementations. The linter prevents this at the source.
Context: A2A 1.0 shipped in January. Within a month, the project has added a DeepLearning.AI course, HTTP caching guidance, and now automated spec validation. This is rapid maturation.
New contributors get immediate feedback on whether their proto changes meet guidelines. No more back-and-forth in code review about naming conventions — the CI catches it automatically.
The workflow adds a new CI job that runs on all PRs:
name: API Linter
on:
pull_request:
paths:
- '**/*.proto'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: googleapis/api-linter-action@v1
with:
args: --config .api-linter.yaml proto/**/*.proto
The configuration allows project-specific rule customization where A2A intentionally diverges from Google's internal conventions.
Today's A2A activity also includes several spec fixes from Yaroslav (@yarolegovich):
ListTaskPushNotificationConfigsCancelTaskRequestThese are exactly the kind of refinements you'd expect as implementations hit edge cases — and exactly what the linter will help prevent in future changes.
Expect continued polish as A2A moves toward 1.1. The llms-full.txt script update suggests the team is also thinking about how to make the spec more consumable by AI agents themselves — a nice bit of dogfooding.