A pattern for asynchronous collaboration between AI agents using Git as the communication layer. No framework, no message queue, no API — just markdown files in a shared repository.Ein Muster für die asynchrone Zusammenarbeit zwischen KI-Agents, das Git als Kommunikationsschicht nutzt. Kein Framework, keine Message Queue, keine API – nur Markdown-Dateien in einem gemeinsamen Repository.
A research task takes 10 minutes. During that time, the agent can't answer chat messages.Eine Rechercheaufgabe dauert 10 Minuten. Während dieser Zeit kann der Agent keine Chat-Nachrichten beantworten.
A coding agent needs different instructions than a research agent. Combining both dilutes quality.Ein Programmier-Agent benötigt andere Anweisungen als ein Recherche-Agent. Die Kombination beider verwässert die Qualität.
An always-on server agent handles cron jobs at 3 AM. A laptop agent is available when you're working.Ein always-on Server-Agent erledigt Cron-Jobs um 3 Uhr morgens. Ein Laptop-Agent ist verfügbar, wenn du arbeitest.
An agent reviewing its own output is like proofreading your own essay — it sees what it expects to see.Ein Agent, der seine eigene Ausgabe überprüft, ist wie das Korrekturlesen des eigenen Aufsatzes – er sieht, was er zu sehen erwartet.
Sources:Quellen: Talebirad & Nadiri (2023), Google A2A Protocol
Rule:Regel: Each agent writes only in its own subfolder. Agents never modify each other's files.Jeder Agent schreibt nur in seinen eigenen Unterordner. Agents ändern niemals die Dateien der anderen.
Timing:Zeitplanung: Fully asynchronous. Agent A pushes at 10:00, Agent B responds at 14:00, Agent A reads at 15:00. No need to be online simultaneously.Vollständig asynchron. Agent A pusht um 10:00 Uhr, Agent B antwortet um 14:00 Uhr, Agent A liest um 15:00 Uhr. Es ist nicht nötig, gleichzeitig online zu sein.
Agent A researches, Agent B challenges. Agent B has no investment in Agent A's output — it can be genuinely critical. Unlike self-review, which sees what it expects to see.Agent A recherchiert, Agent B hinterfragt. Agent B hat keine persönliche Bindung an das Ergebnis von Agent A – er kann wirklich kritisch sein. Im Gegensatz zur Selbstüberprüfung, bei der man sieht, was man erwartet.
Flow:Ablauf: Human asks → Agent A researches → writes signal → Agent B reviews → finds 2 unsourced claims, 1 outdated price → Agent A fixes.Mensch fragt → Agent A recherchiert → schreibt Signal → Agent B prüft → findet 2 unbelegte Behauptungen, 1 veralteten Preis → Agent A korrigiert.
Agent A (laptop) is interactive during the day. Agent B (server) runs automated tasks overnight. At 08:00, results are waiting.Agent A (Laptop) ist tagsüber interaktiv. Agent B (Server) führt über Nacht automatisierte Aufgaben aus. Um 08:00 Uhr liegen die Ergebnisse vor.
Flow:Ablauf: 22:00 write task list → 02:00 cron runs research → 08:00 pull results.22:00 Aufgabenliste schreiben → 02:00 Cron führt Recherche aus → 08:00 Ergebnisse abrufen.
One agent writes code or content. The other runs quality checks. Separation of concerns — the audit agent has different instructions focused on finding problems.Ein Agent schreibt Code oder Inhalte. Der andere führt Qualitätsprüfungen durch. Trennung der Belange – der Audit-Agent hat andere Anweisungen, die darauf ausgerichtet sind, Probleme zu finden.
Flow:Ablauf: Agent A builds → signals "ready" → Agent B runs checks → writes review with findings.Agent A entwickelt → signalisiert "fertig" → Agent B führt Prüfungen durch → schreibt eine Überprüfung mit Ergebnissen.
Agents teach each other by documenting observations. Accepted learnings become design principles for both agents. Distributed knowledge creation.Agents lehren sich gegenseitig, indem sie Beobachtungen dokumentieren. Akzeptierte Erkenntnisse werden zu Designprinzipien für beide Agents. Verteilte Wissensschaffung.
Flow:Ablauf: Agent A notices pattern → writes learning → Agent B reviews: accepted/returned/rejected.Agent A bemerkt ein Muster → schreibt eine Erkenntnis → Agent B prüft: akzeptiert/zurückgewiesen/abgelehnt.
| LimitationEinschränkung | Detail |
|---|---|
| Not real-timeNicht in Echtzeit | Git push/pull has seconds-to-minutes latencyGit Push/Pull hat eine Latenz von Sekunden bis Minuten |
| No streamingKein Streaming | Agents see finished outputs only, can't watch each other thinkAgents sehen nur fertige Ausgaben, können sich nicht gegenseitig beim Denken zusehen |
| Scale ceilingSkalierungsgrenze | Works for 2-5 agents. At 10+, consider message brokersFunktioniert für 2-5 Agents. Ab 10+ sollten Message Broker in Betracht gezogen werden |
| No routingKein Routing | Agents check for files via cron — no push notificationsAgents prüfen auf Dateien per Cron – keine Push-Benachrichtigungen |
| Trust implicitVertrauen implizit | Any agent with repo access reads everythingJeder Agent mit Repository-Zugriff liest alles |
| Exchange (Git) | A2A Protocol | Message Queue | Shared DB | |
|---|---|---|---|---|
| SetupEinrichtung | git init | SDK + Server | Broker + Consumers | DB + Schema |
| LatencyLatenz | Sec–minSek–Min | MillisecondsMillisekunden | MillisecondsMillisekunden | MillisecondsMillisekunden |
| Audit trailPrüfpfad | Full (git log)Vollständig (git log) | Needs loggingBenötigt Protokollierung | Needs loggingBenötigt Protokollierung | Needs loggingBenötigt Protokollierung |
| OfflineOffline | ✅ WorksFunktioniert | ❌ | ❌ | ❌ |
| ComplexityKomplexität | MinimalMinimal | MediumMittel | Medium-HighMittel-Hoch | MediumMittel |
| Best forAm besten für | 2-5 agents, async2-5 Agents, asynchron | Real-timeEchtzeit | High-throughputHoher Durchsatz | Structured dataStrukturierte Daten |
Sources:Quellen: Google A2A Spec, Anthropic MCP
The exchange/ folder in this kit is already structured. Connect two instances: clone on both machines, set up a cron for git pull, and each agent writes to its own subfolders.Der Ordner exchange/ in diesem Kit ist bereits strukturiert. Verbinde zwei Instanzen: klone auf beiden Maschinen, richte einen Cron für git pull ein, und jeder Agent schreibt in seine eigenen Unterordner.
See a real exchange session →Eine echte Exchange-Sitzung ansehen →