Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

hivemind-a2a-agent-plugin

An agent-protocol plugin for HiveMind that connects the hive to external A2A (Agent-to-Agent) agents.

The plugin forwards natural-language queries from hive satellites to a configured A2A server over JSON-RPC 2.0 (tasks/send or tasks/sendSubscribe). It streams the response back to the satellite that sent the query.


What is A2A?

A2A is an open protocol for agent interoperability. An A2A server does two things:

  1. It publishes an agent card at GET /.well-known/agent.json. The card describes the server's capabilities, skills, and the URL that accepts tasks.
  2. It accepts task requests as JSON-RPC 2.0 at its root URL. A request is either a blocking tasks/send call or a streaming tasks/sendSubscribe call (SSE).

Any compliant A2A server works as a backend for this plugin, including LangChain agents, Google ADK, CrewAI, and custom FastAPI services.


Installation

pip install hivemind-a2a-agent-plugin

The plugin registers itself under the hivemind.agent.protocol entry-point group. HiveMind-core discovers it automatically once it is installed.


Configuration

Add the following to your OVOS / HiveMind config, typically at ~/.config/hivemind/hivemind.conf:

{
  "hivemind": {
    "agent_protocol": "hivemind-a2a-agent-plugin",
    "a2a_agent": {
      "agent_url": "http://localhost:9999",
      "auth_header": "Bearer secret",
      "timeout": 60,
      "streaming": false
    }
  }
}
Key Default Description
agent_url none Required. Root URL of the A2A server.
auth_header none Optional Authorization header (e.g. Bearer …).
timeout 60 HTTP timeout in seconds.
streaming false Prefer tasks/sendSubscribe (SSE) when true.

Hive wiring example

HiveMind master
  └── hivemind-a2a-agent-plugin  ←  loaded as agent_protocol
        └── A2A server  (http://localhost:9999)
              └── your LLM / agent / tool backend

Satellite (voice client, phone, …)
  → "what's the capital of France?"
  → HiveMind master receives utterance
  → plugin forwards to A2A server via tasks/send
  → A2A server responds: "Paris is the capital of France."
  → HiveMind master streams answer back to satellite

Run a minimal FastAPI A2A server and the HiveMind master:

# 1. run the example mock A2A server (also used by e2e tests)
uvicorn tests.e2e.mock_a2a_server:app --port 9999

# 2. configure hivemind-core to use this plugin (see above)
# 3. start hivemind-core
hivemind-core listen

Session and context mapping

The plugin maps the HiveMind session_id directly to the A2A sessionId parameter, so multi-turn conversations keep their context on the A2A server side. The plugin stores no extra state. The A2A server owns the conversation history.


Error handling

The plugin never silences errors. The A2A server may be unreachable, return an empty response, or return a JSON-RPC error object. In each case, the plugin yields a human-readable error string to the satellite so the user always gets a reply.


Development

git clone https://github.com/TigreGotico/hivemind-a2a-agent-plugin
cd hivemind-a2a-agent-plugin
pip install -e ".[dev]"
pytest tests/          # unit tests (no server needed)
pytest tests/e2e/      # e2e tests (spins up a FastAPI mock server in-process)

Related projects

Credits

Funded by NGI0 Commons Fund / NLnet under grant agreement No 101135429, through the European Commission's Next Generation Internet programme.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hivemind_a2a_agent_plugin-0.1.0a6.tar.gz (10.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hivemind_a2a_agent_plugin-0.1.0a6-py3-none-any.whl (9.3 kB view details)

Uploaded Python 3

File details

Details for the file hivemind_a2a_agent_plugin-0.1.0a6.tar.gz.

File metadata

File hashes

Hashes for hivemind_a2a_agent_plugin-0.1.0a6.tar.gz
Algorithm Hash digest
SHA256 260e9e944cdd83201e29fa98b46f79181a9abc7f374698d7548cd3bd0c994cd1
MD5 a197372b3351a47b2fd436cb460b6bf1
BLAKE2b-256 d1d21cd34316a3307c33e24d9f39364487d9963343543d1e59525525ed65de22

See more details on using hashes here.

File details

Details for the file hivemind_a2a_agent_plugin-0.1.0a6-py3-none-any.whl.

File metadata

File hashes

Hashes for hivemind_a2a_agent_plugin-0.1.0a6-py3-none-any.whl
Algorithm Hash digest
SHA256 6926178f56c599d9961444a89da5b220c787cf5e2d0a859c2baaaa9a5b5c58e2
MD5 5ac45b91945c426eac5cfce5fa0d1420
BLAKE2b-256 49b98d633dd0dae0d751adc4d8a2587cc1da0ae6b50a7269f6a5878d6429ac6e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page