Die Universalfernbedienung für KI — Alex Hancock, Block

AAI Engineer
컴퓨터/소프트웨어AI/미래기술

스크립트

00:00:00Alex Hancock: Hallo zusammen. Mein Name ist Alex Hancock. Heute werde ich über eine universelle
00:00:17Fernbedienung für KI sprechen. Und bevor ich beginne, möchte ich nur sagen, dass der vorherige Redner erwähnte,
00:00:21dass MCP-Client-Betreuer keine Unterstützung für Aufgaben implementiert haben, weil sie klug sind. Ich bin
00:00:26ein MCP-Client-Betreuer. Ich kann Ihnen sagen, nur weil ich faul bin. Ich habe es noch nicht getan. Also,
00:00:33ein wenig über mich, bevor wir anfangen. Ich bin Softwareingenieur bei Block, dem
00:00:37Mutterunternehmen von Cash App, Square und Tidal. Wir haben derzeit einige verschiedene Dinge am Laufen.
00:00:43Und ich arbeite dort schon lange. Ich habe an Square-Produkten und Cash-App-Sachen gearbeitet.
00:00:47Aber ich beschäftige mich seit einigen Jahren mit Open-Source-KI. Speziell arbeite ich an diesem
00:00:51Open-Source-Harness-Projekt namens Goose, das als internes Projekt bei Block begann.
00:00:56Ja, es gibt einige Goose-Fans da draußen. Und dann, ja, haben wir es als Open Source veröffentlicht und der
00:01:02Linux Foundation gespendet. Das geistige Eigentum liegt also dort. Aber viele von uns bei Block arbeiten immer noch daran.
00:01:07Ich bin auch Betreuer von MCP, dem Model Context Protocol. Ich arbeite an dem Rust-SDK für dieses Projekt.
00:01:14Und in jüngerer Zeit habe ich auch mit der Arbeit an ACP begonnen, dem Agent Client Protocol, worüber ich
00:01:20heute sprechen werde. Ich denke also, wir haben ein Problem mit Harnesses, das ich heute ansprechen möchte,
00:01:27Ihnen allen heute als Problem vorschlagen und dann eine Lösung empfehlen möchte. Was mir in letzter Zeit aufgefallen ist,
00:01:35ist, dass wir viele großartige Harnesses da draußen haben, oder? Es gibt welche von den
00:01:40Labors. Es gibt welche von verschiedenen Unternehmen. Es gibt viele auf offenen Standards basierende.
00:01:46Aber mir ist aufgefallen, dass die Schnittstelle zu ihnen oft maßgeschneidert oder individuell ist. Im schlimmsten Fall ist es so,
00:01:52dass Sie einige Harnesses haben, bei denen es buchstäblich nur eine Client-Anwendung gibt, mit der Sie dieses Harness steuern können,
00:01:57oder? Und ich denke, das bringt einige Probleme mit sich. Die Analogie, die ich zum Web ziehen werde,
00:02:03ist, dass es wäre, als müssten Sie einen einzigen Browser oder ein bestimmtes Protokoll verwenden, um eine Verbindung zu jeder
00:02:11Website herzustellen, oder? Das würde einfach nicht funktionieren. Sie hätten nichts wie das offene Web, wenn das die
00:02:16Realität bei Browsern wäre. Und deshalb denke ich, dass wir das besser machen können. Und das Besondere an Standards, durch das Finden eines
00:02:22Standards ist, dass sie Ökosysteme und Märkte schaffen. Und ich würde argumentieren,
00:02:28dass wir im Bereich der agentischen KI einen guten Standard dafür haben, dass der Agent hinausgeht und Dinge tut,
00:02:35oder? Tools aufruft, Aktionen in anderen Systemen ausführt, Ressourcen liest, Daten liest. Wir haben alle
00:02:41als Gemeinschaft davon profitiert, MCP zu haben, oder? Und das Mächtigste an MCP
00:02:47ist nicht irgendetwas an MCP selbst, sondern die Tatsache, dass jeder MCP nutzt. Und deshalb haben wir Tausende
00:02:53oder Zehntausende von Servern auf der ganzen Welt, und alle Agenten können sich mit ihnen verbinden
00:02:58und in diesen anderen Systemen aktiv werden. Ich würde sagen, wir haben noch keine gute Lösung
00:03:05oder einen Standard dafür, dass Client-Software Agenten sagt, was sie tun sollen, ihnen Aufgaben zuweist, ihnen vorgibt, woran sie arbeiten sollen,
00:03:13und Updates erhält. Und deshalb werde ich heute eine Option vorstellen, die meiner Meinung nach eine gute Option ist,
00:03:20an der wir in unserem Team gearbeitet haben und die wir für eine gute Lösung im Bereich der offenen Standards halten.
00:03:26Und das ist ACP. Agent Client Protocol ist der Name dieses Projekts. Und es stammt von den
00:03:32Editor-Unternehmen. Es kam daher, dass – wenn Sie den Zed-Texteditor oder eines der JetBrains-
00:03:39Produkte verwendet haben – die Zed-Leute und die JetBrains-Leute sich zusammengetan und einen Standard vorgeschlagen haben,
00:03:45damit Clients Harnesses steuern können. Das macht Sinn, wenn man sich in ihre Lage versetzt,
00:03:49oder? Was sie tun können wollten, war, eine einzige hochwertige Client-Implementierung
00:03:54in einem Editor zu schreiben, vielleicht in Zed oder in IntelliJ oder so etwas, und in der Lage zu sein, jedes Harness
00:04:00mit dieser einzigen Client-Implementierung zu steuern, Aufgaben zu senden, Ergebnisse zurückzubekommen,
00:04:06zu sehen, welche Dateien bearbeitet werden usw. Das macht absolut Sinn, wenn man sich in ihre Lage versetzt,
00:04:10oder? Aber wir haben das beim Goose-Team gesehen. Und wir glauben, dass es einen viel breiteren Nutzen hat als nur
00:04:17für Editoren, oder? Es ist also relativ neutral und hat nicht viele editorspezifische Funktionen. Und deshalb
00:04:22denken wir, dass dies auf eine breitere Palette von Client-Software ausgedehnt werden kann. Um etwas näher auf
00:04:30das Design von ACP und das, was man damit tun kann, einzugehen: Es ermöglicht Ihnen, Verbindungen herzustellen zwischen Clients und
00:04:37Agent-Harnesses, die über einen bestimmten Satz von Funktionen verfügen, die mit der Verbindung verknüpft sind. Und dann können Sie
00:04:45Sitzungen erstellen. Innerhalb von Sitzungen können Sie Benutzernachrichten senden – Dinge, die ein Benutzer vielleicht in die App tippt oder
00:04:51die die Client-Software senden möchte. Der Agent kann daraufhin mit Text, weiteren Bildern oder Audio,
00:04:59Text usw. oder Updates darüber antworten, was vor sich geht. Wenn also ein Tool aufgerufen wird, kann er eine Tool-Aufruf-
00:05:04Benachrichtigung senden und erklären, welches Tool aufgerufen wurde und wie die Metadaten aussahen. Und er kann auch Dinge wie
00:05:10Berechtigungsanfragen senden, so dass die Client-Software dem Benutzer zeigen kann, ob sie diesen
00:05:16Tool-Aufruf ausführen soll (ja oder nein), was über dieses Protokoll laufen kann. Und das Design ist recht einfach. Es verwendet JSON-RPC-
00:05:24Nachrichten. Und das Beste daran, was uns am meisten gefällt, ist, dass es auch erweiterbar ist. Sie sind also nicht nur auf das
00:05:29beschränkt, was im Standardprotokoll enthalten ist. Sie können benutzerdefinierte Methoden hinzufügen. Die Konvention ist, dass Sie einen Unterstrich
00:05:37setzen und dann Ihre eigenen benutzerdefinierten Methoden einfügen. Und das Schöne daran ist, dass, wenn genügend
00:05:41Harness-Projekte oder Client-Projekte dies übernehmen, wir sehen können, was wir alle gemeinsam haben, oder?
00:05:46Wenn das Codex-Team einige benutzerdefinierte Methoden hat, das Goose-Team einige benutzerdefinierte Methoden hat,
00:05:52das Client-Team einige benutzerdefinierte Methoden hat oder wer auch immer, können wir sehen, was im Ökosystem entsteht und
00:05:58was es sinnvoll macht, auf einen Standardisierungspfad zu bringen und in das Protokoll selbst zu integrieren, sodass dies sozusagen
00:06:03durch die Nutzung und durch die Community geprägt wird. Ich werde eine Demo einer Standard-I/O-Version davon vorführen.
00:06:12Ich öffne also Zed und habe hier einfach ein ganz einfaches Projekt, bei dem ich sage: Erzähl mir etwas über
00:06:18dieses Projekt. Das ist also eine einzelne HTML-Datei. Sie können also sehen, dass ich meine Anfrage in Zed eingeben konnte,
00:06:25und der hier agierende Agent ist Goose. Es verwendet also die ACP-Schnittstelle von Goose. Und Sie können sehen,
00:06:31dass Text zurückgesendet wird. Es sendet Tool-Aufruf-Informationen darüber zurück, was es gelesen hat und was es
00:06:36getan hat. Und dann hat es herausgefunden, dass es sich um eine einzelne HTML-Datei handelt, und hat sie erklärt. Und ich mache noch eine,
00:06:42ich mache noch eine. Diese stammt von einem Unternehmen namens Poolside AI. Ich sage: Erzähl mir im selben Projekt
00:06:50etwas über dieses Projekt. Und das ist ein terminalbasierter Client, der genau dieselbe Erfahrung vom
00:06:55selben Agenten erhält – eine Implementierung auf der Harness-Seite, und man kann jetzt jeden beliebigen Client verwenden, oder? Sie sehen also,
00:07:01es hat dasselbe getan. Es hat mir einige Textergebnisse zurückgegeben, es hat einen Tool-Aufruf gezeigt und dann
00:07:06hat es eine Zusammenfassung gestreamt. Das ist eine grundlegende Demo, die zwei Clients zeigt, die mit demselben
00:07:13Agenten über Standard-I/O lokal in diesem Fall kommunizieren. Aber lokal ist offensichtlich nicht genug, oder? Wenn Sie möchten, dass sich das
00:07:21durchsetzt, müssen Sie auch Remote-Unterstützung bieten können. Agenten werden in der Cloud laufen. Und als wir
00:07:25zu diesem Projekt kamen, sahen wir, dass es noch keine Remote-Unterstützung gab. Also haben wir ein HTTP-
00:07:31Transportprotokoll spezifiziert; es gibt eine HTTP-Version und ein WebSocket-Upgrade. Die Nachrichten sind jetzt also dieselben,
00:07:37die Protokollsemantik ist dieselbe, aber es gibt einen neuen Transport, der gerade eingeführt wird und der
00:07:42Remoting ermöglicht. Und so sehen wir das beim Goose-Team: Der agentische Stack besteht im Wesentlichen aus diesen
00:07:49vier wichtigen Komponenten, oder? Sie haben den Client, also die App, die der Benutzer verwendet,
00:07:54oder eine Headless-App, die irgendwo auf dem Computer läuft. Es gibt das Harness, das das Programm ist,
00:07:59das die Tool-Aufruf-Schleife implementiert. Es gibt die Tools selbst, oft MCP. Und dann gibt es das
00:08:04Modell, oder? Und wenn Sie einen Remote-Transport für das Agent Client Protocol implementieren und MCP einen Remote-
00:08:13Transport für den Tool-Aufruf hat und die Modelle seit Langem alle Remote-Endpunkte wie Antwort-
00:08:18APIs haben, haben Sie nun die Flexibilität, alle diese vier Komponenten zu verschieben. Sie
00:08:24könnten alle auf demselben Computer laufen. Das Harness könnte sich auf einem anderen Computer befinden als der Client.
00:08:29Das Modell könnte das Einzige sein, das remote ist. Die Tools könnten das Einzige sein, das remote ist.
00:08:34Sich auf Standards auszurichten und sicherzustellen, dass sie gute Transportmöglichkeiten bieten, wird es uns ermöglichen,
00:08:39alle Teile dieses agentischen Stacks zu verschieben. Und ich kann dazu auch eine kurze Demo zeigen.
00:08:46Dies ist ein Client, nur um zu zeigen, wie einfach es ist, Clients dafür zu erstellen. Ich habe das letzte Nacht
00:08:53einfach zusammengestrickt und sage: Schreib ein Gedicht. Das verbindet sich also wieder mit demselben Prozess auf meinem Computer.
00:09:01In diesem Fall lasse ich es über das Netzwerk laufen, aber es ist auf meinem Rechner.
00:09:03Es verbindet sich und sendet Goose-Anweisungen darüber, was aus der Ferne zu tun ist. Das könnte also in einem Container sein,
00:09:09es könnte in der Cloud sein, aber die Nachrichten sind dieselben und die Bibliothek, die Sie verwenden, ist dieselbe.
00:09:15Sie können also sehr, sehr einfach zwischen lokal und remote wechseln.
00:09:21Wenn Sie sich also in dieses Ökosystem einklinken möchten, fangen Sie an, mit der Unterstützung zu experimentieren,
00:09:25entweder indem Sie eigene Clients erstellen oder Harnesses erweitern.
00:09:29Dies verlinkt Sie zur Website des Agent Client Protocols, um zu erfahren, wie Sie beginnen können. Es gibt bereits eine Reihe von Clients
00:09:34und Agent-Servern. Das reicht von Editoren über Desktop-Anwendungen und mobile Anwendungen
00:09:41bis hin zu terminalbasierten Dingen. Es gibt eine enorme Ausbreitung. Und ich denke, die Anwendungsfälle sind potenziell riesig,
00:09:49oder? Wenn wir hier eine gewisse Interoperabilität hinbekommen, weil die Leute persönliche Clients erstellen können.
00:09:54Clients. Genau so möchte man das haben, dass sie Ihre Agenten orchestrieren. Man könnte quasi Clients haben,
00:10:00Geschäftsdomänen, ein einzelnes Unternehmen oder eine Reihe von Clients von einem Unternehmen erstellt wurden. Sie könnten einen White-Label-Client anpassen
00:10:06und ihn mit allen Harnesses funktionieren lassen. Und ich denke auch, wenn wir hier eine neue Kategorie schaffen,
00:10:12wird die Qualität der Clients steigen, oder? Denn jedes Mal, wenn ein Ökosystem oder ein Marktplatz entsteht
00:10:17und es viele Optionen gibt, können Benutzer mit den Füßen abstimmen, wenn Clients ihre Bedürfnisse nicht erfüllen.
00:10:22Und deshalb werden die Leute anfangen, um die Qualität der Benutzererfahrung zu konkurrieren.
00:10:26Und im Großen und Ganzen sollte dies meiner Meinung nach die Benutzererfahrung bei der Verwendung von KI verbessern.
00:10:33Das war's von mir für heute. Vielen Dank. Und wenn Sie sich mit mir unterhalten möchten, finden Sie mich
00:10:37danach oder schicken Sie mir eine E-Mail. Ich helfe Ihnen gerne dabei, sich in diese Arbeit einzubringen. Vielen Dank.

핵심 요약

Das Agent Client Protocol (ACP) etabliert einen offenen Standard für die Steuerung von KI-Harnesses durch beliebige Clients, um die Interoperabilität im agentischen Stack zu gewährleisten.

하이라이트

  • Das Open-Source-Projekt Goose begann als internes Tool bei Block und wurde an die Linux Foundation gespendet.

  • Das Agent Client Protocol (ACP) nutzt JSON-RPC-Nachrichten und ermöglicht die Erweiterung durch benutzerdefinierte Methoden mit einem Unterstrich.

  • ACP unterstützt sowohl Standard-I/O für lokale Verbindungen als auch HTTP- und WebSocket-Transporte für Remote-Szenarien.

  • Der agentische Stack besteht aus Client, Harness, Tools (meist MCP) und Modell, die sich dank Standards flexibel verteilen lassen.

타임라인

Hintergrund und das Problem individueller Harness-Schnittstellen

  • Softwareentwickler bei Block betreuen Open-Source-Projekte wie Goose, MCP und ACP.
  • Aktuelle KI-Harnesses besitzen oft maßgeschneiderte oder proprietäre Client-Schnittstellen.
  • Das Fehlen eines Standards für Clients schränkt die Flexibilität ähnlich wie isolierte Browser im frühen Web ein.

Alex Hancock arbeitet bei Block an Open-Source-KI-Projekten und ist Betreuer von MCP sowie dem Agent Client Protocol (ACP). Die bestehende Landschaft von KI-Harnesses leidet unter maßgeschneiderten Schnittstellen, bei denen oft nur eine einzige Client-Anwendung die Steuerung übernimmt. Dieses Szenario verhindert ein offenes Ökosystem, vergleichbar mit der Einschränkung, für jede Website einen spezifischen Browser nutzen zu müssen.

Das Agent Client Protocol als offene Lösung

  • Das von Zed und JetBrains vorgeschlagene Agent Client Protocol (ACP) verbindet Clients mit Agent-Harnesses.
  • Das Protokoll basiert auf JSON-RPC-Nachrichten und unterstützt Tool-Aufrufe sowie Berechtigungsanfragen.
  • Benutzerdefinierte Methoden mit Unterstrichen erlauben eine Erweiterbarkeit, die zukünftige Standardisierungen prägen kann.

ACP entstand aus der Zusammenarbeit von Editoren-Herstellern, um eine einzige Client-Implementierung zur Steuerung beliebiger Harnesses zu ermöglichen. Das Design bleibt editorneutral und verarbeitet Sitzungen, Benutzernachrichten sowie Tool-Aufruf-Benachrichtigungen. Über erweiterbare JSON-RPC-Methoden kann die Community neue Funktionen erproben und erfolgreiche Ansätze in den Standard integrieren.

Lokale Demos und Remote-Erweiterung des Stacks

  • Verschiedene Clients wie Zed oder terminalbasierte Anwendungen steuern dasselbe Agent-Harness lokal via Standard-I/O.
  • Ein neues HTTP- und WebSocket-Transportprotokoll ermöglicht die Remoteverbindung von Agenten in der Cloud.
  • Der modulare Stack aus Client, Harness, Tools und Modell lässt sich dadurch flexibel auf verschiedene Computer verteilen.

Demonstrationen mit Zed und Poolside AI verdeutlichen, dass unterschiedliche Clients identische Ergebnisse vom selben Goose-Agenten abrufen können. Um Remote-Szenarien zu unterstützen, wurde ein HTTP-Transport mit WebSocket-Upgrade ergänzt. Dadurch lassen sich Client, Harness, MCP-Tools und Sprachmodell unabhängig voneinander lokal oder in Containern betreiben.

커뮤니티 글

아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!

이 영상에 대해 글쓰기