Of course. Here is a comprehensive project specification that consolidates our entire conversation into a formal plan.
- Project Name: A2A Registry
- Version: 1.0
- Date: August 9, 2025
- Domain:
a2aregistry.org
The A2A Registry will be a community-driven, open-source directory of AI agents designed to solve the critical problem of agent discovery. Using a "Git as a Database" model, the project will leverage GitHub for data submission, validation, and hosting. The registry will be accessible to humans via a public website (www.a2aregistry.org) and to agents programmatically via a static API endpoint and a dedicated Python client library.
The core principle is to provide a simple, transparent, and robust platform that fosters an ecosystem of interoperable AI agents.
The project consists of three main, tightly integrated components.
2.1. The Git Repository (Source of Truth)
The single GitHub monorepo is the heart of the project.
- Platform: GitHub
- Structure:
/.github/workflows/: Contains GitHub Actions for all automation./agents/: The "database." A flat directory where each.jsonfile is a unique agent entry./docs/: Contains the static files for the website hosted on GitHub Pages./client-python/: The source code for the Python client library.
- Agent Data Schema: Each agent file in
/agents/must be a JSON object validating against a defined schema. Required fields include:name(string): The agent's display name.description(string): A brief explanation of the agent's purpose.author(string): The name or handle of the creator.wellKnownURI(string, URI): The/.well-known/agent-card.jsonURI for validation.capabilities(array of strings): A list of tasks the agent can perform (e.g., "image-generation", "data-analysis").
2.2. The Automation Pipeline (CI/CD)
All validation and publishing is handled automatically by GitHub Actions.
- Workflow 1: PR Validation (
validate-pr.yml)- Trigger: On Pull Request to the
mainbranch with changes in the/agentsdirectory. - Steps:
- Validates the submitted JSON file against the official schema.
- Performs an HTTP request to the provided
wellKnownURI. - Compares key data between the submitted file and the fetched
agent-card.jsonto verify ownership. - Posts a success or failure status comment on the PR.
- Trigger: On Pull Request to the
- Workflow 2: Publish (
publish.yml)- Trigger: On push (merge) to the
mainbranch. - Steps:
- Consolidate Data: Reads all files in
/agentsand compiles them into a singleregistry.jsonfile. - Deploy Website: Deploys the contents of the
/docsdirectory AND the newly generatedregistry.jsonto GitHub Pages. - Publish Client: (If changes in
/client-python/are detected) Builds and publishes the package to PyPI.
- Consolidate Data: Reads all files in
- Trigger: On push (merge) to the
2.3. The Public Endpoints (Services)
These are the user-facing parts of the registry.
- Website:
https://www.a2aregistry.org- A static, searchable website that fetches data from
registry.jsonto provide a human-readable view of the agents.
- A static, searchable website that fetches data from
- API Endpoint:
https://www.a2aregistry.org/registry.json- A static JSON file containing the entire agent registry. This is the primary endpoint for all programmatic access.
- Python Client:
pip install a2a-registry-client- A lightweight, installable library that simplifies fetching and filtering agents from the registry for Python developers.
3.1. Submitting an Agent:
- A developer forks the repository.
- They create a new file:
/agents/my-cool-agent.json. - They submit a Pull Request.
- The CI pipeline validates their submission and provides feedback.
- A maintainer reviews and merges the PR. The agent is now live.
3.2. Consuming the Registry:
- Via an Agent/Script: An agent makes an HTTP GET request to
https://www.a2aregistry.org/registry.jsonto get the full list of agents, then filters the data locally. - Via the Python Client: A developer runs
pip install a2a-registry-clientand uses simple functions likeregistry.find_by_capability("weather-forecast"). - Via a Web Browser: A user visits
https://www.a2aregistry.orgto browse and search for agents.
Phase 1: Minimum Viable Product (MVP)
- Set up the GitHub repository and file structure.
- Define and publish the official Agent JSON Schema.
- Implement the
validate-pr.ymlGitHub Action. - Implement the
publish.ymlAction to generate and deployregistry.json. - Launch a basic placeholder page at
www.a2aregistry.org.
Phase 2: Usability & Tooling
- Develop and publish the first version of
a2a-registry-clientto PyPI. - Build a functional, searchable user interface for the website.
- Write comprehensive documentation (
README.md,CONTRIBUTING.md).
Phase 3: Community Growth
- Promote the registry to attract the first 20 agent submissions.
- Establish a clear governance model for project maintainers.
- Explore advanced features like semantic search or agent health checks.