A2A – Was ist das? Man könnte an einen Geheimcode von Besuchern eines Sexclubs denken, aber nein! Es geht auch nicht um ein veraltetes Übertragungsprotokoll, das früher zum Austausch von Daten mit Datenbankservern verwendet wurde. Nein, hier handelt es sich um etwas viel Moderneres: das „Agent to Agent“-Protokoll.
„Agent“ ist ein englisches Wort und kann mit Mittel, Vertreter oder Vermittler übersetzt werden. Das Protokoll wird im Bereich der Künstlichen Intelligenz eingesetzt, um einen „Client-Agent“ mit einem „Remote-Agent“ zu verbinden.
Zum allgemeinen Ablauf: Wir haben Nutzer, die vor einem PC, Mobilgerät oder Terminal sitzen und eine Aufgabe formulieren, z. B. „Wie viele Autos sind in unserem Fuhrpark?“
Diese Aufgabe wird vom „Client Agent“ bearbeitet. Er zerlegt die Aufgabe gegebenenfalls in kleinere Teilaufgaben und sucht einen geeigneten „Remote Agent“, der ihm bei der Lösung helfen kann, falls der Client nicht in der Lage ist, die Aufgabe selbst zu beantworten. Für diesen Datenaustausch verwendet der „Client Agent“ das „A2A“-Protokoll.
Der „Remote Agent“ wird vom Client gefunden, analysiert die Aufgabe und sendet passende Ergebnisse an den Client zurück. Der „Remote Agent“ ist somit eine Art Server.
Soweit der grundsätzliche Ablauf. Das „A2A“-Protokoll ist demnach nichts weiter als ein Kommunikationsprotokoll, das vorgibt, wie Daten übermittelt werden. Zudem handelt es sich dabei um ein offenes Protokoll, das heißt, jeder Entwickler kann Agents bereitstellen, die beispielsweise als Server agieren können – unabhängig vom Standort oder dem verwendeten Framework (Programmiersprache). Es ist außerdem unabhängig vom KI-Anbieter, dem verwendeten Serversystem oder der Architektur der jeweiligen Endgeräte (x86-64, ARM usw.).
Das „A2A“ benötigt ein Übertragungsprotokoll, das die „A2A“-Daten verpackt, damit diese über das Internet gesendet werden können. Hierfür kommen die Protokolle „HTTP“ oder „HTTPS“ zum Einsatz. Diese werden auch für die Übermittlung von Webseiten verwendet, das heißt, wenn ihr eine Webseite im Webbrowser aufruft, werden Daten aus dem Internet auf euer Mobilgerät oder euren PC übertragen – und zwar mit „HTTP“ bzw. „HTTPS“. „HTTPS“ ist dabei die bessere Wahl, da die Daten während der Übertragung verschlüsselt werden.
Die Daten im „A2A“ werden im JSON-Format übertragen, und zwar gemäß JSON-RPC 2.0. Diese Daten liegen im Klartext vor, sind also nicht verschlüsselt und sollten daher über „HTTPS“ versendet werden, da sonst der gesamte Datenverkehr mitgelesen werden kann. Auch bei „HTTPS“ ist das Mitlesen theoretisch möglich, aber die Daten sind ohne den Entschlüsselungsschlüssel nur unverständliches Durcheinander.
Eine weitere Sicherheitsmaßnahme wäre eine erweiterte Authentifizierung mit OAuth2 oder API-Keys, die allerdings nur den Zugriff auf den Agenten schützen. Beim OAuth2 erhält der Client-Agent ein eindeutiges Token, eine ID, die dann vom Remote-Agent ausgewertet wird. Im Normalfall wird das Token gegenüber einem Ausstellungsserver/-dienst geprüft, der dem Client das Token ausgestellt hat. Zusätzlich enthält das Token „Zugriffsrechte“. Sollte der Client ein gültiges Token senden, aber einen nicht erlaubten Zugriff anfordern, obwohl der Ausstellungsserver diesen erlaubt hat, wird die Verbindung ebenfalls abgewiesen. Insgesamt handelt es sich dabei nicht um eine Verschlüsselung, sondern lediglich um eine Authentifizierung.
Zusätzlich werden Echtzeit-Updates (Server-Sent Events) unterstützt. Dadurch können Teilergebnisse bei umfangreicheren Aufgaben übertragen werden.
Hier nun eine genauere Beschreibung des Ablaufs beim Verbindungsaufbau. Die Kommunikation erfolgt nach festgelegten Regeln:
1. Discovery
Es wird eine Agent Card bereitgestellt, d.h., jeder Remote-Agent stellt eine standardisierte JSON-Datei bereit (üblicherweise unter dem Pfad /.well-known/agent.json), die seine Identität und Fähigkeiten beschreibt.
Die Agent Card enthält: Name, Beschreibung, unterstützte Ein-/Ausgabemodalitäten (Text, Bild, Video), technische Endpunkte (URLs) und eine Liste spezifischer Skills (Fähigkeiten) des Agenten.
Der Client-Agent liest diese Agent Cards, um den am besten geeigneten Dienstleister für eine Unteraufgabe zu identifizieren.
2. Kommunikation und Task-Austausch
Ein Task ist das zentrale strukturierte Datenobjekt, das vom Client-Agenten an den Remote-Agenten gesendet wird. Es enthält die Anfrage, die erforderlichen Parameter und eine eindeutige ID.
Tasks haben einen klar definierten Lebenszyklus (z. B. submitted, working, completed, failed). Dieser ist entscheidend für die Koordination komplexer, langwieriger Workflows.
Der Remote-Agent sendet das Ergebnis, häufig in Form von Artefakten (strukturierte Daten, Text oder sogar Dateien), zurück an den Client-Agenten.
Das war’s! Die Nutzer erhalten ihre Antwort auf die Aufgabe, sobald der Client-Agent eine Verbindung zum Remote-Agent herstellen konnte. Also keine Magie, aber fast.
Es gibt außerdem das MCP (Model Context Protocol), ein weiteres Protokoll für den Datenaustausch im Bereich der KI. Allerdings ist dieses Protokoll nicht ganz so universell und wird aus technischer Sicht vertikal eingesetzt. A2A ist eine Ergänzung zum MCP-Protokoll und funktioniert eben horizontal (über System-/ Netzwerkgrenzen hinaus).
In der Google Cloud kommen als Programmiersprachen Go, Python, JavaScript, Java und Kotlin in Frage. Die Wahl der Programmiersprache hängt natürlich vom jeweiligen Projekt ab. Andere Anbieter können weitere oder alternative Programmiersprachen unterstützen.
Mögliche Entwicklungsumgebungen sind beispielsweise Visual Studio Code mit dem Google-Plugin, JetBrains oder eine cloudbasierte Entwicklungsumgebung mit den entsprechenden Schnittstellen. Anders ausgedrückt: Jede Entwicklungsumgebung, die das Vorhaben unterstützt. Google Apps Script mit seiner IDE kann dies ebenfalls, allerdings etwas umständlicher und mit Einschränkungen wegen Restriktionen im App Script selbst.