00:00:00Hallo zusammen. Willkommen zum Vercel Community Livestream dieser Woche. Ich bin Amy, und das ist
00:00:26Jacob. Wir sind vom Community-Team hier bei Vercel. Nur zur Erinnerung, wir streamen
00:00:31dies auf X und YouTube. Wenn ihr aber sichergehen wollt, dass wir eure Fragen und Kommentare
00:00:36im Chat sehen, geht zur Community und meldet euch an. Unter [community.vercel.com/live](https://community.vercel.com/live) findet ihr
00:00:43das als erstes Event.
00:00:44Ja, am Ende der Sitzung haben wir etwas Zeit für ein paar Fragen. Wenn ihr
00:00:49während der Sitzung am Chat teilnehmt, denkt bitte daran,
00:00:55unseren Verhaltenskodex einzuhalten. Ihr könnt eure Fragen jederzeit stellen,
00:00:59und wir werden sie aufgreifen. Ich möchte unseren Gast vorstellen: Wir haben Jon Lindquist hier,
00:01:05um uns das neue Vercel-Plugin für Cloud Code zu zeigen. Hey, Jon.
00:01:09Hey, Jacob. Hey, Amy. Danke für die Einladung. Okay, fangen wir direkt damit an,
00:01:16meinen Bildschirm zu teilen, damit wir sehen können, was hier los ist. Seit einer Weile sind
00:01:23Skills der letzte Schrei, und jeder spricht darüber, welche Skills man nutzen sollte,
00:01:29um Projekte zu verbessern und Agenten Dinge zu ermöglichen, zu denen sie normalerweise nicht fähig sind.
00:01:37Die nächste Evolutionsstufe, die aus den Skills hervorgeht, nennen wir Plugins.
00:01:43Das ist etwas, das sich erst noch durchsetzen muss. Es gibt noch nicht viele Plugins,
00:01:48und die Leute experimentieren noch damit, wie man sie baut. Ich habe den ersten Entwurf des Vercel-Plugins erstellt,
00:01:56und ich möchte darüber sprechen, warum man ein Plugin baut, wann man es bauen sollte,
00:02:03warum ein Plugin statt Skills, wie sie sich ergänzen und all diese Fragen.
00:02:09Wenn ihr also Fragen dazu habt, was – ich werde darüber sprechen – ein Plugin euch ermöglichen kann,
00:02:16ob ihr eines intern oder für euch selbst bauen solltet, würde ich das gerne diskutieren.
00:02:22Darüber werden wir heute in der Sitzung sprechen. Zunächst einmal wurde ein Plugin ursprünglich
00:02:32von Cloud Code und auch Gemini initiiert, aber sie verfolgten sehr unterschiedliche Ansätze.
00:02:39Die Standardisierung von Plugins ist ein laufender Prozess. Wir hoffen, dass wir bald
00:02:44darüber sprechen können, dass ein einziges Plugin in allen Editoren funktioniert.
00:02:49Momentan sprechen wir über Cloud Code und Cursor-Unterstützung. CodeX kommt sehr,
00:02:54sehr bald, wenn nicht sogar heute, und viele andere auch. Es wird an einem
00:03:01Plugin-Standard gearbeitet. Wir können also erwarten, dass Plugins etwas sein werden,
00:03:08das man bündeln und über alle verwendeten Tools hinweg teilen kann. Davon abgesehen kennt ihr vielleicht
00:03:15Skills als Markdown-Dateien, die von eurem Agenten geladen werden können, um ihm zusätzliche Anweisungen zu geben.
00:03:23Entweder ruft man sie manuell auf, etwa mit einem Slash-Befehl, oder der Agent
00:03:29erkennt anhand der Beschreibung, dass der Skill geladen werden sollte. Es ist also sehr benutzergesteuert oder
00:03:36der Agent entscheidet basierend auf einer Bedingung in der Beschreibung. Die Steigerung eines Plugins ist nun,
00:03:44dass sie etwas namens Hooks haben. Wenn ihr an ein Plugin denkt oder an eine Sitzung,
00:03:53die ihr mit Cloud Code oder einem der Agenten-Systeme habt, könnt ihr euch vorstellen, dass sie Lebenszyklen haben.
00:03:59Ich befinde mich gerade im Vercel-Plugin-Verzeichnis. Wenn ich hier Cloud Code starte,
00:04:07werde ich fragen, welche Hooks dieses Plugin verwendet. Das wird die Hooks auflisten,
00:04:18die quasi den Lebenszyklus definieren. Ein Lebenszyklus ist der Moment, wenn die Sitzung beginnt, wenn Tools –
00:04:27bevor Tools aufgerufen werden, nachdem sie aufgerufen wurden, wenn ein Benutzer Text eingibt,
00:04:33und wenn die Sitzung endet. Es gibt noch eine ganze Reihe anderer Hooks.
00:04:39Aber für unsere Zwecke im Vercel-Plugin sind dies die, die wir derzeit basierend auf unseren Zielen nutzen.
00:04:44Um es klar zu sagen: Das ursprüngliche Ziel des Vercel-Plugins war es, Leuten zu helfen,
00:04:51Agenten auf Vercel zu veröffentlichen. Die Idee ist: Wie machen wir Agenten auf das Vercel-Ökosystem aufmerksam,
00:05:02auf alles auf der Plattform, was mit dem AI SDK oder dem Gateway zu tun hat?
00:05:11Unsere Workflows sind hier fast fertig. Alles rund um Workflows, und im Grunde wurde das
00:05:19Vercel-CLI stark aktualisiert. All diese Dinge rund um das Agent-SDK –
00:05:26oder Verzeihung, rund um das Veröffentlichen von Agenten auf Vercel. Das sind alles Dinge,
00:05:33die in den letzten Tagen, Wochen oder Monaten veröffentlicht wurden. Und all diese Agenten-Systeme wie Cloud Code
00:05:39haben diese Wissensgrenzen, die wahrscheinlich sechs Monate bis ein Jahr zurückliegen.
00:05:46Es hängt vom Modell und einer ganzen Reihe von Variablen ab. Aber sie alle wissen nichts
00:05:52über all die neuesten, großartigen Dinge, die wir veröffentlicht haben. Das Ziel des Vercel-Plugins
00:05:57ist es, den Agenten davon abzuhalten, veralteten Code oder veraltete Praktiken zu schreiben,
00:06:06und ihn auf den Stand der absolut neuesten Entwicklungen auf der Vercel-Plattform zu bringen.
00:06:11Das ist ein riesiger Vorteil, denn Modelle sind zwar schlau, aber sie wissen einfach nichts über all das.
00:06:19Und anstatt sie jedes Mal zur Recherche aufzufordern oder ein riesiges Bündel an Skills
00:06:25für jede einzelne Kleinigkeit zu haben – wenn wir einen Weg finden, einen Agenten quasi dazu zu zwingen,
00:06:32die besten Informationen über die Vercel-Plattform zu laden, dann ist das ein großer Gewinn für uns.
00:06:38Wenn man sich diese Hooks im Lebenszyklus eines Agenten ansieht – und nochmal, es gibt viele,
00:06:45viele weitere Hooks, die wir in Zukunft nutzen können oder die ihr nutzen könnt. Aber die wichtigsten
00:06:49für den Moment sind 'session start' – den wir auf verschiedene Weise nutzen – 'pre-tool use',
00:06:56'user prompt submit', 'post-tool use' und 'session end'. 'session start' und 'session end' sind,
00:07:03wie ihr wisst, der Anfang und das Ende einer Konversation mit einem Agenten. Und ihr könnt euch vorstellen,
00:07:12dass eure agents.md- oder cloud.md-Datei normalerweise das ist, was ihr bei 'session start' nutzt.
00:07:19Was können wir also bei 'session start' für die Vercel-Plattform tun? Wir könnten eine
00:07:27Vercel-Plattform-Datei laden. Das bedeutet, wenn wir uns – ich sage einfach mal –
00:07:40die vercel.md beschreiben lassen. Diese Datei können wir beim 'session start' neben einer cloud.md einbinden.
00:07:48Im Grunde könnte man ein Plugin haben, das – wenn man nur eine cloud.md-Datei teilen möchte
00:07:52und jemandem eine einfache Installation ermöglichen will – man könnte ein Plugin bauen,
00:07:59das einfach nur einen Wissensgraphen von Vercel injiziert. Das ist etwas, das wir kontinuierlich optimieren.
00:08:04Wir suchen nach Wegen, es zu komprimieren und so klein wie möglich zu machen, aber dennoch eine gute Leistung
00:08:08und ein Gleichgewicht zu wahren, was hineingehört und was nicht. Es ist sehr schwierig,
00:08:15Evaluierungen gegen all die verschiedenen Modelle und Systeme durchzuführen. Aber wir finden diese Dinge langsam heraus.
00:08:21Was dort drin steht, sind im Wesentlichen Beziehungen im Vercel-Ökosystem rund um KI,
00:08:28wann man welches Produkt nutzt, wann man was aufruft – also ein strukturiertes Verständnis
00:08:35des gesamten Vercel-Ökosystems. Das Konzept eines – ich mag es, wie es das ein Inhaltsverzeichnis nennt.
00:08:44Es ist wie der Anfang eines Buches, wenn man eine Konversation beginnt.
00:08:50Und wie wir das strukturiert und darüber nachgedacht haben, ist folgendes: Wenn man überlegt,
00:08:56wie man mit einem Agenten über Dinge spricht – man hat ein bestimmtes Vokabular, und er auch.
00:09:02Wenn man ihm ein Glossar an Begriffen geben kann, diese mit Dokumentationen verknüpft,
00:09:07mit Skills verknüpft, mit Dingen, die er laden sollte. Sobald man diese Punkte trifft, kann man sich
00:09:12überlegen: Was werde ich sagen und was soll der Agent laden und aufrufen?
00:09:19Man versucht, diese Mindmap vorab zu entwickeln, damit ich einfach ganz natürlich mit ihm sprechen kann
00:09:24und mir keine Sorgen machen muss, das AI SDK überhaupt zu erwähnen.
00:09:30Oder irgendeines der Features erwähnen zu müssen. Wenn ich einfach einen Weg finde, zu sagen:
00:09:38"Bau mir einfach diese App und veröffentliche sie." Und dann erledigt das Plugin alles.
00:09:45Entschuldigung, es erledigt alles im Plugin, so dass eine wunderschöne
00:09:52App auf Vercel veröffentlicht wird und man von dort aus iterieren kann. Ähnlich wie v0
00:09:57und einige andere Projekte für uns funktionieren. Wenn wir es so gestalten können, dass man
00:10:02ein wunderbares Erlebnis hat, ohne über das Ökosystem nachdenken zu müssen, ist das ein riesiger Gewinn. Ergibt
00:10:09das Sinn? Jacob, Amy, irgendwelche ersten Fragen dazu oder etwas im Chat?
00:10:16Jacob, ich glaube, du hast eine Frage. Entschuldigung, tut mir leid. Ich hatte eine Frage
00:10:24an dich, Jon. Da dieses Plugin als Inhaltsverzeichnis fungiert – ist das der Grund,
00:10:30warum es nicht jedes Mal aktualisiert werden muss, wenn eine neue Dokumentation
00:10:38herauskommt? Weil es im Grunde eine Sammlung von URLs ist, denen die Agenten folgen können,
00:10:43um aktuelle Docs zu finden? Oder hat das Plugin ein System für sofortige Updates? Wie
00:10:49funktioniert dieser Ansatz? Ja. Wenn man also an den Wissensgraphen am Anfang denkt,
00:10:58kann er im Grunde vieles einfach auf die neuesten Docs verweisen. Das ist eine
00:11:07Frage, die oft bei Skills aufkommt und wie wir Skills pro Bibliothek verwalten.
00:11:14Wenn jemand Version 5 eines SDKs nutzt und jemand anderes Version 6 des SDKs,
00:11:18und man versucht, sie mit Skills aus verschiedenen Versionen zu beeinflussen, die im Konflikt stehen,
00:11:22wie macht man das? Vieles davon basiert darauf, was jemand
00:11:31installiert hat. Man kann die package.json prüfen, man kann die Version prüfen. Und darauf basierend
00:11:36findet man einen intelligenten Weg, um zu entscheiden, welche Dokumentations-URLs man ansehen sollte,
00:11:44welche Skills geladen werden sollten und all diese Dinge. Das ist ein weiterer Teil der
00:11:51Preload-Phase beim 'session start', bei der einfach das Projekt des Benutzers inspiziert wird.
00:11:58Und nochmal, das passiert alles lokal. Es schaut sich das Projekt an, sieht, welche Bibliotheken
00:12:02genutzt werden, welches Setup, damit es weiß, in welche Richtung es einen weisen muss.
00:12:07Einer der häufigsten Fehler ist der Versuch, zum Beispiel 'generateObject' in der neuesten
00:12:12Version eines SDKs zu nutzen, obwohl man weiß, dass sich die API geändert hat. Also,
00:12:21die Plugins regeln das einfach. Man sollte sich keine Sorgen machen müssen, ob man dies in einem
00:12:27Legacy-Projekt oder in einem absolut neuen Projekt nutzt. Das Plugin sollte
00:12:32das handhaben können. Man sollte sich nicht um Versionsnummern oder Paketnamen
00:12:34kümmern müssen, um gar nichts – lasst das einfach Vercel für euch erledigen. Richtig.
00:12:41Und wir arbeiten kontinuierlich an Wegen – wir haben noch viele weitere Ideen, wie wir das besser machen können.
00:12:49Das Plugin wird weiterhin aktualisiert und das Ganze vorantreiben. Sonst noch Fragen?
00:12:54Ja, wie sieht der gesamte Umfang des Plugins aus? Deckt es nur Vercel-Dienste ab,
00:12:58die ich im Dashboard finde? Oder betrifft es auch die Open-Source-Bibliotheken,
00:13:04die wir unterstützen, wie Next.js, AI SDK, Workflows und so weiter?
00:13:11Ja, der anfängliche Umfang – wir haben uns anfangs entschieden, so viel wie möglich abzudecken.
00:13:16Also jede Bibliothek, alles auf der Plattform, einfach alles hineinzupacken und zu sehen,
00:13:25was am meisten genutzt wird. Intern haben alle die Telemetrie aktiviert, und man kann
00:13:32sich ja dazu entscheiden, Telemetriedaten zu teilen. So finden wir heraus, welche Skills tatsächlich
00:13:36genutzt werden und welche nicht. Auf diese Weise können wir Dinge entfernen, über die wir
00:13:40vielleicht nicht so viele Informationen benötigen, oder mehr hinzufügen, basierend auf dem, was am meisten genutzt wird.
00:13:48Offensichtlich sollten Next.js, AI SDK und die am häufigsten heruntergeladenen Dinge die meisten Informationen haben.
00:13:53Das ist ein Balanceakt zu Beginn, bei dem wir mit der ersten Veröffentlichung absichtlich
00:13:59sehr breit gefächert sind. In Zukunft werden wir es auf etwas deutlich Schlankeres
00:14:08reduzieren. Also
00:14:15ja, das ergibt absolut Sinn. Danke. Gerne. Okay, wenn man
00:14:16ein Plugin baut – und einer der Gründe, warum ich darüber in eher allgemeinen
00:14:24Begriffen spreche, ist, dass ich sehr an 'agentic driven development' interessiert bin.
00:14:29Anstatt euch genau zu zeigen, wie alles funktioniert, halte ich es für viel wichtiger, zu lernen,
00:14:36wie man darüber spricht und die Terminologie zu verinnerlichen. Dann könnt ihr einfach euren KI-Assistenten
00:14:40bitten, ähnliche Dinge zu tun. Wenn man Cloud Code sagt, er soll ein Plugin für Cloud Code
00:14:45bauen, und ihm die Dokumentation gibt, dann kann er das. Es ist also viel wichtiger,
00:14:52die Konzepte und Ideen dahinter zu diskutieren, als zu tief in den Code einzutauchen.
00:14:58Abgesehen davon ist 'session start' ein großartiger Ort, um so etwas wie ein Inhaltsverzeichnis
00:15:05einer Plattform einzufügen. So nach dem Motto: Das sind all die Dinge, die veraltet sind, basierend auf
00:15:11den Dingen, die mir wichtig sind und die für die meisten Modelle veraltet sind.
00:15:19Das bringt alles auf den Stand, wie Vercel heute aussieht. Und selbst wenn das
00:15:24das Einzige ist, was im Plugin passiert, weiß der Agent, dass er in Zukunft Dinge
00:15:31überprüfen sollte. Aber was wir auch tun können – nur so als Randnotiz – ein Grund,
00:15:37warum man das macht: Jede Sitzung in Cloud Code hat ihre eigene, eindeutige ID.
00:15:44Das erlaubt es einem, während der Sitzung sicherzustellen, dass man ein Skill-Budget hat
00:15:52und die Skills kennt, die bereits geladen wurden und solche Dinge. Man kann
00:16:01Dinge in die Umgebung der Sitzung schreiben oder an einen Speicherort für die Sitzung,
00:16:07wo wir während dieser Sitzung sicherstellen, dass wir Dinge nicht laden, die bereits geladen wurden,
00:16:15oder Aufwand duplizieren, weil wir den Überblick behalten können. Das ist ein weiterer
00:16:20großartiger Aspekt der Sitzung: Sie gibt einem die Chance, eine Sitzungs-ID zu erfassen, so dass man
00:16:26bei allen zukünftigen Hooks und allem, was innerhalb der Sitzung ausgeführt wird, eine ID hat,
00:16:30an die man anknüpfen und Dinge über die Sitzung für das eigene Plugin speichern kann.
00:16:35Cloud Code macht das auch, wenn man in ihr .cloud-Verzeichnis schaut; da sieht man Sitzungen und so weiter.
00:16:40Dieses Konzept nutzt man also für die eigenen Plugins und Tools. Gut, nachdem das geklärt ist,
00:16:47sprechen wir über 'pre-tool use' und 'post-tool use' gleichzeitig. Diese geben einem
00:16:50die Chance, Dateiänderungen zu sehen. In 'pre-tool' kann man den Inhalt der Datei abrufen,
00:16:56die gerade geändert werden soll. Hier geht es also um das Lesen von Dateien,
00:17:05das Bearbeiten oder Erstellen von Dateien. 'pre-tool' deckt auch viele andere
00:17:11Tools ab, die verwendet werden könnten, wie das Ausführen von Befehlen in der Bash.
00:17:20Man bekommt also die Chance: Bevor diese Sache passiert, gibt es da etwas, das ich tun möchte?
00:17:29Wenn wir zum Beispiel sehen, dass jemand versucht, einen spezifischen Vercel-CLI-Befehl auszuführen,
00:17:34und wir bemerken, dass es jetzt einen besseren Weg in der Vercel-CLI gibt, zum Beispiel
00:17:40hat die Vercel-CLI jetzt eine API-Option, mit der wir viel fortgeschrittenere Abfragen machen können.
00:17:47Und die Vercel-CLI wurde aktualisiert. Falls ihr sie in letzter Zeit nicht aktualisiert habt,
00:17:55sie hat viele tolle neue Features. Wir können darauf hinweisen und sagen,
00:18:00dass man dies versucht, oder sogar prüfen: Ist die Vercel-CLI veraltet? Es wäre toll,
00:18:05sie zu aktualisieren. Man hat hier also viel mehr Möglichkeiten. Es gibt einem die Chance,
00:18:11zu prüfen, ob ein Tool-Aufruf bevorsteht, sei es ein CLI-Aufruf. Das ist extrem wichtig
00:18:17für die Sandbox-CLI, für die Workflow-CLI, für all diese brandneuen
00:18:21CLIs, von denen die Modelle noch nichts wissen, weil sie erst nach den Wissensgrenzen
00:18:27veröffentlicht wurden, um sicherzustellen, dass alles korrekt gemacht wird. Das gilt also für
00:18:34Tool-Aufrufe wie Bash-Aufrufe. Bei Dateiänderungen wird es richtig interessant.
00:18:39Etwas, das wir mehr erforschen, ist das Diffen von Dateien: Diese Datei sah früher so aus,
00:18:47der Agent versucht sie so zu verändern. Ist das basierend auf unseren Bibliotheken
00:18:52eine korrekte Änderung? Oder gibt es da etwas, das verdächtig riecht? Und das führt uns,
00:18:59ich greife wieder auf das Beispiel zurück, wo man das v6 SDK installiert hat und versucht,
00:19:06'generateObject' als API zu nutzen, was ein häufiger Fall ist. Wenn man das in diesem Moment sieht –
00:19:11ich sehe, dass du versuchst, 'generateObject' zu nutzen – halten wir kurz inne und erinnern sie daran,
00:19:18wie das AI SDK tatsächlich aussieht, damit noch vor dem Testen oder Veröffentlichen
00:19:25der Fehler genau in dem Moment abgefangen wird, in dem der Agent versucht hat, die Datei zu ändern.
00:19:32Das ist eine dieser Sachen, bei denen man sich nicht auf einen Skill verlassen kann.
00:19:36Skills sind textliche Hinweise. Wenn man jemals versucht hat, in die cloud.md oder in einen Skill zu schreiben:
00:19:46"Committe niemals diese Dateien" oder "Pushe niemals, ohne dass ich in einem Branch bin".
00:19:54Ihr habt wahrscheinlich die Erfahrung gemacht, dass diese Anweisungen einen nicht immer davor schützen.
00:20:03'pre-tool use' gibt einem die Chance, diese Dinge buchstäblich auf programmatische und
00:20:13technische Weise zu stoppen. Und man kann dem Agenten andere Anweisungen und andere
00:20:21Beispiele geben, wie er es tun kann. Das ist der große Unterschied hier zwischen Skills,
00:20:28zwischen cloud.md oder agents.md Dateien: Man kann tatsächlich kontrollieren, was sich ändert,
00:20:32ob oder was gerade passiert. Und wenn man möchte, dass das passiert oder sich ändert,
00:20:41ist das der Punkt, an dem es großartig ist. Von dort aus
00:20:47erhält man ähnliche Möglichkeiten bei 'post-tool'. Man hat die Chance zu prüfen, was genau sich
00:20:51geändert hat, nachdem ein Bash-Befehl ausgeführt wurde. Was ist jetzt anders,
00:21:01nachdem ein Tool aufgerufen wurde? Das erlaubt es zwar nicht, etwas zu verhindern,
00:21:07aber man sieht das Ergebnis von etwas, das bereits geschehen ist. Und wenn das
00:21:13etwas geändert oder etwas Unerwartetes getan hat, ist es eine weitere Chance, ein Diff zu erhalten
00:21:19und zu sagen: "Das sieht irgendwie komisch aus. Sagen wir dem Agenten, dass uns das spanisch vorkommt."
00:21:25Das sind also zwei riesige Hooks im Lebenszyklus, die man beim Bauen kennen sollte. Für uns
00:21:31geht es wieder viel um die Wissensgrenze. Das ist die Sache,
00:21:38gegen die Vercel ankämpfen muss, weil wir schnell und oft veröffentlichen und
00:21:43all diese neue Technologie so rasant vorantreiben. Wir wollen diese fantastischen Sachen den Leuten zeigen.
00:21:49Und genau da kann ein Plugin wirklich sehr nützlich sein. Irgendwelche Fragen dazu?
00:21:55Wir veröffentlichen diese neuen Technologien so schnell. Und das sind einfach diese tollen Dinge,
00:22:00die wir den Leuten zeigen wollen. Und genau da kann ein Plugin wirklich sehr nützlich sein.
00:22:09Gibt es dazu Fragen?
00:22:11Ja. Wenn Dateipfade genutzt werden, um zu entscheiden, welche Skills injiziert werden, bedeutet das,
00:22:21dass wir viel gewinnen, wenn wir die Dateien in unseren Projekten stärker auf Einzelzwecke zuschneiden,
00:22:27damit genauer bestimmt werden kann, welche Skills benötigt werden?
00:22:34Zum Beispiel, wenn ich eine große Datei habe, die vielleicht fünf oder sechs unserer Bibliotheken nutzt,
00:22:39und nun können nur bis zu drei Skills hinzugefügt werden, oder es wird basierend auf dem Dateipfad
00:22:47nicht erkannt. Denkst du, das sollte man jetzt beim Erstellen von Software mit diesen Tools beachten?
00:22:51Sollte das eine Überlegung sein?
00:22:54Ich würde sagen, man sollte sich nicht um den Code kümmern müssen, den der Agent schreibt.
00:23:02Es liegt an den Plugin-Autoren und den Harness-Autoren, dafür zu sorgen, dass diese Dinge gut funktionieren.
00:23:12Also die Leute, die tatsächlich Evaluierungen durchführen und sehen, ob das einen Unterschied macht oder nicht.
00:23:17Wohingegen ich denke, dass es sehr leicht passiert, wieder in den Ingenieurs-Modus zu verfallen und zu denken:
00:23:27„Ich löse das jetzt, weil ein Mensch es so machen würde.“ Und das ist definitiv das, was ein Agent wollen würde.
00:23:33Das ist derzeit eine der größten Versuchungen für Entwickler: Problemlösung,
00:23:39also Probleme zu finden, die gar keine Probleme sind. Denn ja, es ist so,
00:23:50wenn man versucht, etwas zu reparieren und nicht weiß, wie man es testen soll – also wenn
00:23:53du weißt, wie man das gegen einen Agenten testet, dann nur zu. Wenn du dazu aber keine Lust hast,
00:24:00dann lass es einfach die Leute erledigen, die die Plugins und die Umgebungen bauen,
00:24:05denn das Testen und die Evaluierungen sind teuer. Es kostet viel Geld,
00:24:12all diese Modelle gegen diese Änderungen laufen zu lassen. Es dauert lange und ist sehr mühsam.
00:24:17Daher hoffe ich, dass sich niemand darum kümmern muss. Und ich denke,
00:24:23ich würde meine Energie vorerst für andere Dinge aufwenden. Ja.
00:24:33Ich verstehe. Es macht also keinen Sinn, meine Arbeitsweise zu ändern, wenn die nächste Version
00:24:40des Modells so gebaut wird, dass all diese Anpassungen im Grunde überflüssig werden.
00:24:47Im Grunde genommen.
00:24:48Genau. Und ich denke, das Endziel für alle Umgebungen und für Vercel ist,
00:24:56dass man wirklich nicht mehr so viel über den Code nachdenken oder ihn ansehen muss.
00:25:01Ich sage nicht, dass das jetzt schon der Fall ist. Ich sage nur, dass das das Endziel ist.
00:25:07Das ist es, worauf wir hinarbeiten: Dass man wunderschöne Software ausliefern kann.
00:25:11Dass man in der Lage ist, Ideen frei fließen zu lassen, Variationen zu erhalten und zu sehen,
00:25:19welche wirklich überzeugen, um es dann auf das zu reduzieren, was für einen selbst, die Familie
00:25:25oder die Kunden perfekt ist. Wir wollen einfach ein schönes Erlebnis schaffen, bei dem man
00:25:33nicht zu viel darüber nachdenkt, wie groß die Dateien sind. Ob man beim Schreiben
00:25:39die richtigen Design-Pattern nutzt oder welche Bibliotheken man wählt. Und ich stimme absolut zu.
00:25:48Die Versuchung zu sagen: „Nutzen wir all diese Pattern, weil die Agenten damit besser klarkommen.“
00:25:53Lass uns all das tun. Und es ist definitiv etwas, womit wir im Plugin experimentieren.
00:25:58Aber noch einmal: Wenn man es nicht testen kann, dann ist es
00:26:07so verlockend zu sagen: „Ich habe diese Änderung gemacht und es funktioniert jetzt offensichtlich besser.“
00:26:18Das ist eine dieser Fallen, denn nun, da du diese Änderung vorgenommen hast,
00:26:23beachtest du nicht mehr, wie es früher funktioniert hat und welche Auswirkungen das woanders hat.
00:26:28Vielleicht hat es für diese eine Sitzung gut funktioniert. Engineering ist jetzt einfach anders. Entschuldigung,
00:26:35ich werde wohl gerade philosophisch. Ich denke, wir verstehen das. Alles klar.
00:26:44Ein weiterer Hook ist „User Prompt Submit“. Dieser ist sehr wichtig, weil er erlaubt,
00:26:50den Text dessen zu nehmen, was der Benutzer getippt hat. Wenn sie eine Bibliothek erwähnen,
00:26:55ein Konzept oder zum Beispiel das Wort „Zeitplan“, dann laden wir
00:27:00den Cron-Skill. Das ist sehr ähnlich wie Skills funktionieren. Wenn der Benutzer oder
00:27:07wenn in der Konversation etwas erkannt wird, das zur Beschreibung passt. Aber hier
00:27:12hat man die Chance, einen Regex gegen den Benutzer-Prompt laufen zu lassen. Wenn bestimmte Keywords
00:27:20oder Muster erkannt werden, lädt man diese Skills und gibt dem Agenten Hinweise,
00:27:26wie zum Beispiel: „Vielleicht solltest du mehr Rückfragen stellen.“ Das ist der interaktive Teil,
00:27:33bei dem man sagen kann: „Der Benutzer hat dies gesagt, vielleicht brauchen wir mehr Klärung“
00:27:38oder wir laden einfach all diese Dinge und treiben es voran. Man kann
00:27:44wirklich lustige Dinge mit dem „User Prompt Submit“ machen, wenn man sein eigenes,
00:27:48benutzerdefiniertes Glossar oder eine eigene Befehlssprache haben möchte und zum Beispiel
00:27:56Dinge mit Dollarzeichen präfixen will. Wenn etwas mit einem Dollarzeichen beginnt, dann tu dies. Oder
00:28:00wenn etwas ein bestimmtes Muster hat – es ist fast so, als würde man kleine Bash-Skripte schreiben
00:28:07innerhalb des Prompts. Wenn dies erkannt wird, kann man sofort ein Tool ausführen und
00:28:13es kann innerhalb – man kann beliebige Bash-Skripte, Node-Skripte oder was auch immer
00:28:20innerhalb dieses Hooks ausführen, der außerhalb des Kontextes der Sitzung liegt. Man kann also
00:28:28alle möglichen wilden, schnellen Dinge dort machen. Wenn man zum Beispiel das Wort „Commit“
00:28:37erkennen will, um zu vermeiden, dass der Agent erst mehrere Schritte braucht, um etwas zu committen.
00:28:47Stattdessen hat man einfach ein Skript, das basierend auf den Gegebenheiten committet. Direkt nach dem Prompt
00:28:53kannst du dem Agenten sagen: „Ich habe diesen Commit-Befehl ausgeführt, du musst dich nicht
00:28:59darum kümmern.“ So spart man dem Agenten ein paar Durchgänge. Es gibt da
00:29:03einige wirklich interessante kleine Tricks, um Dinge zu beschleunigen, falls es viele
00:29:09repetitive Aufgaben gibt, statt den Agenten jedes Mal darum zu bitten. Es ist
00:29:15ein spaßiges Projekt, sich ein eigenes „User Prompt Submit“ zu bauen und sich
00:29:19eine eigene Sprache für die Kommunikation mit dem Agenten auszudenken. Aber für uns
00:29:25geht es eher darum: Wenn sie über dieses Konzept sprechen, was bedeutet das in
00:29:30Vercel-Terminologie? Es geht also um den Abgleich von Wörtern, wie zum Beispiel „Scheduling“
00:29:37mit Crons und Workflows. Und bei Wörtern wie „Parallel“ oder „Performance“ oder was auch immer,
00:29:45kann man den Agenten auf spezifische Dinge lenken, die man über Vercel weiß. Es macht
00:29:53wirklich Spaß, mit dem „User Prompt Submit“ herumzuspielen, wenn man mal ein Wochenende Zeit hat.
00:29:58Und ich wiederhole noch einmal: Es ist absolut möglich, hierher zu kommen und zu sagen: „Hilf mir,
00:30:03ein Claude Code Plugin mit User Prompt Submit zu bauen, das Dollarzeichen erkennt“
00:30:09und wenn ein Dollarzeichen erscheint, dann führe „Commit“ innerhalb des Hooks aus.
00:30:14Mit diesem Prompt hätte ich das aufbauen können, also mach dir nicht zu viele Gedanken
00:30:19über den Code, fang einfach an zu spielen. Gut, wenn man das alles
00:30:26fertig hat, ist „Session End“ die Chance, alle Dateien oder Dinge aufzuräumen, die man
00:30:32während der Sitzung geschrieben hat. Wenn man angefangen hat zu sammeln, welche Skills ausgeführt wurden,
00:30:39wenn man Informationen über Ergebnisse von aufgerufenen Tools gesammelt hat oder irgendein
00:30:48Budget oder Dinge trackt, dann ist das die Chance, dort aufzuräumen. Es gibt
00:30:51faszinierende Dinge, die man in „Session End“ tun kann. Denn es wird
00:30:57im Grunde bei Strg+C ausgeführt, also beim Beenden der Sitzung. Man kann andere Agenten starten,
00:31:05um zu sagen: „Okay, schau dir alle Dateien an, die in der Sitzung geändert wurden. Passen sie
00:31:09zu allem?“ Wir machen das zwar nicht, aber es sind wirklich interessante Dinge,
00:31:13die man beim Sitzungsende tun kann. Meine Sitzung ist beendet. Stellt diese Sitzung
00:31:20einen Fortschritt in diesem Projekt dar? Stellt sie Datenmüll dar? Gehe alle geänderten Dateien durch.
00:31:26Gibt es Duplikate von Dingen, die bereits im Projekt sind? Und falls ja, räume auf
00:31:30und benachrichtige den Benutzer irgendwie, etwa durch eine Systembenachrichtigung
00:31:37oder ein anderes Mittel, da die Sitzung ja beendet ist. Wirklich interessante,
00:31:43spannende Dinge kann man dort machen. Alles klar. Nachdem das gesagt ist,
00:31:50werde ich hier eine kleine kurze Demo schreiben. Ich werde eine Version von Claude Code starten,
00:31:56die das Vercel-Plugin nutzt, und eine, die es nicht nutzt. Ich werde
00:32:04„Claude dangerously skip permissions“ nutzen, Debug eingeschaltet lassen, das zeige ich gleich.
00:32:08Und dieses Modell wird auf Haiku eingestellt. Das ist das schnellste, quasi einfachste Modell
00:32:13für Claude Code. Und ich werde sagen: „Schreibe einfach ein Tutorial über das AI SDK.“
00:32:26Und wir werden sehen, was passiert. Ich werde es
00:32:30direkt vergleichen. Man sieht schon, wie es anfängt, den Skill zu laden. Hier ist das Plugin geladen.
00:32:37Wenn ich eine Sitzung ohne jegliche geladene Plugins starten möchte, gibt es ein Flag
00:32:46für Einstellungsquellen, das die Möglichkeit gibt, Benutzereinstellungen oder
00:32:53Projekteinstellungen zu deaktivieren – im Grunde alle Einstellungen zu ignorieren. So kann ich es ohne
00:32:59Plugins laden. Das „No Flicker“ – huch – dieses „No Flicker“ ist neu seit gestern.
00:33:05Es ist eine schöne Art für flüssiges Scrollen in Claude Code. Das aktiviere ich also auch. Und dann
00:33:12werde ich das Modell auf Opus setzen, das klügste Modell. Und wenn ich denselben Prompt eingebe,
00:33:20ein Tutorial über das SDK zu schreiben – das hier ist die Standard-Version hier drüben. Und wir
00:33:28vergleichen die Ergebnisse. Oh, huch, ich muss – ich habe das Vorherige nicht gelöscht. Lass uns
00:33:36neu anfangen. Ich starte das hier und lasse es laufen. Ich habe das heute Morgen schon
00:33:50laufen lassen und vor dem Start hier nicht aufgeräumt. Also starte ich es noch einmal neu.
00:33:56Um einen Vergleich zu ziehen. Ja.
00:34:01Alles klar. Also
00:34:04der riesige Unterschied hier ist Haiku 4.5 gegenüber Opus 4.6, richtig? Das hier
00:34:15ist millionenfach günstiger und viel, viel schneller. Und es ist einfach mit viel mehr
00:34:22Vercel-Informationen gefüttert. Wenn man also die Budgetkosten für die zusätzlichen Token vergleicht,
00:34:32die wir inkludieren, gegenüber Haiku versus Opus. Während das hier in –
00:34:38ich hätte sagen sollen: Erstelle einfach eine Markdown-Datei. Ich schätze, es fängt an, echten Code zu schreiben,
00:34:45aber das wird interessant genug sein. Mal sehen. Das ist eine Sache, die man bei einem
00:34:59der Ansätze beachten sollte, die wir für viele unserer Skills verfolgen: Wie schon erwähnt,
00:35:05aufgrund der Versionsnummern – da die verschiedenen Skills sich ändern könnten, nutzen wir Pinning.
00:35:13Lass mich das umformulieren. Verschiedene Versionen unserer Bibliotheken würden
00:35:21verschiedene Skills erfordern. Viele unserer Skills sagen: „Bitte schau in die Node-Module“,
00:35:28wo wir viele Docs bündeln, sodass die Docs quasi auch an die Version gebunden sind. Wenn man hier hineinschaut,
00:35:34sieht man, dass es tatsächlich die lokalen Docs gelesen hat. Und es geht hier durch
00:35:40und stellt dieses Tutorial zusammen. Gut. Nun schauen wir uns das an. Das hier hat
00:35:53überhaupt keine Recherche betrieben. Das wird also interessant. Letztes Mal wurde viel mehr recherchiert. Und ich
00:36:01sehe jetzt schon, dass ein veraltetes Modell genutzt wird, Sonnet 4 statt zum Beispiel
00:36:074.6. Es ist veraltet. Es wurde „generateObject“ erwähnt, was nicht das ist, was wir nutzen wollen. Wir
00:36:15nutzen V6. Und da sind schon eine Menge Dinge, die einfach veraltet sind. Ich würde nicht sagen,
00:36:23dass sie falsch sind, aber sie sind sehr, sehr veraltet für das, was man für die beste Performance
00:36:28und die Best Practices des SDKs will. Alles klar. Hat das hier etwas
00:36:37erwischt? Ja, es sieht so aus – ja, der SDK-Skill hat wohl anfangs ein Tutorial geschrieben,
00:36:51und dann bemerkte der Skill, dass es nicht auf V6 aktualisiert war, ohne dass ich
00:36:58überhaupt etwas sagen musste. Und jetzt geht es hin und aktualisiert. Es wechselte von „generateObject“ zu „generateText“.
00:37:03Und es aktualisiert alles, um sicherzustellen, dass es auf den neuesten Versionen ist. Gut,
00:37:10wir können die zwei vergleichen. Ich starte einfach eine neue Sitzung. Gehen wir hier rein und vergleichen
00:37:23die Tutorials ohne Plugin mit dem Tutorial des Vercel-Plugins hinsichtlich der Genauigkeit. Und das
00:37:44wird interessant sein, denn jedes Mal, wenn ich das zuvor ausgeführt habe, schrieb Opus eine Markdown-Datei,
00:37:48dieses Mal waren es Code-Snippets. Es wird lustig sein, den Unterschied zu sehen.
00:37:54Wenn man das macht, besonders wenn noch andere Skills parallel zu
00:38:03diesem Plugin laufen: Besteht da die Gefahr eines Konflikts, sodass veraltete Dinge
00:38:10bevorzugt werden, oder wird das Plugin eine Art höhere Priorität einnehmen?
00:38:16Das Plugin wird im Grunde Skills basierend auf seinen Mustern forciert injizieren. Wenn es
00:38:27also – dieses Risiko besteht irgendwie immer, es ist ja alles nur Kontext,
00:38:34alles nur Textdateien, die in eine Sitzung geschoben werden. Daher würde ich immer sagen:
00:38:41Nutze nur die Dinge, die du für das aktuelle Projekt willst. Installiere nur sehr
00:38:49selten einen Skill auf Benutzerebene, außer du weißt, dass du ihn in jedem einzelnen Projekt willst.
00:38:58Selbst für das Vercel-Plugin arbeiten wir an den bestmöglichen Wegen, um
00:39:06nur das zu laden, was man für das jeweilige Projekt braucht. Wir haben da viele Ideen.
00:39:11Aber eine der wahrscheinlich kontroversesten Ideen ist: Wann
00:39:23würde ein Benutzer sagen, dass er ein Vercel-Plugin installiert hat? Welche Annahme kann man daraus treffen?
00:39:30Wenn sie das Vercel-Plugin installieren und auf der Plattform eines Wettbewerbers sind und dort ein
00:39:35Projekt öffnen: Sollten wir ihnen dann von unseren Sachen erzählen? Das ist
00:39:42eine sehr kontroversielle Sache, oder? Und wenn eine Person das sieht und
00:39:47gar kein Interesse an einer Migration zu Vercel hat,
00:39:53wird sie sehr verärgert sein. Eine andere Person wird vielleicht sehr glücklich sein. Es gibt da
00:39:59einige faszinierende Aspekte. Wenn man der Theorie folgt, dass jeder
00:40:05einfach mit Agenten interagieren wird: Was ist die Etikette in einem Plugin,
00:40:15um Agenten über die tollen neuen Dinge auf der eigenen Plattform zu informieren, ohne
00:40:24den anderen Plattformen auf die Füße zu treten? Da gibt es eine Menge. Das ist sehr relevant für das,
00:40:31was ich gerade tue: Wir gehen bald mit „Workflow“ in die General Availability. Ich schreibe also
00:40:37Migrations-Leitfäden. Wenn jemand von einem Wettbewerber zu Workflow migrieren will, könnte das
00:40:43direkt einen Skill nutzen, um zu sagen: „Migriere hiervon zu Workflow.“ So macht man das,
00:40:49so geht das. Wenn man das tun will – an welchem Punkt würde ich in einem Agenten
00:40:55jemanden darüber informieren? Das ist für mich wirklich, wirklich interessant. Besonders,” Und das beschäftigt mich sehr,
00:41:00da ich genau daran gerade arbeite. Aber ja, Kontext-Konflikte
00:41:07werden in Zukunft ein Problem sein. Ich weiß nicht – der Versuch,
00:41:14abzuleiten, was der Benutzer will, basierend auf dem Projekt-Kontext und dem bisher Gefragten.
00:41:19Es wäre toll. Wir könnten technisch gesehen vergangene Konversationen ansehen und schauen,
00:41:27was sie gemacht haben. Wir könnten die Commit-Historie ansehen. Wir könnten dem GitHub CLI sagen:
00:41:35„Schau dir alles in diesem Projekt an.“ Man könnte vieles tun, um Kontext zu sammeln,
00:41:40aber das überschreitet auch Grenzen, etwa Tools aufzurufen, die gar nicht angefordert wurden.
00:41:46Viel wirklich interessantes Zeug. Es ist viel einfacher, alles
00:41:53in Vercel zu machen und einfach – statt – einen Agenten mit spezifischen Regeln
00:42:00und einem Plugin zu haben, das alles dort wunderbar ausliefert, ohne
00:42:05sich um all diese Konflikte sorgen zu müssen. Wie auch immer. Wollte ich nur erwähnen, ja.
00:42:14Zum Thema Plugin-Kontext: An welchem Punkt in diesem Prozess stehen Skills normalerweise?
00:42:19Wenn ich zum Beispiel einen Skill zum Migrieren von „Create React App“ zu „Next.js“ hätte
00:42:26und der einfach in meinem Skills-Ordner läge: Würde der dann eher automatisch aufgerufen,
00:42:32wann immer ich an einem „Create React App“-Projekt arbeite? Im Gegensatz dazu, wenn ich das Vercel-Plugin habe,
00:42:39kann ich entscheiden, wann es aufgerufen wird. Wenn ich dieselbe Migration als Plugin gebaut hätte,
00:42:47könnte ich es so einrichten, dass es nur passiert, wenn der Benutzer es explizit anfordert. Ist das das richtige Modell?
00:42:52Ich denke schon. Wir haben über
00:42:59das Konzept von „One-Shot-Skills“ oder Einmal-Skills gesprochen, die eher so sind wie:
00:43:06„Ich möchte eine bestimmte Sache tun“, wie eine Migration. Das ist eine Aufgabe, die man hat, oder
00:43:12ein aufgabenbezogener Skill, den man zu keinem anderen Zeitpunkt laden möchte, außer für diese Aufgabe.
00:43:17Er soll auf die Aufgabe begrenzt sein, nicht auf das Projekt. Er soll
00:43:22nicht auf den Benutzer begrenzt sein, sondern auf die Aufgabe. Und diese Diskussionen führen wir.
00:43:27Ich habe keine perfekte Antwort, denn im Moment ist es so: Wenn man
00:43:33einen solchen Skill geladen hat, wird er die Umgebung und die Modelle beeinflussen, basierend
00:43:41auf dem Modell und anderen Skills. Es ist schwer zu sagen, ohne genau zu wissen,
00:43:47was sonst noch im Projekt ist. Aber ja, das ist definitiv auch ein wichtiges Thema:
00:43:55aufgabenspezifische Skills. Eine weitere Frage, die mich beschäftigt, ist, wie viel
00:44:04von dieser Plugin-Architektur spezifisch für Claude Code ist. Wenn ich also ähnliches Verhalten
00:44:12in Cursor, Codex oder anderen möchte: Haben die ihr eigenes Plugin-Format? Brauche ich
00:44:18für jedes ein eigenes Plugin? Wie funktioniert das? Ja. Wir sollten bald einige Ankündigungen
00:44:25bezüglich der Spezifikation von Plugins haben, wo sich alle auf einen Standard einigen,
00:44:33um endlich Plugins zu haben, die universell und plattformübergreifend funktionieren. So ziemlich jeder
00:44:39ist da mit an Bord. Ich würde nicht sagen, dass es heute schon so weit ist, aber wenn du ein Plugin im Claude-Code-Format baust,
00:44:45kann man davon ausgehen, dass es in kurzer Zeit auch mit den anderen funktionieren wird.
00:44:54Aber ja, das ist fantastisch. Es gibt schon viel zu viele Skills-Ordner. Ich bin wirklich froh,
00:45:00dass wir hier endlich anfangen, uns auf etwas zu standardisieren. Ja. Sobald die Idee –
00:45:07ich fand es toll, als ich mit Anthropic über Plugins sprach: Der Grund, warum sie das Wort "Plugin"
00:45:13statt "Erweiterung" gewählt haben, ist, dass Plugin impliziert, dass man es ein- und ausstecken kann.
00:45:18Wenn man also ein Plugin mit einer Reihe von Skills erstellt und es nur wieder für
00:45:24eine einzelne Aufgabe verwenden möchte, sollte das sehr gut machbar sein.
00:45:33Wenn ich in meinem Projekt bin und Designer bin, möchte ich nicht, dass all meine Design-Skills
00:45:40mit den Entwickler-Skills oder was auch immer interferieren. Man möchte in der Lage sein,
00:45:46nur diese Teile einzustecken. Und ich stimme diesen Konzepten voll und ganz zu, dass
00:45:52einzelne Personen ihre individuellen Aufgaben, Rollen und Projekte haben werden. Und
00:45:59sie werden eher Plugins als Skills wollen, weil sie ihre eigenen Plugins kuratieren können,
00:46:05also ihre eigenen Skills und Hooks und alles zusammenstellen können, die vollständig
00:46:10an ihre Arbeitsweise angepasst sind.
00:46:16Bedeutet das, dass ich darüber nachdenken sollte, das Vercel-Plugin vielleicht zu trennen,
00:46:21wenn ich an einem Nicht-Vercel-Projekt arbeite?
00:46:25Ich würde sagen, zum jetzigen Zeitpunkt ja, weil es sehr aggressiv
00:46:34vorgeht. Hoffentlich bekomme ich keinen Ärger mit jemandem, wenn ich das sage. Aber
00:46:39die volle Absicht des Vercel-Plugins ist: Das ist etwas, wenn du deinen Agenten laden
00:46:46und sagen willst: "Baue mir dies". Und dann erscheint dieses Ding fast wie von Zauberhand
00:46:53auf Vercel. Das ist das ursprüngliche Ziel. Und wir sehen uns an, wie das funktioniert. Und
00:46:59basierend auf dem Feedback, das wir erhalten, nehmen wir es etwas zurück und sehen,
00:47:04dass wir definitiv mehr Erkennung brauchen, was im Projekt ist, um Dinge zu deaktivieren.
00:47:09Und das kommt sehr, sehr, sehr bald. Also, wisst ihr, lasst es wahrscheinlich
00:47:15installiert und aktiviert, denn wir arbeiten aktiv daran, worüber wir
00:47:18erst heute Morgen gesprochen haben.
00:47:23Ich verstehe. Es ist also eine Art Kompromiss, bei dem es in Zukunft vielleicht etwas besser
00:47:29verstehen wird, wann es sich selbst aufrufen soll. Aber im Moment steuert der Benutzer,
00:47:36ob dieses Plugin aufgerufen wird, indem er es für eine andere Sitzung ein- oder aussteckt.
00:47:42Ja. Und im Moment kann man einfach "/plugin" eingeben, zu den installierten Plugins rübergehen,
00:47:48mit Tab rüberwechseln, zu dem Plugin gehen, das man deaktivieren möchte. Und man kann
00:47:54aktualisieren, deinstallieren oder was auch immer. Man kann es also so deaktivieren. Und es gibt
00:48:03andere, fortgeschrittenere Tricks, wie das Einrichten benutzerdefinierter ZSH-Funktionen,
00:48:10die spezifische Einstellungen für den jeweiligen Benutzer laden – es ist alles sehr seltsam," : "dieses
00:48:17Konzept eines Profils der Person, die am Computer sitzt. Und was sind all
00:48:23die Plugins, die sie wollen, basierend auf dem, was sie gerade ansehen? Dafür gibt es keine
00:48:29perfekte Lösung. Ich hoffe aber, dass wir eine finden können.
00:48:34Es ist wie wenn ein Waymo vorfährt und alle Sitze für dich bereit einstellt,
00:48:39sobald du einsteigst.
00:48:40Ja, genau. Und ich denke, ab einem gewissen Punkt werden wir erleben, dass Agenten
00:48:49dich mehr über dich selbst fragen. Ich habe das Gefühl, dass das Konzept von Profil, Identität und Rolle
00:48:57ein fehlendes Puzzleteil ist. Es sei denn, man will annehmen, dass jeder jetzt quasi
00:49:05der vollständige Projektmanager für eine ganze Sache ist. Das sehe ich in nächster Zeit nicht.
00:49:12Ich habe einfach das Gefühl, dass manche Leute bei bestimmten Dingen bessere Ideen haben als andere.
00:49:19Also...
00:49:20Ja, schauen wir uns das mal an. Was ist interessant? Mal sehen, das sind – ja,
00:49:33es ist interessant, dass ich Opus Opus überprüfen lasse und es immer noch falsch ist, oder? Es
00:49:37empfiehlt immer noch "generate object" in V6. Lassen wir es gegen die Dokumentation prüfen.
00:49:50Es versucht zu verifizieren und sagt, dass das, was ich geschrieben habe, falsch ist. Dies
00:49:56wird immer noch als gültig, aber veraltet angezeigt. Unser Haiku hat also die neuesten Modelle
00:50:05empfohlen, und das ist für mich super wichtig. Ich weiß nicht, wie oft du schon versucht hast,
00:50:08einen Agenten zum Schreiben zu nutzen. Etwas mit KI zu schreiben. Und es heißt: "Lass uns GPT-4o nutzen",
00:50:14aber nein, das ist mittlerweile echt alt. Und es kommt nicht annähernd an die Qualität ran, die wir brauchen.
00:50:20Das ist eines dieser Dinge, die man erfassen und sagen kann: "Prüfe die neuesten Modelle
00:50:25im AI-Gateway". Man könnte sagen: "Erkenne die neuesten Modelle, frage den Benutzer,
00:50:31welche er möchte, und beschreibe jedes Modell" und all das Zeug. Während momentan
00:50:36diese Agenten immer nur GPT-4 nehmen. Es war interessant, nur mal so als Randnotiz,
00:50:43zu sehen, wie Claude Code in letzter Zeit immer öfter das Anthropic SDK empfiehlt, was es
00:50:49vorher nicht tat. Man denkt sich: Ich glaube, da optimiert jemand hinter den Kulissen
00:50:55die System-Prompts, damit sie ihr eigenes SDK empfehlen. Was ich ihnen nicht verüble. Business, oder?
00:51:03Alles klar. Ja, "generate object" ist immer noch drin. Das war also gut. Nach dem Prüfen
00:51:13der Dokumentation ist das Tutorial genauer. Mehrere Dinge, von denen ich dachte, sie seien erfunden, existieren tatsächlich.
00:51:19Das ist also Opus, wie es erkennt, dass das tatsächliche Dinge sind – das ist Haiku
00:51:25mit einem Plugin. Und Opus schreibt ein Tutorial und versucht es zu validieren. Ich musste
00:51:32ihm sagen, es solle ganz genau in die Dokumentation schauen, um herauszufinden, dass Haiku
00:51:39mit dem Plugin das quasi auf Anhieb geschafft hat. Und wenn man den Unterschied zwischen Opus
00:51:44und Haiku kennt, ist das eine große Sache. Hier ist ein Diff von allem, was es richtig gemacht hat
00:51:53für die Herausforderungen oder Änderungen. Wie auch immer, hoffentlich demonstriert das auf einfache Weise
00:52:04eines der Szenarien. Das AI-SDK ist viel, viel mehr. Dies gilt für Dinge wie Workflow
00:52:15und Sandbox mit den viel neueren Vercel-Technologien, die unglaublich sind, aber nicht
00:52:21innerhalb des Wissensstopps der Modelle liegen. Diese Unterschiede werden noch größer, weil die Modelle
00:52:28sie gar nicht erst kennen. Genau dafür ist das Vercel-Plugin da. Wenn jemand
00:52:35Fragen hat, meldet euch gerne bei mir auf X oder wo immer ihr mich finden könnt. Ich liebe es,
00:52:41darüber zu chatten, und beantworte gerne alle Bedenken. Dies ist definitiv ein Work in Progress
00:52:48und etwas, das wir immer und immer wieder iterieren werden, bis es eine magische Erfahrung ist.
00:52:52Und hoffentlich könnt ihr heute die Anfänge davon sehen. Wenn jemand
00:52:59Fragen hat, beantworte ich sie gerne. Wenn jemand Plugin-Ideen zum Brainstorming hat,
00:53:04spreche ich auch gerne darüber. Das ist also – außer jemand möchte,
00:53:14dass ich noch in etwas anderes eintauche – das, was ich heute abdecken wollte.
00:53:20Ich weiß es wirklich zu schätzen, dass du dir die Zeit genommen hast. Es ist viel zu verarbeiten. Ein großer Wandel. Wir
00:53:25haben uns mit all diesen KI-Tools so schnell bewegt.
00:53:28Ja, es wird leider nicht langsamer werden.
00:53:33Eine Frage habe ich: Wenn Leute in irgendeiner Weise beitragen wollen oder einen Bug finden
00:53:38und ihn melden möchten, wie erreichen sie dich am besten?
00:53:41Oh ja, das Repo dafür. Vercel slash, Vercel slash Plugin oder ist es Vercel slash
00:53:49Vercel Plugin?
00:53:51Ja, Vercel slash Vercel slash Vercel-Plugin.
00:53:58Alles klar. Ich werde das auch in den Chat posten, damit die Leute es haben.
00:54:03Danke. Ja, Issues dort sind super. Es wird sich rasant ändern. Ich weiß, ich habe
00:54:10direkt vor diesem Call noch einen großen PR genehmigt.
00:54:14Großartig. Okay, Jacob, noch irgendwelche anderen Fragen von deiner Seite?
00:54:20Nein, nein, ich denke, wir haben im Stream alles abgedeckt. Ja, danke für diese
00:54:24so ausführliche und tolle Demo. Ich fühle mich jetzt bereit, meine eigenen Claude-Plugins
00:54:30zu bauen. Und statt den Agenten nur anzuschreien, wenn er sich entscheidet,
00:54:37einen Force-Push auf Main zu machen, weiß ich jetzt, welche Hooks ich ihm nennen sollte,
00:54:42um sicherzustellen, dass das nicht wieder passiert. Das ist also extrem hilfreich.
00:54:45Pre-Tools sind dein Freund und deine beste Verteidigung gegen Dinge, die du nicht willst.
00:54:51Sehr schön. Vielen Dank, John. Sehr gerne. Danke an alle.
00:54:56Und danke euch allen fürs Zuschauen. Kommende Sessions findet ihr unter community.vercel.com slash
00:55:01events. Wir sehen uns beim nächsten Mal.
00:55:05Jawohl. Wir sehen uns in der Community. Einen schönen Tag noch an alle.