- Das Agent Client Protocol (ACP) ist ein Protokoll, das die Kommunikation zwischen Code-Editoren und AI-Coding-Agenten standardisieren soll
- Bisher war für die Verbindung eines Editors mit einem bestimmten Agenten jeweils eine separate benutzerdefinierte Integration nötig, was zu eingeschränkter Kompatibilität und Developer-Lock-in führte
- Wie das Language Server Protocol (LSP) bietet ACP eine standardisierte Kommunikationsweise, sodass nach einmaliger Implementierung eine freie Verbindung zwischen allen kompatiblen Editoren und Agenten möglich ist
- Der Agent wird im Editor als Subprozess ausgeführt und kommuniziert über JSON-RPC over stdio; bei den UI-Elementen werden Diff-Anzeigen und Markdown-basierte Ausgabe unterstützt
- Derzeit unterstützen unter anderem Zed und Neovim (CodeCompanion-Plugin) ACP; auf Agentenseite ist die Gemini CLI kompatibel, und der Support soll künftig ausgeweitet werden
Einführung
- Das Agent Client Protocol (ACP) ist ein offenes Protokoll, das entwickelt wurde, um Interaktionen zwischen Server und Client wie Remote-Entwicklung, Port-Forwarding und Befehlsausführung zu standardisieren
- Bestehendes Problem: AI-Coding-Agenten und Editoren sind eng miteinander verbunden, aber Interoperabilität ist nicht standardmäßig gewährleistet
- Jeder Editor muss für jeden Agenten, den er unterstützen will, eine benutzerdefinierte Integration bauen
- Agenten müssen spezifische Editor-APIs implementieren, um Nutzer zu erreichen
- Das führt zu Integrationsaufwand, eingeschränkter Kompatibilität und Anbieterabhängigkeit für Entwickler
- Die Lösung von ACP: ACP stellt ein standardisiertes Protokoll für die Kommunikation zwischen Agenten und Editoren bereit
- Ein Agent mit ACP-Implementierung läuft in allen kompatiblen Editoren
- Ein Editor mit ACP-Support kann auf das gesamte Ökosystem ACP-kompatibler Agenten zugreifen
- Das ermöglicht unabhängige Innovation und erlaubt Entwicklern, die für ihren Workflow optimalen Tools zu wählen
Überblick über ACP
- Funktionsweise: Nutzer arbeiten hauptsächlich im Code-Editor und rufen für bestimmte Aufgaben einen Agenten auf
- Der Agent läuft als Subprozess des Editors
- Die Kommunikation erfolgt über JSON-RPC via stdio
- Datenformat: Es wird das JSON-Format von MCP wiederverwendet, ergänzt um benutzerdefinierte Typen für UX-Elemente von Coding-Agenten wie Diff-Anzeigen
- Textformat: Für bessere Lesbarkeit wird standardmäßig das Markdown-Format verwendet
- Dadurch ist reichhaltige Formatierung auch ohne HTML-Rendering möglich
- Das Protokoll befindet sich derzeit noch in Entwicklung, ist aber bereits ausgereift genug, um interessante User Experiences darauf aufzubauen
Aktueller Support-Status
- Editoren
- Agenten
- Gemini: ACP-Support über die Gemini CLI
- Weitere Agenten sollen folgen
Fazit
- Nach dem Vorbild des erfolgreichen LSP verbessert ACP die Interoperabilität zwischen AI-Coding-Agenten und Editoren grundlegend
- Entwickler sind nicht mehr an einen bestimmten Agenten oder Editor gebunden und können die beste Tool-Kombination frei wählen
- Die Verbreitung des Protokolls erhöht die Skalierbarkeit des Ökosystems und kann Effizienz und Flexibilität in Entwickler-Workflows steigern
1 Kommentare
Hacker-News-Kommentare
Jemand hat Claude gebeten, ein Kommunikationsprotokoll zwischen AI-Agenten und IDEs/Editoren zu entwerfen, dazu auch Node-, Python- und Rust-Bibliotheken zu entwickeln und sogar eine Website mit Landingpage dafür zu bauen
Ehrlich gesagt bin ich versucht zu testen, ob Gemini ein Sublime-Text-Plugin nutzen kann, das dieses Protokoll implementiert; in letzter Zeit scheint sich fast alles auf VSCode zu konzentrieren, weshalb neue Tools oft nur noch dort Unterstützung bieten. Ich möchte nicht gezwungen werden zu wechseln, nur weil Sublime nicht mehr unterstützt wird. Sublime ist wirklich ein großartiger Editor und wird nicht einmal von einem riesigen Unternehmen getragen.
Und man könnte es wohl auch absichtlich so bauen, dass es ein Agent wird, der nur Gemini unterstützt, um die eigenen Spuren zu verwischen
Lustig, das ist ein viel zu egozentrischer Wunsch
Ich hoffe wirklich, dass dieses Projekt gut läuft. Zed kehrt gerade zum eigentlichen Kern von Zusammenarbeit zurück, und ich glaube, das könnte auch die Kategorie der agentischen IDEs verändern. Dann müsste Zed nicht so viel Zeit darauf verwenden, direkt zu konkurrieren, und hätte zugleich ein echtes Alleinstellungsmerkmal. Ich bin gespannt, wie stark das unter CLI-Agenten angenommen wird (es ist schon schön zu sehen, dass Gemini CLI bereits integriert ist). Der harte Wettbewerb im Markt für LLMs und Coding-Assistenten ist immer willkommen, weil solche Veränderungen die Wechselkosten zwischen den Tools hoffentlich weiter senken.
Ich bin selbst schon fast bei Zed gelandet. Es hat fast alle Funktionen, die ich mir seit Jahren von einem Editor wünsche, plus viele großartige Dinge, auf die ich selbst nie gekommen wäre. Ich war vom Status quo so enttäuscht, dass ich einmal versucht habe, selbst einen Editor als Prototyp zu bauen, aber ein wirklich guter Editor ist enorm viel Arbeit. Zed hat diese Arbeit geleistet. Ich begrüße sehr, dass sie offen zusammenarbeiten wollen.
Ganz ehrlich, ich hoffe, dass diese Veränderung dazu führt, dass diese billigen VS-Code-Forks verschwinden. Zed hätte echte Anerkennung verdient. Es fühlt sich an, als hätten AI-Editoren der Branche förmlich den Sauerstoff entzogen.
Ich baue gerade ein Tool, mit dem Claude Code ACP verwenden kann (weil ich CC und Zed oft nutze). Bisher klappt es mit dem Claude Code SDK und der ACP-Client-Bibliothek ziemlich gut. Ein paar Dinge müssen noch aufpoliert werden, aber ich will es morgen etwas weiter verfeinern und dann veröffentlichen.
Es gibt bereits ein ACP unter agentcommunicationprotocol.dev, deshalb könnte der Name verwirrend sein. Es gibt Unterschiede zwischen den beiden Projekten, aber so etwas beschäftigt mich trotzdem.
Was mich am meisten interessiert, ist die Frage, warum man den Bedarf von LLMs nicht durch einen LSP-Server oder eine Erweiterung des LSP-Protokolls abdecken kann
Ich behandle AI lieber wie einen echten menschlichen Entwickler. Ich bitte die AI zum Beispiel, ein Feature zu implementieren, einen Bug zu beheben oder ein Refactoring zu machen, und lese mir dann den resultierenden Commit durch. Wenn mir der Commit nicht gefällt, mache ich ein
git reset --hard, verbessere den Prompt und lasse die AI es erneut versuchen. Ich nenne das „Prompt Coding“. Eine direkte Interaktion zwischen meiner Coding-Umgebung und der AI brauche ich nicht; sie arbeitet wie ein menschlicher Entwickler, ohne in meinem Editor herumzufummeln mehr dazuIn letzter Zeit heißt es oft, dass Prompting besser geworden sei, aber da bin ich skeptisch. Für einige sehr spezifische Aufgaben ist AI hilfreich, aber sie erzählt immer noch viel Unsinn. Besonders schwer akzeptabel ist es, wenn sie Dinge wie APIs einfach erfindet.
Ich lasse die AI nicht bis zum Commit gehen. Ich muss ihre Ergebnisse fast immer an mehreren Stellen überarbeiten. Mir ist die Zeit zu schade, endlos neu zu prompten; wenn sie nicht gleich beim ersten Mal liefert, was ich will, korrigiere ich es lieber selbst. Wenn sie von Anfang an wirklich versteht, was ich möchte, und den passenden Code liefert, steigt mein Vertrauen in die AI deutlich.
Ich hoffe, dass sich diese Idee weiter verbreitet. Eine Frage, die ich dazu habe, betrifft die Unterschiede zwischen Dateisuche und ungespeicherten Dateien. In der Praxis verwenden Agenten für die Suche im Dateisystem oft Dinge wie ripgrep, aber wenn das Protokoll auch Lesen und Schreiben auf ungespeicherte Dateien erlauben soll, entsteht ein Genauigkeitsproblem: ripgrep kann ungespeicherte Dateien nicht durchsuchen.
Ich hoffe wirklich, dass Anthropic dieses Protokoll in Claude Code einführt. Mindestens eine Integration auf dem Niveau dessen, was in VSCode geboten wird, wäre zu erwarten. Und es wäre schon hilfreich, wenn man wenigstens Zugriff auf die Diagnosedaten des Editors hätte.
Auch MCP hat einmal mit JSON-RPC über stdio angefangen. Mit Umgebungen wie GitHub Codespaces, devcontainers und „background agents“ könnte sich das vielleicht zu so etwas wie JSON over SSE weiterentwickeln. Meine aktuelle Entwicklungsumgebung nutzt Claude Code lokal, während die App in Containern läuft. Der Agent kann selbstständig
docker compose exec backendausführen. Hürden für die Einführung eines git-worktree-basierten Workflows sind bei mir die gemeinsam genutzte Datenbank-Engine (mangelnde lokale Ressourcen) und die Dauer der initialen Migrationen. Es wäre ein interessantes Szenario, solche Lasten in die Cloud auszulagern.Ich hoffe, dass sich solche Protokolle verbreiten, damit ich nicht immer an eine einzelne bestehende IDE gebunden bin