A2A Coordination Semantics: HCT for Google's Agent Protocol

I recently announced the Model Context Protocol (MCP) adaptation of Harmonic Coordination Theory (HCT). Today, I'm expanding the ecosystem to support Google's Agent-to-Agent (A2A) Protocol.

While MCP focuses on the standardized client-host connection, A2A is designed for decentralized, multi-agent communication. HCT provides the shared language—the music theory—that enables these distributed agents to play together effectively.

The Extension: hct-a2a

I've released the hct-a2a repository, a formal extension that injects HCT signals into A2A messages.

Key Features

  1. Protobuf-First Design: Unlike the JSON-centric MCP implementation, the A2A extension is defined in Protocol Buffers (.proto). This ensures strict typing and compatibility with high-performance gRPC backends.

  2. Auto-Generated Specification: The hct.proto file is not hand-edited. It's auto-generated via CI/CD from the central hct-spec repository, guaranteeing that our A2A and MCP implementations never drift apart. They sing from the same sheet music.

  3. Polyglot Support: Reference implementations in four languages:

    • Python: A FastAPI-based Performer and Conductor
    • TypeScript: Node.js actors for web-native agents
    • Rust: High-performance, type-safe actors using Tokio
    • Go: Struct-based orchestration for microservices

NEVER sacrifice design quality for speed of delivery. This is the right way to build protocol extensions.

Why A2A Needs HCT

In a distributed agent mesh, "intent" is often lost. An agent sends a task ("Analyze this file") but fails to convey the context:

  • Is this a Rush job (tempo: presto)?
  • Should I use Cheap models or Deep Reasoning (dynamics: pp vs ff)?
  • Should I Wait for approval (fermata)?

HCT answers these questions elegantly within the metadata of the A2A envelope, allowing the receiver to adjust its "performance" without changing the core task definition.

That "impossible" race condition in your distributed agents? It's not impossible, it's inevitable at scale. Plan for it with proper semantics.

Get Started

Check out the repository or browse the Live Spec.

# Python
pip install hct-a2a

# Rust
cargo add hct-a2a

# Go
go get github.com/stefanwiest/hct-a2a

# TypeScript
npm install @hct/a2a

Your agents should coordinate like musicians, not database nodes. Orchestras have been doing this for centuries—coordinating 100+ performers in real-time without a centralized database. Your distributed agents can too.


This work is part of the Harmonic Coordination Theory research initiative.

Enjoy this? You might like SeekingSota — weekly essays on what happens when engineers stop programming and start conducting AI agents.