Skip to content

Evaluate ACP / A2A (agent-to-agent) protocol support #354

Description

@XargonWan

Summary

A user asked whether SyntH will add ACP (Agent Communication Protocol) support,
noting that OpenClaw and Hermes Agent expose it to control coding tools like
OpenCode or Claude Code.

Reference: https://agentcommunicationprotocol.dev/introduction/welcome

This issue captures the evaluation and the decision.

What ACP is

ACP is an open, REST-based standard (Linux Foundation) for agent-to-agent
interoperability: async-first with sync support, streaming, multimodal via
MimeTypes, and online/offline agent discovery. Its goal is to make agents
built on different frameworks interchangeable and composable.

Important: ACP has been merged into A2A (Agent2Agent) under the Linux
Foundation. ACP is now the historical reference implementation in migration.
Evaluating ACP today effectively means targeting A2A.

How it relates to SyntH today

The user's request conflates two different layers:

Protocol Purpose SyntH status
MCP (Model Context Protocol) The agent uses external tools (client -> tool) Present: core/mcp_bridge/ client + FastMCP server, config/synth_mcp.json
ACP / A2A Agents talk to each other as peers (agent <-> agent) Not present

The specific example ("control OpenCode / Claude Code" / "be used as a coding
agent from VS Code") is not an ACP use case. That is solved by an
OpenAI-compatible endpoint (/v1/chat/completions, /v1/messages,
/responses) - already tracked separately and higher priority.

ACP / A2A is the right fit for the "drones" (subagent) orchestration use
case: agent <-> agent coordination and federating multiple SyntH instances.

Recommendation

Do not implement ACP now; track A2A as a future design goal.

  1. ACP is migrating into A2A -> if adopted, adopt A2A, not ACP.
  2. ~80% of the real need (act as / drive a coding tool) is covered by the
    OpenAI-compatible endpoint, already in the roadmap - higher ROI.
  3. A2A only makes sense alongside the "drones" (subagents) feature: to
    expose subagents externally or federate SyntH instances.
  4. Low architectural risk when it lands: SyntH already has
    core/mcp_bridge/server.py (FastMCP) and the single-message-chain. An A2A
    adapter would be a new REST interface that forwards into the chain -
    consistent with the project golden rule, no core rewrite.

Decision

Deferred. Revisit once "drones" (subagents) are in place, and target A2A
directly rather than ACP.

Related

  • OpenAI-compatible coding-agent endpoint (VS Code / Claude Code / OpenCode)
  • "drones" subagent support

Metadata

Metadata

Assignees

No one assigned

    Labels

    wontfixThis will not be worked on

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions