Agentic AI with Vercel: Saltbox One

VVercel
Computing/SoftwareInternet Technology

Transcript

00:00:00[BLANK_AUDIO]
00:00:30.
00:00:53>> Hallo und herzlich willkommen zu einer weiteren Purcell-Community-Session.
00:00:57Mein Name ist Jacob Paris, ich bin heute Ihr Gastgeber.
00:01:00Wir veranstalten diese Sessions, um coole Projekte aus der Community vorzustellen,
00:01:03von Kunden und von jedem, der tolle Sachen auf Purcell baut.
00:01:08Wir streamen das live auf LinkedIn,
00:01:10aber wenn Sie am Chat teilnehmen möchten, gehen Sie auf [community.com/live](https://community.com/live).
00:01:15Dort sehen Sie die Session direkt ganz oben auf der Seite.
00:01:18Am Ende haben wir noch Zeit für Fragen und Antworten,
00:01:21schreiben Sie Ihre Fragen also gerne währenddessen in den Live-Chat.
00:01:25Ich möchte nun unseren Gast vorstellen.
00:01:27Wir haben Shane Smith von Saltbox Management hier.
00:01:30>> Hallo.
00:01:32>> Hallo Shane, wie geht es dir heute?
00:01:35>> Sehr gut, wie geht es dir?
00:01:37>> Mir geht es auch ziemlich gut.
00:01:38Ja, du hast eine Demo für uns vorbereitet?
00:01:42>> Richtig, ich habe ein paar Inhalte vorbereitet, die ich durchgehen möchte,
00:01:46etwas Kontext und am Ende eine Live-Demo.
00:01:48>> Großartig, ich kann dir helfen, deinen Bildschirm zu teilen, wenn du anfangen möchtest.
00:01:53>> Klingt perfekt.
00:01:57Okay, während das geladen wird, fange ich mit einem kurzen Hintergrund an.
00:02:04Mein Name ist, wie Jacob schon sagte, Shane Smith, ich bin der CTO bei Saltbox Management.
00:02:09Saltbox ist ein Dienstleistungsunternehmen.
00:02:12Wir verbringen die meiste Zeit damit, Salesforce-Technologien
00:02:16für unsere Kunden zu implementieren.
00:02:18In den letzten Jahren haben wir ein Produkt für uns selbst entwickelt.
00:02:24Und wir sind an einem Punkt angelangt, an dem wir beginnen, es
00:02:28für unsere Kunden und im größeren Rahmen für die Allgemeinheit einzuführen.
00:02:31Heute werde ich darüber sprechen, wie wir das gemacht haben, speziell mit Vercel,
00:02:37und über einige der verschiedenen Technologien, die Vercel uns bietet.
00:02:41Wie Sie hier auf dem Bildschirm sehen können,
00:02:42werden wir auch über das AI Gateway sprechen.
00:02:44Kommen wir nun kurz zur Problemstellung.
00:02:49Wir haben eine Reihe von Kunden, die Salesforce nutzen.
00:02:54Und besonders in dieser agentenbasierten Welt möchten diese Benutzer
00:02:58mit Salesforce auf eine natürlichere, sprachbasierte Weise interagieren.
00:03:02Beim ersten Anwendungsfall geht es bei der Problemstellung,
00:03:06die wir zu lösen versuchen, um die Geschäftsanwender.
00:03:07Sie möchten mit ihrem Ökosystem an Salesforce-Produkten in einfacher Sprache sprechen
00:03:10und ihre Fragen so viel schneller klären können.
00:03:16Beim zweiten Fall versuchen wir, eine Lösung für die Entwickler zu finden, also für diejenigen,
00:03:20die Anpassungen innerhalb von Salesforce konfigurieren und erstellen,
00:03:23was im Grunde wir selbst sind.
00:03:25Da hat unsere Reise begonnen: Wir wollten die Entwicklung
00:03:28von Salesforce-Anwendungen mithilfe von Agenten vereinfachen.
00:03:31Das sind also die beiden Problemstellungen, die wir für uns selbst
00:03:34und für unsere Benutzer zu lösen versuchen.
00:03:35Der Hintergrund dabei ist, dass dies tatsächlich ziemlich anspruchsvoll ist.
00:03:41Ich meine, das ist der Grund, warum man Dienstleister wie uns oder andere engagiert.
00:03:45Weil es wirklich schwierig ist, den Kontext von Salesforce zu verstehen, das Unternehmen
00:03:49und den Kontext des jeweiligen Projekts zu begreifen und das Ganze
00:03:54in einen produktionsbereiten, skalierbaren Code nach Best Practices zu überführen.
00:03:58Man kann also nicht einfach zu irgendeinem LLM gehen
00:04:01und eine Frage zu Salesforce stellen. Das liefert einem zwar wahrscheinlich irgendetwas,
00:04:05aber eben nichts, was sofort produktionsbereit ist.
00:04:07Und genau das war das Ziel, das wir erreichen wollten.
00:04:12Auf diesem Weg hatten wir ein relativ kleines Produktteam, mit dem wir
00:04:16dieses ziemlich ehrgeizige Produkt entwickeln wollten.
00:04:19Deshalb wollten wir uns auf das Produkt konzentrieren und nicht so sehr auf die Infrastruktur.
00:04:24Wir wollten, dass die Infrastruktur einfach funktioniert und uns die nötigen Funktionen bietet.
00:04:28Das war also unsere Herausforderung, und wir haben darauf gesetzt, dass wir
00:04:33diese skalierbare Plattform auf der Vercel-Infrastruktur aufbauen und so umsetzen können.
00:04:40Ich werde jetzt ein wenig darüber sprechen, wie uns das tatsächlich gelungen ist.
00:04:44Wir haben im Grunde drei Ebenen in unserer High-Level-Architektur.
00:04:48Auf der obersten Ebene haben wir eine Next.js-Anwendung, die
00:04:53für die Benutzeroberfläche zuständig ist.
00:04:56Sie verfügt über alle modernen Streaming-UI-Funktionen, die man
00:05:02heutzutage von einem KI-Agenten erwartet.
00:05:04Als zweite Ebene haben wir unsere Edge- und Server-Infrastruktur.
00:05:09Wir nutzen das AI SDK, mittlerweile in Version 6, um den Agenten,
00:05:16den Agenten-Loop und das gesamte integrierte Tooling zu steuern.
00:05:21Falls Sie mit diesem SDK noch nicht vertraut sind und in die Welt der Agenten einsteigen,
00:05:25kann ich Ihnen die Nutzung nur wärmstens empfehlen.
00:05:28Es gibt Ihnen die Möglichkeit, jedes beliebige LLM zu nutzen,
00:05:34und zwar modellunabhängig. Es liefert das Framework und
00:05:37das Grundgerüst, um den Agenten-Loop aufzubauen
00:05:40und ihm im Prozess ein paar wirklich mächtige Werkzeuge an die Hand zu geben.
00:05:43Die dritte Ebene ist die eigentliche KI, also die Anbindung an das gewünschte Modell.
00:05:51Genau das mussten wir entscheiden, als wir diesen Weg einschlugen:
00:05:56Wir wollten herausfinden, welches das richtige Modell für uns ist.
00:06:00Unser Fazit war, dass es nicht das eine, für jede Situation
00:06:04perfekte Modell gibt.
00:06:06Deshalb wollten wir es so aufbauen, dass es agnostisch ist, sodass wir flexibel
00:06:10das passende Modell für die jeweilige Situation einsetzen können, wenn neue Modelle erscheinen,
00:06:14und diese ohne große Änderungen im Hintergrund integrieren können.
00:06:20Dafür haben wir uns für das AI Gateway entschieden,
00:06:23worauf ich gleich noch näher eingehen werde.
00:06:25Und dann haben wir noch unsere Hintergrund-Dienste,
00:06:30wie man ganz unten sieht, die die restliche Infrastruktur unterstützen.
00:06:35Um das AI Gateway noch etwas genauer zu betrachten:
00:06:38Auf der linken Seite sehen Sie ein Pseudo-Skript, wie das aussehen würde.
00:06:43Im Grunde hat man eine einzige Zeile, die sagt:
00:06:46"Ich verbinde mich mit dem Gateway."
00:06:49Sobald das steht, hat man das Gateway und
00:06:51kann im Grunde jedes beliebige Modell verwenden.
00:06:55In vielen Fällen nutzen wir Opus 4.6, in manchen Fällen aber auch Sonnet,
00:07:00GPTs oder in bestimmten Situationen auch Groq.
00:07:04Und das ist wirklich einer der großen Vorteile des AI Gateways:
00:07:08Man kann jedes Modell nutzen, ist an keines gebunden
00:07:10und behält diese volle Flexibilität.
00:07:12Dadurch konnten wir ein ziemlich intuitives,
00:07:18basiertes Routing einrichten, je nach Komplexität und Art der Fragen.
00:07:22Wir haben einen Klassifizierer eingebaut, mit dem wir bestimmen:
00:07:27Wie komplex ist die Frage, die der Benutzer stellt?
00:07:29Fragen sie nach einer einfachen Antwort auf eine Begrüßung?
00:07:32Oder wollen sie etwas Komplexeres, wie den Aufbau eines kompletten Flows
00:07:37für den Benutzer?
00:07:38Je nachdem leiten wir die Anfrage an unterschiedliche Modelle weiter.
00:07:40Das ermöglicht uns schnelle Antwortzeiten,
00:07:44da wir genau die richtige Komplexitätsstufe des Modells wählen,
00:07:49und liefert dem Nutzer die passende Antwort.
00:07:50Was die heutige Erfahrung mit Agenten angeht,
00:07:59erwarten die meisten Nutzer heutzutage im Wesentlichen zwei Dinge.
00:08:04Zum einen, dass Daten zum Nutzer gestreamt werden,
00:08:07sodass man in Echtzeit sieht, was passiert.
00:08:09Aber zum anderen auch: Was passiert, wenn man eine wirklich komplexe
00:08:14Anfrage hat, die mehrere Minuten, zehn Minuten oder gar Stunden dauern kann?
00:08:20Aus Produktperspektive haben wir beim Streaming angesetzt.
00:08:23Genau da glänzt das AI SDK, es startet direkt auf der Streaming-Seite.
00:08:28Auf der linken Seite sieht man ein Beispiel für eine Abfrage:
00:08:31"User Stories aus einem Meeting generieren".
00:08:33Das war einer unserer ersten Anwendungsfälle beim Erstellen dieses Tools:
00:08:37Den gesamten Kontext nehmen und User Stories für Entwickler bereitstellen.
00:08:41Als wir jedoch komplexere Anforderungen bekamen, wie das Aufsetzen eines kompletten
00:08:45B2B-Storefronts in Salesforce oder das Designen einer Experience Cloud-Site mit eigenen Seiten,
00:08:51dauerte das deutlich länger als die paar Minuten, die man an einen Browser streamen kann.
00:08:56Mit der Weiterentwicklung auf der Vercel-Plattform
00:08:59haben wir angefangen, dem Nutzer eine einheitliche UI-Erfahrung zu bieten,
00:09:05die jedoch je nach Komplexität sowohl streamen
00:09:09als auch Hintergrundprozesse starten kann.
00:09:11Das wird alles von der Vercel-Infrastruktur unterstützt –
00:09:14sowohl auf der Plattform selbst als auch durch Funktionen wie
00:09:19Sandboxes und ein paar andere Dinge, auf die ich gleich noch eingehe.
00:09:24Aus Tool-Perspektive ist das meiner Meinung nach eine der Superkräfte
00:09:28bei der Nutzung des AI SDK: Man hat einfach ein Framework, in das man sich einklinken kann.
00:09:34Wir haben mit wenigen Tools angefangen und im Laufe der Zeit
00:09:39immer mehr Tools in diesen Kategorien entwickelt, die uns quasi Hände geben,
00:09:44um mit dem Nutzer und den Salesforce-Umgebungen zu interagieren.
00:09:48Wie Sie sehen können, haben wir Dokumentengenerierung, Suche,
00:09:52Stories, Integrationen und vor allem diese Salesforce-Funktionalität hier,
00:09:57mit der wir die Umgebung verstehen, validieren, abfragen
00:10:01und auch Deployments in diese Umgebungen durchführen können.
00:10:05Das haucht diesem Agenten echtes Leben ein, weit über die bloße Nutzung eines LLMs hinaus.
00:10:10Kommen wir also dazu, dass der Agent "Hände" hat, richtig?
00:10:16Wie genau funktioniert das?
00:10:18Nun, innerhalb des Vercel-Ökosystems ist das eine der neuesten
00:10:22Funktionen, die gerade eingeführt wurden: die Sandbox-Funktion.
00:10:27Wenn Sie mit Salesforce vertraut sind
00:10:30und sich fragen, wie man damit interagiert: Entwickler und die
00:10:34technischen Teams nutzen dafür sehr oft das CLI von Salesforce.
00:10:39Damit können sie auf Terminal-Ebene mit Salesforce interagieren,
00:10:43Sandboxes erstellen, B2B-Commerce-Storefronts aufsetzen oder Deployments machen.
00:10:49Das macht die Interaktion mit Salesforce sehr einfach.
00:10:51Aber in einem flüchtigen Browser ist das ziemlich schwierig, oder?
00:10:55Man meldet sich auf irgendwelchen Seiten an, muss sich jedes Mal neu einloggen,
00:10:59was die Interaktion mit Salesforce mühsam macht.
00:11:01Deshalb haben wir diese Vercel Sandbox-Funktion genutzt,
00:11:06bei der wir dem Benutzer erlauben, sich in seiner Umgebung zu authentifizieren.
00:11:10Wir starten eine Sandbox, die uns Zugriff auf ein Dateisystem gibt
00:11:16und es uns ermöglicht, den erstellten Code oder die Dateien,
00:11:20an denen wir arbeiten, in diese Sandbox zu übertragen und dann das Salesforce CLI
00:11:26in dieser Sandbox zu nutzen, um die Dateien nach Salesforce zu pushen.
00:11:30Das ist vielleicht ein sehr spezifischer Anwendungsfall im Salesforce-Ökosystem,
00:11:35weil es dort diese Konzepte von Scratch Orgs und Sandboxes gibt. Aber ich denke,
00:11:40je tiefer wir in den Programmier-Teil des Agenten-Ökosystems einsteigen,
00:11:43desto kritischer wird diese Idee von Sandboxes.
00:11:49Denn sie bietet uns die Möglichkeit, genau die Dateistruktur zu haben,
00:11:55auf der Agenten und LLMs klassischerweise aufbauen.
00:11:58Ich denke also, das bietet einem extrem viel Flexibilität bei dem,
00:12:01was man tatsächlich tun kann.
00:12:06Um die wichtigsten Säulen hier zusammenzufassen:
00:12:10v0 war für unser Team eine riesige Erleichterung, nicht wahr?
00:12:17Wir nutzen es tatsächlich auf zwei verschiedenen Seiten.
00:12:18Wir nutzen es aus der Produktperspektive beim Bau unseres Produkts, Saltbox One.
00:12:23Und wir nutzen es auf der Dienstleistungsseite, wenn wir Salesforce-Lösungen bauen.
00:12:27Wir haben die beiden Bereiche also im Grunde miteinander verknüpft.
00:12:31Wenn Sie in S1 sind und den Kontext Ihrer Aufgabe vor sich haben,
00:12:35alle Salesforce-Informationen vorliegen und Sie diese Daten
00:12:41über Ihre Salesforce-Org sammeln können, haben wir eine eng verzahnte Integration mit v0,
00:12:45bei der Sie diese Informationen als Kontext direkt an v0 übergeben können.
00:12:51Und das ermöglicht es v0, Sie optimal bei der Code-Generierung zu unterstützen.
00:12:54Das funktioniert nicht nur für React, sondern mit dem passenden Kontext
00:12:58und den richtigen Informationen auch für Dinge wie Apex, LWCs und Flows.
00:13:01Wir konnten diese Elemente also wunderbar miteinander verbinden
00:13:05und eine wirklich nahtlose Integration schaffen.
00:13:09Wenn wir kurz innehalten und uns fragen, was wir einem anderen Team raten würden,
00:13:14wären das meine vier wichtigsten Erkenntnisse:
00:13:17Erstens: Nutzen Sie ein Gateway. Hören Sie auf, über die Modelle zu streiten,
00:13:21und wählen Sie stattdessen das richtige Modell für das richtige Tool im richtigen Moment.
00:13:25Das gibt Ihnen enorm viel Flexibilität und Handlungsspielraum.
00:13:28Zweitens: Streaming ist erst der Anfang.
00:13:31Da fangen viele Anwendungen an, die im Bereich der Agenten
00:13:35eher als Startup-Projekte starten.
00:13:38Aber am Ende braucht man eben auch diese persistenten Hintergrund-Prozesse.
00:13:42Das ist das eigentliche Ziel, auf das man hinarbeitet.
00:13:45Drittens sind es die Sandboxes, über die ich eben gesprochen habe.
00:13:48Machen Sie es greifbar, geben Sie Ihren Agenten CLI-Zugriff –
00:13:52das verleiht Ihnen echte Superkräfte.
00:13:55Und der letzte Punkt ist, die richtige Plattform zu finden.
00:13:57Für uns war das der Aufbau auf Vercel, und
00:14:01das erlaubt es uns, uns nicht auf die Infrastruktur zu konzentrieren.
00:14:04So können wir uns auf die Features und
00:14:07die Fähigkeiten konzentrieren, die wir in Saltbox One skalierbar einführen wollen.
00:14:12Damit springe ich jetzt ein wenig in die Demo
00:14:19und zeige eine dialogorientierte Salesforce-Erfahrung.
00:14:24Ich spreche ein wenig über die Story-Erstellung und
00:14:26wir sehen uns den Agenten in Aktion an.
00:14:29Geben Sie mir einen Moment, während ich auf diesen Bildschirm herüberwechsle.
00:14:34Okay, cool.
00:14:38Wir springen also hier in Saltbox One hinein, das ist eine unserer Demo-Orgs.
00:14:44Aber Sie sehen hier auf der linken Seite das, was wir unsere
00:14:48Projekte nennen, und unsere Projekte geben uns verschiedene Kontexte.
00:14:51Und in der Mitte haben wir unseren neuen Konversationsbereich.
00:14:56Darauf können wir uns hier also konzentrieren.
00:14:58Wir können all unsere verschiedenen Projekte sehen, wenn wir nach unten scrollen.
00:15:01Dies ermöglicht es uns, den richtigen Kontext in die Konversation zu laden.
00:15:05Wir haben unten unsere Tools,
00:15:08in die all unsere Integrationen übergeben werden.
00:15:12Und weiter unten haben wir tatsächlich die Möglichkeit, Kontext hinzuzufügen.
00:15:16Wir können hier ein Meeting einfügen, eine User Story, ein Artefakt,
00:15:20eine Salesforce-Org oder etwas Spezifisches in dieser Salesforce-Org.
00:15:23Das ermöglicht uns ein wirklich reichhaltiges Gespräch dieser Art.
00:15:27Ich fange also erst mal mit einem komplexeren Beispiel an.
00:15:33Und während das läuft, wechseln wir zu etwas,
00:15:37das ich im Voraus ausgeführt habe, damit wir das durchsprechen können.
00:15:40In diesem Beispiel wollen wir einen Screen Flow in Salesforce erstellen, mit dem
00:15:45wir Fallkommentare eingeben können, und wir möchten einen Bestätigungsbildschirm erhalten.
00:15:51Keine extrem komplexe Anforderung, aber man muss Flows kennen und
00:15:56wissen, wie man sie konfiguriert, wie man dorthin gelangt und
00:15:58wie man das Ganze debuggt.
00:16:00Wir lassen unseren Agenten also einfach daran arbeiten, während wir
00:16:03über einige der anderen Konversationen sprechen.
00:16:06Bevor ich wegspringe, sehen Sie hier, wie die Kontextdateien abgerufen werden.
00:16:09Das ist ein Teil des Erfolgsrezepts von Saltbox One: Wir haben viele
00:16:13Informationen über Salesforce, wie man es macht, und
00:16:16die Playbooks, damit es hier auch wirklich fehlerfrei funktioniert.
00:16:19Und man sieht, dass es ziemlich schnell zurückkam und sagte:
00:16:23"Gute Nachrichten, ich habe Ihre Instanz überprüft."
00:16:25"Es gibt aktuell keine Automatisierungen für Fallkommentare, wir können also loslegen."
00:16:29Er wird mir nun ein paar Folgefragen stellen.
00:16:32Ich sage: "Ja, du kannst die Standard-Org verwenden",
00:16:37und lasse ihn machen. Er fängt an, einen Plan auszuarbeiten.
00:16:41Währenddessen springe ich rüber
00:16:44in ein anderes Gespräch.
00:16:47Das ist eine der am häufigsten genutzten Funktionen,
00:16:52die wir in unseren Projekten für Kunden haben: ein Meeting zu übernehmen.
00:16:56In diesem Fall habe ich eine Demo-Marke namens Halston.
00:17:00Ich habe ein Meeting aufgezeichnet, in dem wir über neue Anforderungen
00:17:03für den Ausbau der Salesforce-Funktionalität gesprochen haben.
00:17:07Und ich frage ein wenig nach unserer Org. Ich wollte es basierend auf dem tun, was
00:17:11heute vorhanden ist, und basierend auf den Out-of-the-Box-Funktionen
00:17:16von Salesforce.
00:17:18Oberflächlich betrachtet eine recht einfache Anfrage, aber
00:17:21wenn man darüber nachdenkt, ist sie recht komplex, weil sie nach
00:17:26Details Ihrer Umgebung fragt. Man muss wissen, was Standard ist
00:17:30und was angepasst wurde, um die richtigen Entscheidungen zu treffen.
00:17:33In diesem Fall haben wir diese Frage gestellt und Sie sehen das Ergebnis:
00:17:37"Hier sind die Meeting-Anforderungen, die aus der Diskussion hervorgingen."
00:17:41"Und das ist der aktuelle Stand."
00:17:43"Hier ist Ihr Datenmodell." Es wurde ein schönes Mermaid-Diagramm erstellt,
00:17:46damit wir uns ansehen und bestätigen können, wie es heute aussieht.
00:17:48Und dann geht es auch schon in die Empfehlungen.
00:17:52So würde S1 vorgehen und es in diese Phasen aufteilen.
00:17:57Es würde mit Phase eins als Datenmodell starten, Store-Sichtbarkeits-Abos,
00:18:02und Ihnen dann einige Empfehlungen und Kernfragen an die Hand geben.
00:18:06Und ich kann mit ihm hin und her kommunizieren.
00:18:07Ich habe ihm also diese Antwort mit den Antworten auf die Fragen gegeben.
00:18:12Am Ende hat er mir dieses schöne Dokument geliefert, das
00:18:16die Anforderungen sehr detailliert in diese Phasen aufteilt.
00:18:19Ich kann das nehmen und in Code umwandeln.
00:18:22Ich kann es in User Stories oder andere Anforderungen übersetzen.
00:18:27Das ist eine der Superkräfte von Saltbox One: Wir haben das
00:18:31aus einer Dienstleistungsperspektive aufgebaut.
00:18:33Wir wissen, wie man Salesforce implementiert.
00:18:35Wir kennen die Best Practices.
00:18:37Wir wissen, wie man es anpackt.
00:18:38Und all das ist in diesen agentischen Kontext eingeflossen,
00:18:43den wir Saltbox One gegeben haben.
00:18:44Wenn wir nun zu unserem ursprünglichen Gespräch zurückkehren,
00:18:49sehen wir, dass wir der Standard-Org zugestimmt haben.
00:18:52Er ist den besprochenen Kontext durchgegangen und hat
00:18:55herausgefunden, wie man das am besten anstellt.
00:18:57Und wir sehen, dass er diese nette kleine Karte zur Überprüfung erstellt hat.
00:19:02Diese Karte ist unser Weg, die Aktionen des Agenten zu kontrollieren.
00:19:07Man möchte zwar, dass der Agent diesen Plan erstellt, aber
00:19:11er soll nicht völlig eigenständig loslaufen.
00:19:13Wir wollen hier immer noch den Menschen im Prozess haben.
00:19:15Deshalb haben wir diese Komponente gebaut, auf der man genau sieht,
00:19:19was wie bereitgestellt werden soll.
00:19:22Und man kann einfach auf "Freigeben und Ausführen" klicken.
00:19:25Da ich hier eine Demo mache, wird es natürlich jetzt fehlschlagen.
00:19:29Aber im echten Fall kann man das tatsächlich so bereitstellen.
00:19:33Man kann auf "Wiederholen" klicken, nachdem man sich mit dem Agenten abgestimmt
00:19:37und das Problem behoben hat.
00:19:38Und wenn es bereitgestellt ist, kann man sogar zur vorherigen Version zurückkehren,
00:19:43falls einem die neue Version nicht gefällt.
00:19:44Einen letzten Anwendungsfall zeige ich noch auf dem Bildschirm,
00:19:50bevor wir eine weitere Live-Runde machen: eine kurze Überprüfung der Org-Architektur.
00:19:55Das ist eine sehr häufige Frage, die uns ständig gestellt wird:
00:20:00"Helft uns, die Architektur oder die technischen Schulden zu verstehen,"
00:20:03"die sich darin befinden."
00:20:04"Wie bereiten wir uns darauf vor, diesen agentischen Weg"
00:20:09"in der Salesforce-Umgebung einzuschlagen?"
00:20:10Das sind alles scheinbar einfache, aber in Wirklichkeit sehr tiefgründige Fragen.
00:20:15Man kann also eine solche Frage stellen und
00:20:18ihn die lizenzierten Umgebungen und wichtigsten Erkenntnisse durchgehen lassen,
00:20:22um aufzuzeigen, wie das Objektmodell über Opportunities hinweg aussieht.
00:20:27Und wie immer werden wir in unserer Antwort
00:20:30Dinge markieren, die Sie eventuell überprüfen sollten.
00:20:34In diesem Fall haben wir eine Dokumentation, die aussieht wie...
00:20:38undokumentierte Felder über all unsere Objekte hinweg.
00:20:40Es sieht nach vielen benutzerdefinierten Feldern aus, mit Empfehlungen zum Vorgehen
00:20:45und nächsten Schritten, in die wir tiefer einsteigen können.
00:20:48Hier könnte ich also sagen: "Ich möchte das angehen."
00:20:53Und der Agent fängt an, den Fokus speziell auf den
00:20:57B2B-Commerce-Flow zu richten und wie alles miteinander interagiert.
00:21:02Er wird Abfragen an die Umgebungen richten,
00:21:05das gesamte Ökosystem drumherum betrachten und
00:21:07dann eine Synthese der Antwort zusammenstellen,
00:21:10sodass Sie die Konversation einfach fortführen können.
00:21:12Während dieser Agent im Hintergrund läuft,
00:21:16zeige ich noch ein allerletztes Beispiel.
00:21:21Wenn wir zu einem neuen Gespräch zurückkehren, kann ich einfach eine
00:21:27Confluence-Seite hineinkopieren, die das
00:21:32Ergebnis eines unserer früheren Gespräche war.
00:21:35Diese enthält alle langen Details darüber, wie die Lösung aussehen wird.
00:21:39Und ich kann schnell sagen: "Ich möchte User Stories erstellen"
00:21:43"für Phase eins in diesem Dokument."
00:21:46Das Besondere dabei ist wieder, dass nicht nur
00:21:50der Kontext dieses Dokuments einfließt, sondern auch der Ihres Projekts, der Salesforce-Umgebung,
00:21:55unserer Best Practices und des Salesforce-Ökosystems,
00:21:59um zu entscheiden, wie diese Phase eins am besten in
00:22:03überschaubare User Stories aufgeteilt wird. Es wird die Formulierung "Als Benutzer
00:22:08möchte ich..." mit einigen Stichpunkten zu den Akzeptanzkriterien erstellt.
00:22:14Das bietet Ihnen eine hervorragende Ausgangsbasis für diese User Stories.
00:22:18Und sobald diese User Stories generiert sind, kann man
00:22:22in den tieferen Details mit dem Agenten
00:22:24weiter ins Detail gehen, um sie bei Bedarf zu verfeinern.
00:22:28Da dieser Prozess nun läuft,
00:22:32springe ich zurück zum vorherigen Gespräch, wo wir gerade das Audit beendet haben.
00:22:36Wir haben einige Abfragen gemacht und den B2B-Audit-Flow erstellt.
00:22:40Man sieht, dass wir eine ziemlich gute Einschätzung des Ganze erhalten haben
00:22:45sowie Empfehlungen dazu, was die technischen Schulden sind
00:22:48oder was wir als Nächstes priorisieren sollten.
00:22:51Man erkennt also langsam, wie das alles ineinandergreift.
00:22:55Wenn ich zu meinem Beispiel zurückkehre...
00:23:00Es sieht so aus, als sei mein Bildschirm eingefroren. Einen kleinen Moment.
00:23:11Ah, hier sind wir.
00:23:14Sie sehen also im letzten Beispiel, dass wir diese User Stories erstellt haben.
00:23:18Und diese User Stories werden auf der linken Seite angezeigt,
00:23:22während die Details auf der rechten Seite stehen.
00:23:24Das gibt uns die Möglichkeit, eine Verbindung zu Asana oder Jira herzustellen,
00:23:27und ermöglicht einen kompletten Entwicklungslebenszyklus.
00:23:32Das war ein kurzer Überblick über Saltbox One, wie wir das Vercel-Ökosystem nutzen,
00:23:39wie wir die Sandboxing-Fähigkeiten, das Gateway
00:23:44und V0 einsetzen, um eine solche Anwendung aufzubauen,
00:23:49und uns wirklich auf die Features und Funktionen für unsere Kunden konzentrieren,
00:23:53statt auf die zugrunde liegende Infrastruktur.
00:23:56Damit gebe ich ab. Jacob, gab es Fragen, auf die wir eingehen wollen?
00:24:02>> Ja, danke für die coole Demo.
00:24:06Ich hatte hier ein paar Fragen.
00:24:08Zuerst war ich neugierig, wie die Berechtigungen des Agenten funktionieren.
00:24:12Hat S1 eigene Berechtigungen? Also wenn man die App einrichtet,
00:24:16erhält sie dann bestimmten Zugriff auf Salesforce, Confluence usw.?
00:24:20Oder basiert das auf der Person, die die Fragen stellt?
00:24:23Denn das ist eine knifflige Angelegenheit, sobald man all diese
00:24:26Enterprise-SSO-Integrationen im Spiel hat.
00:24:29Mich würde interessieren, für welche Lösung Sie sich entschieden haben.
00:24:32>> Ja, wir haben bei dieser Frage einiges hin und her überlegt
00:24:36und uns letztendlich für benutzerbasierte Berechtigungen entschieden.
00:24:40Wenn ein Benutzer die Plattform nutzt, authentifiziert er sich als er selbst.
00:24:45Jede Aktion, die er in Salesforce oder den anderen Anwendungen durchführt,
00:24:50läuft also über seinen spezifischen Account, entweder per OAuth
00:24:53oder über seinen API-Schlüssel, je nach unterstützter Plattform.
00:24:57Das gibt uns die Gewissheit, dass Ihr Benutzer die Aktion ausgeführt hat.
00:25:03Auf bestimmten Plattformen wie Salesforce
00:25:06haben wir zudem eine weitere Schutzebene eingebaut.
00:25:09Jedes Mal, wenn Sie eine Salesforce-Instanz verbinden,
00:25:12startet die Verbindung standardmäßig im schreibgeschützten Modus.
00:25:15Erst danach kann man sie auf Schreibrechte umstellen.
00:25:19Und selbst dann wird Ihnen vor jeder Änderung in Ihrer
00:25:23Salesforce-Umgebung immer dieser Bestätigungsbildschirm angezeigt.
00:25:26>> Okay, auf der Salesforce-Seite sieht es für die Nachvollziehbarkeit
00:25:31also so aus, dass der Benutzer die Aktionen aktiv anklickt.
00:25:37Bei einer Schreibaktion öffnete sich das Bestätigungsfenster.
00:25:39Der Benutzer musste explizit "Zustimmen und fortfahren" wählen, damit der Agent agiert.
00:25:44>> Genau.
00:25:44>> In Salesforce wird es dann so angezeigt, als hätte der Benutzer es getan.
00:25:49>> Ganz genau.
00:25:50>> Okay, perfekt, perfekt.
00:25:51Mich würde auch interessieren: Wie nutzt der Agent Sandboxes?
00:25:57Gibt es bestimmte Tool-Aufrufe, die im Hintergrund
00:26:02eine Sandbox als Implementierungsdetail aufrufen?
00:26:06Oder verfügt der Agent über Sandbox-Tools und weiß,
00:26:11dass er bestimmte Dinge in einer Sandbox über CLIs oder APIs tun muss?
00:26:16Wie haben Sie das aufgesetzt?
00:26:19>> Wir haben im Grunde zwei Haupt-Tools, welche die offizielle
00:26:25Vercel Sandbox nutzen, und ich spreche gleich noch über eine separate Sandbox.
00:26:28Die beiden offiziellen Tools kommen zum Einsatz,
00:26:33wenn Sie eine Scratch-Org mit der SF-CLI starten.
00:26:37Der zweite Anwendungsfall ist die Interaktion
00:26:43mit Salesforce für Validierungen oder Deployments
00:26:48kleinere In-Memory-Sandbox, die jedes Gespräch hat,
00:26:51bei jedem Schritt des Agenten, den wir nutzen, um alle Dateien zusammenzuführen,
00:26:54damit der Agent versteht, was in dieser In-Memory-Sandbox ist.
00:26:58Es gibt also quasi zwei verschiedene Versionen davon.
00:27:04>> Okay, gibt es irgendwelche
00:27:08Netzwerkbeschränkungen für die Sandbox, um den Zugriff einzuschränken?
00:27:14Wie sieht das Sicherheitsprofil dort aus?
00:27:20>> Auf der Seite der Vercel-Sandbox?
00:27:25>> Ja, genau.
00:27:26>> Ja, die Vercel-Sandbox wird ziemlich leer gestartet.
00:27:32Wir laden also die benötigten Dateien und geben ihr nur darauf Zugriff.
00:27:36Es ist also keineswegs unsere Codebasis, sondern S1 nimmt
00:27:40und setzt im Grunde das um, was im Plan ausgearbeitet wurde.
00:27:42Nehmen wir das gezeigte Flow-Beispiel, es würde diese Dateien nehmen.
00:27:43Es würde das Verzeichnis erstellen, das Salesforce bei der Ausführung erwartet.
00:27:47Wir laden nur die benötigten Dateien hinein.
00:27:52Es ist also keineswegs unsere gesamte Codebasis,
00:27:56sondern sie nimmt nur das, was für den Plan nötig ist.
00:28:02Bei dem gezeigten Flow-Beispiel nimmt sie diese Dateien,
00:28:05erstellt das von Salesforce erwartete Verzeichnis
00:28:10für Deployments, legt die Dateien dort ab
00:28:13und führt dann das Deployment von dort aus.
00:28:14Es ist also sehr begrenzt auf das, was wir ihr vorgeben.
00:28:20Wir haben eine Frage auf YouTube: Wie sieht das Preismodell aus?
00:28:25Wie regelt ihr die Preise?
00:28:28Basiert es auf Nutzung, Lizenzen oder einer Flatrate?
00:28:32Das ist eine hervorragende Frage.
00:28:33Wir sind noch dabei, das im Detail auszuarbeiten,
00:28:38während wir das Produkt an unsere Kunden ausrollen.
00:28:41Momentan nutzen wir ein nutzerbasiertes
00:28:48Preismodell mit Limits innerhalb der jeweiligen Stufen,
00:28:53was Konversationen, Daten und Interaktionen angeht.
00:28:55Das ist unser aktueller Ausgangspunkt.
00:28:59Aber wie wir alle in diesem Ökosystem wissen,
00:29:02ändern sich die Dinge bei Token-basierten Tools
00:29:07sehr schnell. Deshalb starten wir mit den Benutzerlizenzen.
00:29:11Ja, es ist wirklich schwer, das perfekte Modell zu finden,
00:29:16das mit der Nutzung, den Kunden und den eigenen Kosten skaliert.
00:29:20Das ist absolut nachvollziehbar.
00:29:23Sehen wir uns die nächste Frage an.
00:29:24Wie entscheidet ihr, welche Fragen an welches Modell gehen?
00:29:29Einige Dinge habt ihr an Opus weitergeleitet,
00:29:31andere wiederum an Sonnet.
00:29:33Wie wird das entschieden?
00:29:35Nutzt ihr ein Evaluierungssystem oder testet ihr
00:29:41einfach manuell, um zu sehen, ob Sonnet dafür ausreicht?
00:29:45Wie war da euer Ansatz?
00:29:46Darauf gibt es eine sich ständig weiterentwickelnde Antwort.
00:29:52Aktuell nutzen wir einen deterministischen Klassifizierer
00:29:57für die erste Frage, um die Komplexität zu bewerten.
00:30:03Fallen Wörter wie "planen"?
00:30:04Oder Wörter wie "untersuchen"?
00:30:07Das ist extrem schnell und kostenlos, oder?
00:30:12Damit kann man das sehr schnell erfassen.
00:30:15Wir starten also mit einem Regex- oder regelbasierten Ansatz.
00:30:20Wenn wir dort keinen Treffer landen, nutzen wir einen LLM-Klassifizierer.
00:30:27Wenn die Frage zum Beispiel eine bestimmte Wortanzahl überschreitet,
00:30:32lassen wir ein LLM die Komplexität einstufen.
00:30:38Dieses Modell ist mit etwa 300 Millisekunden sehr schnell.
00:30:42Danach leiten wir es an das passende Modell weiter – Opus, Sonnet oder ein anderes.
00:30:47Und wir haben auch ein Fallback-System.
00:30:49Wenn es zu komplex wird, der Nutzer dieselbe Frage noch mal stellt
00:30:54oder andere Regeln greifen, fallen wir auf unser stärkstes Modell
00:30:59zurück, damit der Nutzer die bestmögliche Antwort erhält.
00:31:06Verstehe. Und dafür nutzt ihr aktuell Haiku als Klassifizierer?
00:31:11Ja, für die erste Einstufung auf jeden Fall.
00:31:13Cool, sehr cool.
00:31:15Alles klar. Du bist ja auch Teil des v0-Botschafterprogramms.
00:31:20Wie hat dir das geholfen? Würdest du es empfehlen?
00:31:23Konntest du beim Aufbau dieses Projekts davon profitieren?
00:31:28Ja, definitiv.
00:31:30Ich kann es jedem nur empfehlen, der näher an der Community sein möchte.
00:31:36Ich habe bereits ein paar Events in verschiedenen Regionen organisiert.
00:31:41Vor etwa einem Monat war ich in Mexiko für ein Onsite-Event,
00:31:48um den Leuten dort v0 näherzubringen.
00:31:51Persönlich bringt mir das Botschafterprogramm sehr viel,
00:31:56weil ich direkten Kontakt zum Produktteam habe,
00:31:59aber auch zu anderen Leuten, die in diesem Bereich extrem engagiert sind.
00:32:03Der gegenseitige Gedankenaustausch ist einfach unglaublich wertvoll.
00:32:08Klasse. Wenn du direkten Zugriff auf die Produktentwickler hast,
00:32:13schickst du ihnen sicher eine Menge Feedback.
00:32:16Gibt es etwas, das du hier öffentlich ansprechen möchtest,
00:32:22um ein wenig netten Druck aufzubauen?
00:32:25Ich bleibe mal nett. Ich denke, das Wichtigste –
00:32:30und darüber haben wir auch schon gesprochen – ist,
00:32:34v0 mit noch mehr klassischen IDE-Funktionen auszustatten,
00:32:41die Entwickler aus ihrer lokalen Umgebung gewohnt sind.
00:32:45In den letzten Monaten kamen Sandboxing-Optionen in v0 hinzu,
00:32:49mit denen man eine echte Arbeitsumgebung starten kann.
00:32:51Das ist ein riesiger Schritt in die richtige Richtung.
00:32:55Ich hoffe einfach, dass dieser Weg konsequent weitergegangen wird.
00:33:00Großartig. Ja, das war eine lange Entwicklung.
00:33:02Früher war es nur eine ganz minimalistische Browser-IDE,
00:33:06und mittlerweile ist es fast ein vollwertiges VS Code
00:33:10mit Monaco-Integration. Es wird wirklich jeden Monat besser.
00:33:14Das stimmt absolut.
00:33:15Gut, ich glaube, das waren alle Fragen für heute.
00:33:18Vielen Dank, dass du da warst und uns diese tolle Demo gezeigt hast.
00:33:24Wo kann man dich finden, wenn man Fragen hat oder mehr über Soapbox wissen will?
00:33:32Ich bin am aktivsten auf LinkedIn.
00:33:34Vernetzt euch also gerne mit mir und schreibt mir eine Nachricht.
00:33:37Erwähnt einfach, dass ihr die Session gesehen habt.
00:33:39Dann weiß ich Bescheid und antworte sehr gerne auf eure Fragen.
00:33:44Klasse. Wir posten den Link zu deinem LinkedIn-Profil direkt im Chat.
00:33:48Wie dem auch sei, vielen, vielen Dank für deinen Besuch.
00:33:52Sehr gerne, danke dir.
00:33:55Und danke an alle anderen fürs Zuschauen.
00:33:59Die nächste Community-Session findet schon bald statt...
00:34:05Ich schaue mal kurz in den Kalender.
00:34:10Eigentlich sollte ich das vorher wissen.
00:34:15Ah, sie ist für Donnerstag geplant, steht aber noch nicht im Kalender.
00:34:20Schaut also in ein paar Tagen einfach noch mal vorbei.
00:34:22Da haben wir dann die nächste Session.
00:34:24Bis dahin sehen wir uns in der Community.
00:34:27Habt alle einen schönen Tag!

Key Takeaway

Durch die Kombination des Vercel AI Gateways für modellunabhängiges Routing und der Vercel Sandbox für sichere Salesforce-CLI-Ausführungen ermöglicht Saltbox One eine skalierbare, benutzergesteuerte KI-Entwicklung ohne eigene Serverinfrastruktur.

Highlights

  • Die Salesforce-Integrationsplattform Saltbox One nutzt das Vercel AI Gateway für ein dynamisches, kostenbasiertes Routing zwischen Modellen wie Claude 3.5 Sonnet, Claude 3 Opus und GPT-Modellen.

  • Der integrierte deterministische Klassifizierer stuft einfache Erstanfragen in nur 300 Millisekunden regelbasiert ein, bevor komplexere Anfragen an ein LLM übergeben werden.

  • Mithilfe der Sandbox-Funktion von Vercel führt die Plattform CLI-Befehle von Salesforce in einer isolierten Umgebung aus, um Code-Deployments direkt auszuführen.

  • Nutzerberechtigungen laufen vollständig benutzerbasiert über OAuth oder API-Schlüssel, wobei jede schreibende Aktion in Salesforce eine explizite manuelle Bestätigung im UI erfordert.

  • Die Next.js-Anwendung kombiniert Echtzeit-Streaming über das Vercel AI SDK für schnelle Interaktionen mit persistenten Hintergrundprozessen für mehrstündige Deployments.

Timeline

Herausforderungen bei der KI-gestützten Salesforce-Entwicklung

  • Unternehmen benötigen eine natürliche, sprachbasierte Interaktion mit komplexen Salesforce-Produkten.
  • Standard-LLMs liefern ohne tiefen architektonischen Kontext keine produktionsbereiten Code-Anpassungen nach Best Practices.
  • Ein kleines Produktteam erfordert die Fokussierung auf Kernfunktionen statt auf den Aufbau einer eigenen Serverinfrastruktur.

Die manuelle Konfiguration von Salesforce-Umgebungen ist zeitaufwendig und fehleranfällig. Geschäftsanwender sowie Entwickler benötigen präzise Antworten, die den spezifischen Kontext des jeweiligen Projekts berücksichtigen. Um den operativen Aufwand zu minimieren, setzt die Architektur vollständig auf die Serverless-Infrastruktur von Vercel.

Die dreischichtige Systemarchitektur von Saltbox One

  • Eine Next.js-Anwendung steuert die Benutzeroberfläche und unterstützt moderne Streaming-Funktionen.
  • Das Vercel AI SDK verwaltet den Agenten-Loop und die Integration externer Werkzeuge.
  • Das Vercel AI Gateway ermöglicht eine modellunabhängige Anbindung an verschiedene LLMs wie Claude und GPT.

Die Architektur trennt die Präsentationsebene strikt von der Logik. Durch den Einsatz des AI SDK bleibt das System flexibel gegenüber neuen Modellveröffentlichungen. Das AI Gateway erlaubt einen schnellen Austausch der Backend-Modelle über eine einzige Konfigurationszeile im Code.

Modell-Routing und die Grenzen von reinem Streaming

  • Ein Klassifizierer entscheidet anhand der Komplexität einer Frage über das am besten geeignete Modell.
  • Einfache Interaktionen nutzen schnelles Streaming direkt im Browser des Benutzers.
  • Komplexe Aufgaben wie das Aufsetzen ganzer Storefronts erfordern persistente Hintergrundprozesse außerhalb des Browser-Timeouts.

Das System vermeidet unnötige Kosten und Latenzen, indem es einfache Fragen an kleinere, schnellere Modelle leitet. Erst bei komplexen logischen Aufgaben oder der Generierung ganzer Abläufe wechselt die Anwendung auf leistungsstärkere Modelle. Für langlaufende Aufgaben, die das Limit einer typischen HTTP-Verbindung überschreiten, werden robuste Hintergrund-Worker initiiert.

Ausführung von Entwickler-Werkzeugen über Vercel Sandboxes

  • Agenten benötigen Werkzeuge für Dokumentensuche, Jira-Integrationen und Salesforce-Abfragen.
  • Die Vercel Sandbox stellt dem Agenten ein isoliertes Dateisystem und Terminal-Zugriff bereit.
  • Das offizielle Salesforce-CLI wird innerhalb der Sandbox ausgeführt, um direkte Code-Deployments zu realisieren.

Um echte Änderungen in einer Salesforce-Umgebung vorzunehmen, simuliert die Plattform das Verhalten eines menschlichen Entwicklers. Die Sandbox wird isoliert gestartet und erhält ausschließlich Zugriff auf die für die aktuelle Aufgabe relevanten Dateien. Dadurch wird verhindert, dass die gesamte Codebasis des Kunden offengelegt oder gefährdet wird.

Praktische Demonstration: Vom Meeting-Protokoll zur User Story

  • Meeting-Transkripte lassen sich direkt in strukturierte User Stories und visuelle Mermaid-Datenmodelle übersetzen.
  • Ein interaktiver Freigabe-Bildschirm garantiert, dass keine automatisierten Schreibaktionen ohne menschliche Zustimmung erfolgen.
  • Die generierten User Stories werden direkt mit Systemen wie Jira oder Asana synchronisiert.

In der Live-Demo wird gezeigt, wie eine unstrukturierte Anforderung analysiert und mit dem Ist-Zustand einer Salesforce-Org abgeglichen wird. Das Tool visualisiert bestehende Datenmodelle und listet undokumentierte Felder auf. Änderungen an der Live-Umgebung werden erst wirksam, wenn der Benutzer im UI explizit auf eine Bestätigungskarte klickt.

Sicherheitsprofil, Berechtigungen und technische Details

  • Die App agiert ausschließlich im Kontext des angemeldeten Benutzers über OAuth oder API-Schlüssel.
  • Ein Haiku-basiertes LLM bewertet Erstanfragen mit einer Latenz von ca. 300 Millisekunden.
  • Die Integration von Sandboxing-Funktionen in v0 nähert die Browser-Entwicklung an klassische IDE-Workflows an.

Im abschließenden Q&A-Teil wird die Sicherheitsarchitektur detailliert. Jede Salesforce-Verbindung startet standardmäßig im schreibgeschützten Modus. Zur Klassifizierung von Nutzeranfragen wird ein extrem schneller, zweistufiger Filter aus Regex-Regeln und einem flinken Hilfs-LLM (Haiku) verwendet, um das kosteneffizienteste Modell für die Folgeaufgabe auszuwählen.

Community Posts

View all posts