Skip to content

a2a‑go is a reference Go implementation of the Agent‑to‑Agent (A2A) protocol by Google, including the proposed interoperability with the Model Context Protocol (MCP) from Anthropic.

License

Notifications You must be signed in to change notification settings

TheApeMachine/a2a-go

Repository files navigation

🌈 A2A‑Go

"Combine A2A and MCP to create advanced agentic systems!"

Go CI/CD Go Report Card GoDoc License: UNLICENSE Bugs Code Smells Duplicated Lines (%) Lines of Code Reliability Rating Security Rating Technical Debt Maintainability Rating Vulnerabilities

A2A‑Go

a2a‑go is a reference Go implementation of the Agent‑to‑Agent (A2A) protocol by Google, including the proposed interoperability with the Model Context Protocol (MCP).

🚧 Work in progress 🚧 Consider this project a proof of concept at best, and subject to sudden changes.

✨ Features

  • Agent‑to‑Agent (A2A) protocol implementation

    • Send Task to send a new task to an agent
    • Get Task to retrieve a task by ID 🔜
    • Cancel Task to cancel a task 🔜
    • Stream Task to stream the task results 🔜
    • Set Push Notification to configure push notifications for a task 🔜
    • Get Push Notification to retrieve the push notification configuration for a task 🔜
    • Structured Outputs to return structured data from an agent
    • Fine‑tuning to fine‑tune an agent on a dataset
    • Image Generation to generate images with an agent
    • Audio Transcription to transcribe audio
    • Text‑to‑Speech to convert text to speech
  • Model Context Protocol (MCP) interoperability

    • Tool Calling to call tools and receive the results
    • List Prompts to retrieve a list of prompts from an agent 🔜
    • Get Prompt to retrieve a prompt by ID 🔜
    • Set Prompt to create or update a prompt 🔜
    • Delete Prompt to delete a prompt by ID 🔜
    • List Resources to retrieve a list of resources from an agent 🔜
    • Get Resource to retrieve a resource by ID 🔜
    • Set Resource to create or update a resource 🔜
    • Delete Resource to delete a resource by ID 🔜
    • Sampling to sample a task from an agent 🔜
    • Roots to get the root task for a task 🔜
  • Built‑in tools

    • Browser to browse the web 🔜
    • Docker to run Docker commands 🔜
    • GitHub to search GitHub 🔜
    • Memory to store and retrieve memories 🔜
    • Qdrant to store and retrieve vectors 🔜
    • Neo4j to store and retrieve graph data 🔜

🚀 Quick Start

Run the docker-compose.yml for a full distributed system, demonstrating A2A and MCP interoperability.

docker compose up

To run individual, more contained examples, use the example cli command.

a2a-go example <example-name>

Add the --interactive flag to run the example in interactive mode.

a2a-go example <example-name> --interactive

All example code lives in the examples directory.

About

a2a‑go is a reference Go implementation of the Agent‑to‑Agent (A2A) protocol by Google, including the proposed interoperability with the Model Context Protocol (MCP) from Anthropic.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages