00:00:00(Fröhliche Musik)
00:00:02- Hallo zusammen, mein Name ist Malte, ich bin der CTO von Vercel.
00:00:16Schön, dass ihr heute dabei seid.
00:00:18Anfang Januar haben wir jedem in unserem Unternehmen den Auftrag gegeben,
00:00:21herauszufinden, wie man die eigene Produktivität vervielfachen kann.
00:00:24Und was die Leute gebaut haben, haut uns immer wieder um.
00:00:27Fast jedes Team hat einen Agenten für komplexe Aufgaben entwickelt,
00:00:30und die meisten davon sind Slack-Bots, die jeder nutzen kann.
00:00:34Aber wir stießen auf ein Problem.
00:00:35Alle erledigten immer wieder dieselbe
00:00:38mühsame Integrationsarbeit.
00:00:40Jemand baute einen Agenten,
00:00:41und dann musste man die Komplexität von Slack durchschauen,
00:00:43was schwieriger ist, als es aussieht.
00:00:45Man muss Threads und Reaktionen verstehen,
00:00:47wie der Bot Nachrichten zuordnet und wie man den Status verwaltet.
00:00:50Dann fragte jemand:
00:00:51"Hey, kannst du diesen Agenten mit GitHub verbinden?"
00:00:53Und der ganze Prozess begann von vorn,
00:00:55diesmal mit den APIs von GitHub.
00:00:56Die Logik war dieselbe, aber der Plattform-Code ein anderer.
00:00:59Wir lernten schnell, dass Chat-APIs
00:01:01oberflächlich betrachtet ähnlich wirken,
00:01:03unter der Haube aber völlig verschieden sind.
00:01:05Slack unterstützt natives Streaming.
00:01:06Tokens können direkt in eine Nachricht gestreamt werden,
00:01:09während das LLM sie generiert.
00:01:10Bei Discord muss man posten, bearbeiten, posten, bearbeiten.
00:01:14GitHub? Gar kein Streaming.
00:01:16Slack hat Modals, Discord nicht.
00:01:18Microsoft Teams bietet nur schreibgeschützte Reaktionen.
00:01:21Das sind keine Kleinigkeiten, sondern fundamentale Unterschiede
00:01:23in der Funktionsweise der Plattformen.
00:01:26Selbst für einen einzelnen, einfachen Agenten
00:01:28benötigt man am Ende Unmengen an Logik,
00:01:31nur um ihn in verschiedenen Tools nutzbar zu machen.
00:01:33Es ist ein Albtraum.
00:01:34Und das ist nicht nur ein Problem von Vercel.
00:01:36Jedes Unternehmen wird herausfinden müssen,
00:01:38wie es seine Agenten auf den Oberflächen bereitstellt,
00:01:40auf denen die Arbeit bereits stattfindet.
00:01:42Das bedeutet Chat, Code-Reviews, Issue-Tracking und mehr.
00:01:45Das AI SDK löst ein ähnliches Problem für Modellanbieter.
00:01:48Man schreibt den Code einmal und es kümmert sich um
00:01:50all die API-Unterschiede,
00:01:51egal ob man GPT, Claude oder Gemini aufruft.
00:01:54Das Chat SDK macht dasselbe für interaktive Agenten.
00:01:58Es ist eine einzige API für Agenten-Interaktionen über Plattformen
00:02:01wie Slack, GitHub, Linear, Discord, Telegram,
00:02:04WhatsApp und weitere hinweg.
00:02:06Du baust den Agenten und das Chat SDK bringt ihn zu den Nutzern
00:02:09in die Apps, die sie bereits verwenden.
00:02:11Fernando hat in den letzten Wochen
00:02:15an v0-Hintergrund-Agenten gearbeitet,
00:02:16und er wird euch erklären, warum das Chat SDK
00:02:18ein entscheidender Teil dieses Stacks war.
00:02:21(Fröhliche Musik)
00:02:24(Musik hält an)
00:02:28Als ich anfing, v0-Hintergrund-Agenten zu bauen,
00:02:34war mein Ziel, dass man v0 in Slack markieren kann,
00:02:36um Pull Requests zu öffnen.
00:02:38Ich wollte einen universellen Coding-Agenten,
00:02:40der im Hintergrund laufen kann,
00:02:42in jeder Codebasis und in jeder Sprache.
00:02:45Also fing ich an zu entwickeln
00:02:47und schickte die erste Version der v0-Slack-App
00:02:49an meine Freunde.
00:02:51Und das Erste, was sie fragten, war:
00:02:53"Kann ich das auch für Linear-Issues nutzen?
00:02:56Und kann ich es in einem GitHub PR-Kommentar markieren?"
00:02:58Es erinnerte mich daran, als ich meine erste mobile App veröffentlichte
00:03:02und die Leute fragten, ob sie sie auch im Web nutzen könnten.
00:03:05Es wurde klar, dass v0 überall funktionieren muss.
00:03:09Die Erwartungen haben sich geändert.
00:03:11Ich musste also eine Entscheidung treffen.
00:03:14Bauen wir v0-Hintergrund-Agenten für jede Plattform einzeln?
00:03:18Oder könnten wir sie einmal mit einer einheitlichen API
00:03:22für alle Plattformen bauen?
00:03:24Quasi ein React Native für Chat-Agenten?
00:03:27Nun, es stellte sich heraus, dass ich jahrelang
00:03:30plattformübergreifende Apps mit React Native gebaut habe.
00:03:34Dieses Problem ist mir also nicht neu.
00:03:36Und genau hier kam das Chat SDK ins Spiel.
00:03:39Mit dem Chat SDK
00:03:40kann ich mich auf den Bau der v0-Hintergrund-Agenten konzentrieren
00:03:43und verbringe weniger Zeit damit,
00:03:45mich um die speziellen APIs jeder Plattform zu kümmern.
00:03:48Wie sieht das Ganze nun unter der Haube aus?
00:03:50Matt wird euch mehr dazu zeigen.
00:03:53(Fröhliche Musik)
00:03:55- Hallo zusammen.
00:04:11Fangen wir genau wie Fernando mit Slack an.
00:04:14Ich erwähne meinen Bot
00:04:16und erhalte eine ganz einfache "Hello World"-Antwort.
00:04:21Revolutionär, ich weiß.
00:04:23Und wenn man sich den Code ansieht,
00:04:24sieht man, wie einfach es für mich war, diesen Bot zu erstellen.
00:04:28Ich musste lediglich eine neue Chat-Instanz erstellen,
00:04:32einen "onMention"-Listener hinzufügen
00:04:35und "Hello World" zurück in den Thread posten.
00:04:38Das ist alles.
00:04:39Aber wir wollen nicht, dass Entwickler nur reine Text-Bots bauen.
00:04:43Wir wollen reichhaltige, native Erlebnisse,
00:04:45die die Vorteile jeder Plattform voll ausschöpfen.
00:04:48Und Entwickler lieben JSX.
00:04:51Deshalb haben wir JSX in das Chat SDK integriert.
00:04:55Jetzt baut ihr mit Komponenten, genau wie ihr es gewohnt seid.
00:04:58Fügen wir zwei Buttons hinzu.
00:04:59Hier unten könnt ihr sehen,
00:05:03ich ändere unsere "Hello World"-Nachricht
00:05:05in eine "Hello World"-Karte mit einem "Weiter"-Button
00:05:10und einem "Abbrechen"-Button.
00:05:11Wir fügen außerdem einen Action-Listener hinzu,
00:05:14der den vollen Namen des Benutzers nennt
00:05:17und meldet, dass "Weiter" geklickt wurde.
00:05:19Zurück in Slack erwähne ich meinen Bot erneut.
00:05:24Und wie erwartet, erhalten wir genau das, was wir gebaut haben.
00:05:29Die Komponenten werden nativ gerendert.
00:05:32Ich klicke auf "Weiter" und der Bot verarbeitet die Aktion sofort.
00:05:36Aber jetzt wird es richtig interessant.
00:05:41Was, wenn ich genau dasselbe Erlebnis auf Discord möchte?
00:05:45Ich füge den Discord-Adapter hinzu.
00:05:47Das war's schon.
00:05:48Wenn ich jetzt zurück in meinen Discord-Kanal gehe,
00:05:55kann ich meinen Bot erwähnen,
00:05:57und dieselbe UI wird nativ in Discord gerendert.
00:06:02Keinerlei Code-Änderungen für eine ganz neue Plattform.
00:06:07Das ist cool.
00:06:08Aber reden wir über Agenten.
00:06:10Hier ist ein einfacher Agent, den ich mit dem AI SDK gebaut habe.
00:06:14Und Agenten brauchen Streaming.
00:06:17Mit dem Chat SDK ist Streaming trivial.
00:06:20Ich erstelle einen Stream und poste ihn in den Thread.
00:06:23Fertig.
00:06:24Ich musste nicht nachschlagen, wie Slack Streaming handhabt
00:06:27oder wie Discord mit partiellen Updates umgeht.
00:06:30Ich habe eine einzige API genutzt.
00:06:32Wenn ich den Bot in Slack erwähne,
00:06:35sehen wir, wie er seine Antwort nativ zu uns streamt.
00:06:40Aber warum dort aufhören?
00:06:42Was, wenn ich meinem Agenten Direktnachrichten
00:06:45auf Plattformen wie WhatsApp oder Telegram schicken möchte?
00:06:49Mit dem Chat SDK ist das einfach.
00:06:52Ich füge einen "onDirectMessage"-Listener und den Adapter hinzu.
00:06:56Jetzt erhält jeder, der dem Agenten eine DM schickt, dasselbe Erlebnis.
00:07:02Wenn ich WhatsApp im Web öffne und schreibe:
00:07:06"Hi, wie geht's dir?"
00:07:08Dann sehen wir, wie der Agent auf unsere Direktnachricht antwortet,
00:07:12basierend auf dem Agenten, den wir gebaut haben.
00:07:14Nachdem wir nun einen Agenten gebaut haben,
00:07:16warum öffnen wir nicht einen Pull Request?
00:07:18Aber bevor wir das tun:
00:07:20Was, wenn derselbe Agent, mit dem ich auf WhatsApp gechattet habe,
00:07:24auch meinen Code reviewen könnte?
00:07:25Dafür braucht es nur den GitHub-Adapter.
00:07:28Ich füge hier den GitHub-Adapter hinzu
00:07:32und bringe meinen Agenten auf eine völlig neue Plattform.
00:07:35Wenn ich GitHub öffne und mir diesen Pull Request ansehe,
00:07:39kann ich den Agenten in den Kommentaren erwähnen
00:07:42und er antwortet mit demselben Direktnachrichten-Listener,
00:07:45den wir vorhin gebaut haben.
00:07:46Slack, Discord, WhatsApp, Telegram, GitHub.
00:07:51Überlegt kurz, wie unterschiedlich diese APIs sind.
00:07:56Doch mit einer Datei und ein paar Zeilen Code
00:07:59haben wir unseren Agenten auf all diese Plattformen gebracht.
00:08:01Mit dem Chat SDK baut ihr Agenten-Erlebnisse einmal
00:08:06und stellt sie mit einer einzigen API überall bereit.
00:08:09Besucht chat-sdk.dev für die Dokumentation und Vorlagen.
00:08:14Vielen Dank fürs Zuhören.
00:08:15Ich bin gespannt, was ihr damit bauen werdet.
00:08:17(Fröhliche Musik)