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!