Skip to main content
Glama
yhyu13
by yhyu13

CrossAgentMCP – ein A2A-Pool-MCP

Eine minimale Implementierung der A2A.md-Vision: ein A2A-Pool-MCP, bei dem

  1. jeder Agent sich in den gemeinsamen Pool registrieren kann,

  2. jeder Agent sich in eine Multi-Agenten-Sitzung einfügen kann,

  3. Agenten die Aktivitäten der anderen beobachten, Kollegen nach Abschluss kritisieren, sich selbst verbessern und ohne menschliches Eingreifen weiterarbeiten, bis ein gemeinsames Ziel von jedem Agenten in der Sitzung erfüllt ist.

Architektur

Drei Prozesstypen:

        ┌────────────────── POOL (:9100, FastAPI HTTP JSON-RPC) ──────────────────┐
        │  registry / sessions / activity / critique / goal  (in-memory control   │
        │  plane — does NOT route work messages)                                  │
        └──────────────────────────────────────────────────────────────────────────┘
            ▲ pool JSON-RPC (PoolClient)            ▲ pool JSON-RPC (per-agent bridge)
            │                                       │
      ┌─────┴──────┐    peer A2A (SendMessage/GetTask)   ┌─────┴──────┐
      │ orchestrator│◄──────────────────────────────────►│ agent-N    │ … :9101..9103
      └────────────┘      each agent runs its own         └────────────┘
          headless            v1.0 A2A HTTP server
  • Pool (crossagent/pool.py) – zentrale Steuerungsebene: Registry, Sitzungen, ein append-only Aktivitätslog pro Sitzung, Kritik-Threads und Zufriedenheit pro Agent.

  • Agenten – jeder ist ein Verzeichnis (agents/<role>/) mit:

    • server.py – ein A2A-HTTP-Server v1.0 (Peer-Datenebene);

    • .mcp.json – registriert die a2a-stdio-MCP-Brücke (crossagent/a2a_bridge.py);

    • CLAUDE.md – die Rolle + der Vertrag pro Zug.

  • Orchestrator (crossagent/orchestrator.py) – die einzige Komponente, die die Zeit vorantreibt: registriert Agenten, erstellt die Sitzung, führt dann jeden Agenten im Round-Robin-Verfahren headless aus (claude -p), wobei ihm das Aktivitäts-/Kritik-Delta seit seinem letzten Zug zugeführt wird, bis alle Mitglieder zufrieden sind (oder ein Zugbudget / eine No-Progress-Sperre auslöst).

Related MCP server: kitty-hive

Protokoll

Treue zu A2A v1.0 (PascalCase-JSON-RPC-Methoden, camelCase-JSON, SCREAMING_SNAKE_CASE-Enums). Siehe crossagent/a2a.py.

Einrichtung

uv sync          # Python 3.11+ venv + deps

Verwendung

make test        # unit tests (protocol / pool / orchestrator with fake agents)
make smoke       # pool + 2 A2A servers up; scripted round-trip (no real Claude)
make demo        # full headless 3-agent demo (writer / critic / lead) — needs `claude`

Demo-Ziel

demo/goal.json fordert drei Agenten – writer, critic, lead – auf, gemeinsam demo/output/design.md zu verfassen (ein URL-Shortener-Design), bis alle drei ihre Zufriedenheit erklären.

Hinweise

  • .mcp.json-Dateien enthalten den Repository-Pfad D:/GitRepo-AI/CrossAgentMCP fest codiert (entsprechend der claude-a2a-Referenz); aktualisieren Sie ihn, wenn Sie das Repository verschieben.

  • Die Pool- und Agent-Server halten den Zustand im Speicher; sie setzen sich beim Neustart zurück.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables direct AI-to-AI communication through a bulletin board system featuring semantic search, thread management, and cryptographic identity verification. It allows AI agents to autonomously post, read, reply, and interact without human intermediation.
    2
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for multi-agent collaboration enabling AI agents to communicate, delegate tasks, and share artifacts across clients and machines with federation support.
    60 npm
    1
    MIT