AGLX – Protokollbeschreibung (TCP / UDP)
Das AGLX-Protokoll definiert, wie Agenten untereinander kommunizieren, Nachrichten austauschen und Aufgaben verteilen. Es arbeitet verbindungsorientiert über TCP und optional verbindungslos über UDP für leichte Status- oder Broadcast-Nachrichten. Das Design orientiert sich an etablierten Prinzipien aus HTTP, SMTP und MQTT, ist jedoch vollständig auf KI-Agentenkommunikation optimiert.
Grundprinzip
Jede AGLX-Nachricht besteht aus einem strukturierten Kopf (Header) und einem JSON-basierten Nachrichtenkörper (Body). Der Header beschreibt, wer mit wem kommuniziert, der Body enthält die Nutzdaten – etwa eine Aufgabe, ein Ergebnis oder eine Systemnachricht.
| Abschnitt | Beschreibung | 
|---|---|
| Header | Enthält Metainformationen wie Version, Absender, Empfänger, Nachrichtentyp, Priorität oder Transport-ID. | 
| Body (JSON) | Beinhaltet die eigentlichen Nutzdaten, z. B. Aufgaben, Rückmeldungen, Status oder Credit-Informationen. | 
| Transportebene | AGLX läuft über TCP (zuverlässig, verbindungsorientiert) oder UDP (leicht, verlusttolerant). | 
| Codierung | UTF-8, ausschließlich in Textform; Binärdaten werden bei Bedarf Base64-kodiert. | 
Nachrichtenformat
Beispiel einer vollständigen Nachricht über TCP:
AGLX/1.0 TCP FROM: agent://alpha.local TO: agent://beta.local TYPE: task.assign CREDITS: 2 CONTENT-TYPE: application/json CONTENT-LENGTH: 156 { "task": "analyze.dataset", "priority": 3, "payload": { "dataset_url": "http://alpha.local/data/sample.csv" }
Header-Felder
| Feld | Beschreibung | Beispiel | 
|---|---|---|
| AGLX/Version Transport | Versions- und Transportangabe | `AGLX/1.0 TCP` | 
| FROM | Absender der Nachricht (URI-basiert) | `agent:alpha.local` | | TO | Empfänger (Agent oder Broadcast) | `agent:beta.local` | 
| TYPE | Typ der Nachricht | `task.assign`, `status.report`, `credit.transfer` | 
| CREDITS | Optionale Angabe über Credits oder Kosten | `2` | 
| CONTENT-TYPE | Datentyp des Inhalts | `application/json` | 
| CONTENT-LENGTH | Länge des JSON-Inhalts in Bytes | `156` | 
UDP-Nachrichten
UDP wird für leichte, unkritische Nachrichten eingesetzt, etwa für Agentenmeldungen oder Netzwerk-Discovery. Der UDP-Header ist identisch aufgebaut, der Body kann jedoch kürzer oder unvollständig sein.
Beispiel:
AGLX/1.0 UDP FROM: agent://gamma.local TYPE: announce CONTENT-TYPE: application/json { "agent_name": "Gamma", "uptime": 3921 }
Nachrichtentypen (TYPE)
| Typ | Beschreibung | 
|---|---|
| task.assign | Beauftragung eines Agenten mit einer Aufgabe | 
| task.result | Rückmeldung mit einem Ergebnis oder Status | 
| status.report | Periodische Zustandsmeldung | 
| credit.transfer | Übertragung von Credits zwischen Agenten | 
| agent.announce | Selbstdarstellung eines Agenten im Netzwerk | 
| registry.update | Synchronisation mit der Registry | 
| mentor.feedback | Mentoring- oder Bewertungskommunikation | 
Verbindungshandshake (TCP)
Ein typischer TCP-Verbindungsaufbau verläuft in drei Schritten:
| Schritt | Beschreibung | 
|---|---|
| 1. CONNECT | Der sendende Agent baut eine TCP-Verbindung zum Zielagenten auf und sendet eine erste `AGLX/1.0`-Handshake-Nachricht. | 
| 2. ACKNOWLEDGE | Der Zielagent bestätigt die Verbindung mit einer `TYPE: handshake.ack`. | 
| 3. READY | Beide Seiten wechseln in den aktiven Kommunikationszustand und tauschen reguläre Nachrichten aus. | 
Fehler- und Statuscodes
AGLX nutzt einfache numerische Statuscodes, angelehnt an HTTP.
| Code | Bedeutung | Beschreibung | 
|---|---|---|
| 100 | Continue | Verbindung etabliert, bereit zum Empfang | 
| 200 | OK | Aufgabe erfolgreich angenommen oder ausgeführt | 
| 400 | Bad Request | Nachricht fehlerhaft formatiert | 
| 401 | Unauthorized | Authentifizierung erforderlich | 
| 404 | Agent Not Found | Zielagent nicht erreichbar | 
| 500 | Internal Error | Interner Verarbeitungsfehler | 
Sicherheit und Authentifizierung
Sicherheit kann auf mehreren Ebenen realisiert werden:
- Transportverschlüsselung (z. B. TLS)
- Agent-Signaturen (z. B. HMAC)
- Netzwerksegmentierung und lokale Trust-Zonen
Versionierung
- Protokollversion: 1.0 (Draft)
- Stand: 27.10.2025
- Autor: Andreas Röne
- Status: Entwurf / Evaluierungsphase
