Agentic AI with Vercel: Saltbox One

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

Transcript

00:00:00[SILENCE]
00:00:30.
00:00:53>> Bonjour et bienvenue à tous pour cette nouvelle session de la communauté Purcell.
00:00:57Je m'appelle Jacob Paris, et je serai votre hôte aujourd'hui.
00:01:00Nous organisons ces sessions pour mettre en valeur les super projets de la communauté,
00:01:03de nos clients et de tous ceux qui conçoivent des choses formidables sur Purcell.
00:01:08Nous diffusons ce live O2X sur LinkedIn, mais
00:01:10si vous voulez participer au chat, rendez-vous sur [community.com/live](https://community.com/live), et
00:01:15vous pourrez voir la session en haut de la page.
00:01:18À la fin, nous réserverons un moment pour les questions-réponses, alors
00:01:21n'hésitez pas à poser vos questions dans le chat en direct tout au long de la présentation.
00:01:25Je tiens à vous présenter notre invité.
00:01:27Nous accueillons Shane Smith de Saltbox Management.
00:01:30>> Bonjour.
00:01:32>> Salut Shane, comment vas-tu aujourd'hui ?
00:01:35>> Très bien, et toi ?
00:01:37>> Ça va plutôt bien.
00:01:38Alors, tu nous as préparé une démo ?
00:01:42>> Oui, j'ai une présentation à vous faire,
00:01:46un peu de contexte, puis une démo en direct à la fin.
00:01:48>> Super, je peux t'aider à partager ton écran si tu veux commencer.
00:01:53>> C'est parfait.
00:01:57Bien, pendant que ça s'affiche, je vais commencer par une rapide présentation.
00:02:04Comme Jacob l'a dit, je m'appelle Shane Smith et je suis le directeur technique de Saltbox Management.
00:02:09Saltbox est une société de services.
00:02:12Nous passons la majeure partie de notre temps à déployer
00:02:16les technologies Salesforce pour nos clients.
00:02:18Et ces deux dernières années, nous avons développé notre propre produit.
00:02:24Nous arrivons maintenant au point où nous commençons à le déployer
00:02:28chez nos clients et à plus grande échelle auprès du grand public.
00:02:31Aujourd'hui, je vais vous expliquer comment nous y sommes parvenus, notamment avec Vercel,
00:02:37et présenter certaines des différentes technologies que Vercel nous offre.
00:02:41Comme vous pouvez le voir à l'écran,
00:02:42nous allons également parler de l'AI Gateway.
00:02:44Pour entrer un peu plus dans le vif du sujet,
00:02:49nous avons un ensemble de clients qui utilisent Salesforce.
00:02:54Et particulièrement dans ce monde axé sur les agents, ces utilisateurs veulent interagir avec
00:02:58Salesforce de manière beaucoup plus naturelle.
00:03:02Ainsi, pour notre premier cas d'usage, le problème que nous cherchons à résoudre concerne
00:03:06les utilisateurs professionnels.
00:03:07Ils veulent pouvoir s'adresser à leur écosystème de produits Salesforce en langage naturel
00:03:10et obtenir des réponses à leurs questions beaucoup plus rapidement.
00:03:16Et pour le deuxième cas, nous essayons de simplifier la vie des concepteurs, de ceux qui
00:03:20configurent et créent des personnalisations au sein de Salesforce,
00:03:23ce qui nous concerne directement en grande partie.
00:03:25C'est ainsi que notre aventure a commencé : nous voulions faciliter la création
00:03:28de solutions Salesforce grâce aux agents autonomes.
00:03:31Voilà donc les deux problématiques que nous essayons de résoudre pour nous-mêmes
00:03:34et pour nos utilisateurs.
00:03:35Et pour vous donner un peu de contexte, y parvenir est en réalité un vrai défi.
00:03:41C'est d'ailleurs pour cela que les entreprises font appel à des sociétés de services comme la nôtre.
00:03:45Car comprendre le contexte de Salesforce, comprendre l'entreprise,
00:03:49le contexte du projet qu'ils essaient de mener, et transformer tout cela
00:03:54en un code de production évolutif respectant les bonnes pratiques, c'est extrêmement difficile.
00:03:58Vous ne pouvez pas simplement aller sur n'importe quel LLM
00:04:01et poser une question sur Salesforce. Vous obtiendrez probablement une réponse, mais
00:04:05ce ne sera pas quelque chose de prêt pour la production.
00:04:07C'était donc l'objectif que nous essayions d'atteindre.
00:04:12Tout en avançant dans cette voie, nous avons une équipe produit relativement restreinte pour
00:04:16construire ce produit assez ambitieux.
00:04:19Nous voulions donc nous concentrer sur le produit lui-même, et non sur l'infrastructure.
00:04:24Nous voulions que l'infrastructure fonctionne de manière transparente et nous offre les capacités nécessaires.
00:04:28C'était là notre défi, et notre pari était de réussir à bâtir
00:04:33cette plateforme évolutive sur l'infrastructure Vercel pour y parvenir.
00:04:40Je vais vous expliquer un peu plus en détail comment nous avons fait.
00:04:44Notre architecture de haut niveau s'organise en trois grands niveaux.
00:04:48Tout en haut, nous avons une application Next.js qui gère
00:04:53l'interface utilisateur visible par tous.
00:04:56Elle intègre toutes les fonctionnalités classiques d'affichage en streaming
00:05:02que l'on attend d'un agent de nos jours.
00:05:04Ensuite, au deuxième niveau, nous avons notre logique Edge et serveur.
00:05:09Nous utilisons l'AI SDK, plus précisément la version 6 désormais, pour piloter l'agent,
00:05:16gérer la boucle d'actions de l'agent et tous les outils qui y sont intégrés.
00:05:21Si vous ne connaissez pas ce SDK et que vous vous lancez dans le monde des agents,
00:05:25je vous recommande vivement de l'utiliser.
00:05:28Il vous permet d'exploiter n'importe quel LLM du marché.
00:05:34De manière totalement agnostique, il fournit le cadre et
00:05:37la structure dont vous avez besoin pour construire la boucle de l'agent
00:05:40et lui conférer des outils très puissants tout au long du processus.
00:05:43Le troisième niveau concerne l'IA proprement dite, à savoir la connexion au modèle de notre choix.
00:05:51C'est précisément ce que nous devions décider au tout début de notre démarche,
00:05:56nous voulions comprendre quel était le bon modèle à adopter.
00:06:00Et notre conclusion a été qu'il n'y a pas toujours un seul modèle idéal
00:06:04pour toutes les situations.
00:06:06Nous voulions donc concevoir le système de manière agnostique, afin de pouvoir connecter
00:06:10et utiliser le bon modèle selon la situation, au fur et à mesure des nouvelles sorties.
00:06:14Et de pouvoir les intégrer sans avoir à modifier toute la structure en arrière-plan.
00:06:20Nous avons donc choisi l'AI Gateway pour cela, et
00:06:23j'y reviendrai plus en détail dans un instant.
00:06:25Enfin, nous avons nos services de support,
00:06:30comme vous pouvez le voir en bas, qui soutiennent le reste de l'infrastructure.
00:06:35Pour revenir un peu plus en détail sur l'AI Gateway,
00:06:38vous pouvez voir sur le côté gauche un exemple de script illustrant son fonctionnement,
00:06:43où l'on retrouve essentiellement une ligne indiquant :
00:06:46"Je vais me connecter à la passerelle."
00:06:49Une fois cela configuré, vous disposez de la passerelle et
00:06:51vous pouvez utiliser absolument le modèle que vous souhaitez.
00:06:55Dans de nombreux cas, nous utilisons Opus 4.6, mais parfois nous utilisons Sonnet,
00:07:00des modèles GPT ou même Groq selon les situations.
00:07:04C'est vraiment l'un des grands points forts de l'AI Gateway :
00:07:08vous utilisez le modèle de votre choix, vous n'êtes pas bloqué,
00:07:10vous conservez une totale flexibilité.
00:07:12Cela nous a permis de mettre en place un système de routage
00:07:18très intuitif basé sur la complexité et le type de questions.
00:07:22Nous avons ainsi intégré ce classificateur qui nous permet de déterminer le niveau
00:07:27de complexité de la question posée par l'utilisateur.
00:07:29S'agit-il d'un simple message de salutation ?
00:07:32Ou bien demandent-ils quelque chose de beaucoup plus complexe, comme concevoir un flux de travail
00:07:37entier pour l'utilisateur ?
00:07:38Selon le cas, nous pouvons orienter la requête vers différents modèles.
00:07:40Cela nous garantit des réponses rapides,
00:07:44en choisissant le niveau de complexité de modèle le plus adapté à la demande,
00:07:49afin de fournir la meilleure réponse possible à l'utilisateur.
00:07:50De nos jours, concernant l'expérience utilisateur avec les agents,
00:07:59il y a principalement deux fonctionnalités majeures que les gens attendent.
00:08:04D'une part, un affichage des résultats en streaming
00:08:07pour pouvoir suivre ce qui se passe en temps réel.
00:08:09Mais d'autre part, que se passe-t-il lorsque vous avez une requête
00:08:14très complexe qui peut nécessiter plusieurs minutes, voire des dizaines de minutes ou des heures ?
00:08:20C'est pourquoi, du côté produit, nous avons commencé par le streaming.
00:08:23C'est là que l'AI SDK excelle particulièrement, sur cet aspect du streaming.
00:08:28Sur le côté gauche, vous pouvez voir un exemple de demande :
00:08:31"générer des user stories à partir d'une réunion".
00:08:33C'était l'un de nos tout premiers cas d'usage lors du développement de cet outil,
00:08:37à savoir synthétiser tout le contexte pour fournir des user stories prêtes pour les développeurs.
00:08:41Mais lorsque nous avons commencé à traiter des demandes plus complexes, comme déployer une boutique
00:08:45B2B complète dans Salesforce ou concevoir un site Experience Cloud avec des pages personnalisées,
00:08:51ce sont des tâches qui demandent bien plus de temps qu'un simple flux de données vers le navigateur.
00:08:56Ainsi, à mesure que notre maîtrise de la plateforme Vercel grandissait,
00:08:59nous avons commencé à proposer cette expérience unifiée dans l'interface utilisateur,
00:09:05capable à la fois de diffuser en streaming et de lancer des processus en arrière-plan,
00:09:09selon la complexité de la tâche.
00:09:11Et tout cela est pris en charge par l'infrastructure de Vercel,
00:09:14tant sur la plateforme elle-même qu'en utilisant des fonctionnalités
00:09:19de sandbox et d'autres outils dont je parlerai dans un instant.
00:09:24Du côté des outils, je pense que le véritable super-pouvoir lorsqu'on utilise
00:09:28un outil comme l'AI SDK, c'est de disposer d'un cadre de travail dans lequel on peut simplement se brancher.
00:09:34Nous avons commencé avec seulement quelques outils, puis au fil du temps, nous en avons développé
00:09:39de plus en plus dans différentes catégories pour donner de véritables moyens d'action à notre agent,
00:09:44lui permettant d'interagir avec l'utilisateur et les environnements Salesforce.
00:09:48Comme vous pouvez le voir, nous avons de la génération de documents, de la recherche,
00:09:52de la création de stories, des intégrations, et surtout cette brique Salesforce
00:09:57qui nous permet de comprendre l'environnement, de le valider, de l'interroger et
00:10:01d'y effectuer directement des déploiements.
00:10:05Cela donne une tout autre dimension à l'agent, bien au-delà de ce qu'offre un simple LLM de base.
00:10:10Alors, concrètement, quand on dit que l'agent a des moyens d'action,
00:10:16comment cela se passe-t-il ?
00:10:18Dans l'écosystème Vercel, c'est l'une de leurs
00:10:22toutes nouvelles fonctionnalités en cours de déploiement : cette capacité à utiliser un sandbox.
00:10:27Si vous connaissez bien Salesforce et
00:10:30la manière dont on interagit avec, vous savez que les développeurs
00:10:34et les profils techniques utilisent énormément la CLI de Salesforce.
00:10:39Cela leur permet, directement depuis un terminal, d'interagir avec Salesforce,
00:10:43de créer des sandboxes, de configurer des boutiques B2B Commerce ou de faire des déploiements.
00:10:49Cela facilite grandement les interactions avec Salesforce.
00:10:51Mais faire cela dans un navigateur éphémère est très complexe, n'est-ce pas ?
00:10:55Vous devez vous connecter à chaque fois sur les sites,
00:10:59ce qui rend les interactions avec Salesforce assez fastidieuses.
00:11:01Nous avons donc commencé à exploiter cette fonctionnalité de sandbox de Vercel,
00:11:06qui permet concrètement à l'utilisateur de s'authentifier auprès de son environnement.
00:11:10Cela génère un sandbox qui nous donne accès à un système de fichiers,
00:11:16nous permettant de déployer le code que nous écrivons ou les fichiers
00:11:20que nous manipulons directement dans ce sandbox, puis d'utiliser la CLI Salesforce
00:11:26au sein même du sandbox pour envoyer ces fichiers vers Salesforce.
00:11:30C'est sans doute un cas d'usage très spécifique à l'écosystème Salesforce car il
00:11:35repose sur ces concepts d'organisations temporaires (scratch orgs) et de sandboxes, mais je pense
00:11:40qu'à mesure que nous progressons dans le développement des agents de codage,
00:11:43cette idée d'utiliser des sandboxes est absolument cruciale.
00:11:49Elle nous offre en effet la structure de fichiers
00:11:55sur laquelle les agents et les LLMs s'appuient traditionnellement.
00:11:58Je pense que cela apporte énormément de flexibilité quant à
00:12:01ce que vous pouvez concrètement réaliser.
00:12:06Et pour finir de résumer les piliers sur lesquels nous avons bâti notre solution,
00:12:10V0 a été un atout fantastique pour notre équipe.
00:12:17Nous l'utilisons en fait de deux manières différentes.
00:12:18Nous l'utilisons côté produit pour développer notre solution Saltbox One,
00:12:23mais également côté services lorsque nous configurons Salesforce pour nos clients.
00:12:27Ce que nous avons fait, c'est connecter les deux ensemble.
00:12:31Ainsi, lorsque vous êtes dans Saltbox One avec tout le contexte de ce que vous essayez de faire,
00:12:35toutes les informations de Salesforce et la capacité de collecter
00:12:41toutes les données de votre organisation Salesforce, nous avons une intégration étroite avec
00:12:45V0 qui vous permet de lui transmettre directement ces informations comme contexte.
00:12:51Grâce à cela, V0 peut vous aider à générer du code.
00:12:54Et cela ne s'applique pas seulement à React ; avec le bon contexte
00:12:58et les bonnes informations, il peut générer de l'Apex, des composants LWC ou des flux.
00:13:01Nous avons réussi à coupler ces deux éléments
00:13:05pour créer une intégration particulièrement fluide et efficace.
00:13:09Si nous devions nous arrêter un instant et nous demander ce que nous conseillerions à une autre équipe,
00:13:14voici les quatre grands enseignements que j'en retire.
00:13:17Premièrement, utilisez une passerelle (gateway). Arrêtez de débattre pour savoir quel modèle est le meilleur,
00:13:21et commencez à choisir le bon modèle pour le bon outil au bon moment.
00:13:25Cela vous apporte énormément de flexibilité et de possibilités.
00:13:28Deuxièmement, le streaming n'est qu'un début.
00:13:31C'est souvent par là que commencent beaucoup d'applications de type startup
00:13:35dans le monde des agents.
00:13:38Mais vous avez impérativement besoin d'une capacité d'exécution persistante en arrière-plan.
00:13:42C'est le véritable palier supérieur vers lequel vous devez tendre.
00:13:45Troisièmement, le sandbox dont je parlais à l'instant.
00:13:48Concrétisez les actions en donnant un accès CLI à vos agents,
00:13:52cela leur confère de véritables super-pouvoirs.
00:13:55Et le dernier point consiste à trouver la bonne plateforme.
00:13:57Pour nous, cela a été de construire sur Vercel, ce qui
00:14:01nous permet de ne pas nous soucier de l'infrastructure.
00:14:04Cela nous permet de nous concentrer sur les fonctionnalités et
00:14:07les capacités que nous essayons de déployer dans Saltbox One à grande échelle.
00:14:12Sur ce, je vais passer rapidement à la démo
00:14:19et vous présenter une expérience conversationnelle avec Salesforce.
00:14:24Nous allons parler un peu de la génération d'histoires
00:14:26et voir l'agent en action.
00:14:29Laissez-moi juste un instant pour changer d'écran.
00:14:34Super, parfait.
00:14:38Voici Saltbox One, c'est l'une de nos organisations de démonstration.
00:14:44Vous pouvez voir sur le côté gauche ce que nous appelons
00:14:48nos projets, et ces projets nous donnent différents contextes.
00:14:51Et au centre, nous avons notre nouveau panneau de conversation.
00:14:56Nous pouvons donc nous concentrer là-dessus.
00:14:58Nous pouvons voir tous nos différents projets en faisant défiler vers le bas.
00:15:01Cela nous permet de charger le bon contexte dans la conversation.
00:15:05Nous avons nos outils tout en bas,
00:15:08là où toutes nos intégrations sont transmises.
00:15:12Et encore en dessous, nous avons la possibilité d'ajouter du contexte.
00:15:16On peut y glisser une réunion, une user story, un livrable,
00:15:20une organisation Salesforce ou un élément spécifique de celle-ci.
00:15:23Cela nous permet d'avoir une conversation extrêmement riche.
00:15:27Je vais commencer par un exemple un peu plus complexe pour débuter.
00:15:33Et pendant qu'il s'exécute, nous allons passer à autre chose,
00:15:37ou à quelque chose que j'ai déjà lancé à l'avance pour qu'on puisse en discuter.
00:15:40Dans cet exemple, nous voulons créer un screen flow dans Salesforce qui
00:15:45nous permet de saisir des commentaires de requête et d'obtenir un écran de confirmation.
00:15:51Ce n'est pas un besoin très complexe, mais cela demande de s'y connaître en flows,
00:15:56de savoir comment les configurer, comment y accéder et
00:15:58comment les déboguer.
00:16:00Nous allons donc laisser notre agent travailler là-dessus pendant que
00:16:03nous abordons d'autres conversations.
00:16:06Et avant de changer d'onglet, vous pouvez voir qu'il récupère des fichiers de contexte.
00:16:09C'est un peu la recette secrète de Saltbox One : nous avons énormément
00:16:13d'informations sur Salesforce, sur la façon de procéder,
00:16:16et les guides pratiques pour que tout fonctionne correctement.
00:16:19Et vous pouvez voir qu'il a été très rapide pour revenir et me dire :
00:16:23"Bonne nouvelle, j'ai vérifié votre instance.
00:16:25Il n'y a actuellement aucune automatisation sur les commentaires de requête, on peut y aller."
00:16:29Il va me poser quelques questions de suivi.
00:16:32Je vais lui dire oui, tu peux utiliser l'organisation par défaut,
00:16:37et je le laisse faire, il va commencer à élaborer un plan.
00:16:41Mais pendant qu'il s'occupe de ça, je vais
00:16:44passer à une autre conversation.
00:16:47C'est en fait l'une des fonctionnalités les plus utilisées
00:16:52dans nos projets pour nos clients : la possibilité de traiter une réunion.
00:16:56Dans ce cas précis, j'ai une marque de démonstration appelée Halston.
00:17:00J'ai enregistré une réunion où nous avons évoqué de nouveaux besoins concernant
00:17:03le développement de fonctionnalités dans Salesforce.
00:17:07Et je lui pose des questions sur notre organisation, je voulais que ce soit basé sur
00:17:11ce qui existe aujourd'hui et sur les fonctionnalités
00:17:16standards de Salesforce.
00:17:18À première vue, c'est une demande assez simple, mais
00:17:21quand on y réfléchit, c'est en réalité assez complexe car cela demande
00:17:26les détails de votre environnement, et il faut savoir ce qui est standard
00:17:30et ce qui est personnalisé pour prendre les bonnes décisions.
00:17:33Nous avons donc posé cette question et vous pouvez voir qu'il revient avec :
00:17:37"Voici les besoins issus de cette réunion."
00:17:41Et voici ce que vous avez actuellement.
00:17:43Voici votre modèle de données, présenté sous forme d'un joli diagramme Mermaid
00:17:46pour que nous puissions examiner et confirmer l'état actuel.
00:17:48Et ensuite, il commence à faire des recommandations.
00:17:52Voici comment S1 aborderait la chose, en la découpant en plusieurs phases.
00:17:57On commencerait par la phase une avec le modèle de données, le stockage des abonnements,
00:18:02puis il propose des recommandations et des questions clés.
00:18:06Et je peux interagir directement avec lui.
00:18:07Je lui ai donc répondu en lui donnant les réponses à ces questions.
00:18:12Et au bout du compte, il m'a généré ce très beau document qui détaille
00:18:16les besoins pour chacune de ces phases avec beaucoup de précision.
00:18:19Et je peux prendre cela pour le transformer en code.
00:18:22Je peux le transformer en user stories ou en tout autre type de spécifications.
00:18:27C'est vraiment l'un des superpouvoirs de Saltbox One : nous avons conçu cela
00:18:31du point de vue des services de conseil.
00:18:33Nous savons comment implémenter Salesforce.
00:18:35Nous connaissons les meilleures pratiques.
00:18:37Nous savons comment aborder ces projets.
00:18:38Et tout cela est intégré dans le contexte agentique que nous avons
00:18:43donné à Saltbox One.
00:18:44Si nous revenons à notre conversation de départ,
00:18:49on voit que nous avons validé l'utilisation de l'organisation par défaut.
00:18:52Il a parcouru tout le contexte dont nous avons parlé,
00:18:55déterminé la meilleure façon de procéder.
00:18:57Et on peut voir qu'il a créé cette jolie petite carte à valider.
00:19:02Cette carte est notre moyen de contrôler ce que l'agent est autorisé à faire.
00:19:07On veut que l'agent prépare ce plan,
00:19:11mais on ne veut pas qu'il l'exécute tout seul.
00:19:13Nous voulons toujours garder l'humain dans la boucle.
00:19:15Nous avons donc conçu ce composant où l'on peut voir exactement
00:19:19ce qui va être déployé et comment ce sera déployé.
00:19:22Et vous avez juste à cliquer sur "approuver et exécuter".
00:19:25Évidemment, comme je fais une démo en direct, ça ne va pas marcher.
00:19:29Mais en temps normal, vous pouvez lancer le déploiement.
00:19:33Vous pouvez cliquer sur "réessayer" après avoir échangé avec l'agent
00:19:37pour résoudre le problème.
00:19:38Et si c'est déployé, vous pouvez même revenir à la version précédente si
00:19:43cette nouvelle version ne vous convient pas.
00:19:44Un dernier cas d'usage que je vais afficher à l'écran
00:19:50avant de faire un dernier test en direct est un rapide audit de l'architecture de votre organisation.
00:19:55C'est une question très courante qu'on nous pose tout le temps :
00:20:00"Aidez-nous à comprendre l'architecture ou la dette technique
00:20:03qui s'est accumulée."
00:20:04Comment se préparer à adopter cette approche agentique
00:20:09dans notre environnement Salesforce ?
00:20:10Ce sont des questions simples en apparence, mais très profondes.
00:20:15Et ce que vous pouvez faire, c'est poser ce genre de question
00:20:18pour qu'il analyse vos environnements de licence, vos conclusions clés,
00:20:22et schématise ce à quoi ressemble votre modèle d'objets sur les opportunités.
00:20:27Et encore une fois, l'une des choses que nous ferons toujours dans notre réponse
00:20:30est de signaler les éléments qui méritent d'être examinés.
00:20:34Ici, nous avons de la documentation sur, semble-t-il,
00:20:38des champs non documentés sur l'ensemble de nos objets.
00:20:40On a visiblement beaucoup de champs personnalisés, des recommandations sur l'approche à suivre,
00:20:45et les prochaines étapes sur lesquelles nous pouvons nous pencher.
00:20:48Dans ce cas, je pourrais dire que je veux approfondir ce point.
00:20:53Et ce qu'il va faire, c'est affiner sa recherche spécifiquement autour
00:20:57du flux commerce B2B et de la façon dont tout interagit.
00:21:02Il va aller interroger les environnements,
00:21:05analyser tout l'écosystème aux alentours
00:21:07puis formuler une synthèse de la réponse,
00:21:10et vous pouvez poursuivre la conversation.
00:21:12Pendant que cet agent tourne en arrière-plan,
00:21:16je vais vous montrer un tout dernier exemple.
00:21:21Si nous ouvrons une nouvelle conversation, je peux
00:21:27y déposer une page Confluence qui était
00:21:32le résultat de l'une de nos précédentes discussions.
00:21:35Elle contient tous les détails de ce à quoi ressemblera la solution.
00:21:39Et je peux rapidement lui demander de créer des user stories
00:21:43pour la phase une de ce document.
00:21:46Et là encore, ce qui est vraiment fort, c'est qu'il rassemble non seulement
00:21:50le contexte de ce document, mais aussi de votre projet, de votre environnement Salesforce,
00:21:55de nos meilleures pratiques, de l'écosystème Salesforce, pour
00:21:59décider de la meilleure façon de découper cette phase une en
00:22:03user stories gérables, en écrivant la formulation initiale "En tant qu'utilisateur,
00:22:08je souhaite..." avec quelques puces détaillant les critères d'acceptation.
00:22:14Cela vous donne une excellente base de départ pour vos user stories.
00:22:18Et une fois ces user stories générées, vous pouvez aller
00:22:22encore plus loin dans le détail grâce aux échanges
00:22:24avec l'agent si vous souhaitez affiner leur contenu.
00:22:28Pendant que celle-ci s'exécute,
00:22:32je reviens à notre conversation précédente où nous venons de terminer l'audit.
00:22:36Nous avons fait quelques requêtes, extrait le flux d'audit B2B.
00:22:40Vous pouvez voir que nous avons obtenu une très bonne évaluation de la situation,
00:22:45ainsi que des recommandations sur la dette technique
00:22:48ou sur ce que nous devrions prioriser.
00:22:51Vous commencez donc à voir comment tout cela s'articule.
00:22:55Si je reviens à mon exemple,
00:23:00on dirait que mon écran est figé, donnez-moi une seconde.
00:23:11Voilà.
00:23:14Vous pouvez voir dans notre dernier exemple que nous avons généré ces user stories.
00:23:18Elles s'affichent sur le côté gauche avec
00:23:22les détails correspondants sur la droite.
00:23:24Et cela nous donne la possibilité de les intégrer dans Asana ou Jira,
00:23:27permettant ainsi de gérer tout le cycle de vie du développement.
00:23:32Voilà pour ce tour d'horizon rapide de Saltbox One, de notre utilisation de l'écosystème Vercel,
00:23:39des environnements de test (sandboxing), de la passerelle (gateway)
00:23:44et de V0 pour concevoir une application comme celle-ci,
00:23:49ce qui nous permet de nous concentrer sur les fonctionnalités pour nos clients,
00:23:53plutôt que sur l'infrastructure sous-jacente.
00:23:56Sur ce, Jacob, y avait-il des questions que tu voulais aborder ?
00:24:02>> Oui, tout à fait. Merci pour cette super démo.
00:24:06J'avais effectivement quelques questions.
00:24:08Tout d'abord, je me demandais comment fonctionnent les permissions des agents.
00:24:12Est-ce que S1 possède ses propres permissions, par exemple lorsque vous configurez l'application,
00:24:16elle obtient certains accès à Salesforce, Confluence, etc. ?
00:24:20Ou est-ce que cela dépend de la personne qui pose les questions ?
00:24:23Parce que c'est un aspect assez délicat à gérer une fois que vous avez toutes ces
00:24:26intégrations SSO d'entreprise.
00:24:29Je suis donc curieux de savoir pour quelle solution vous avez opté.
00:24:32>> Oui, nous avons pas mal hésité sur ce point en nous posant
00:24:36exactement la même question, et nous avons finalement opté pour des permissions basées sur l'utilisateur.
00:24:40Ainsi, quand l'utilisateur se connecte, il s'authentifie sous sa propre identité.
00:24:45Toute action qu'il effectue dans Salesforce ou dans d'autres applications est
00:24:50liée à son compte utilisateur spécifique via son protocole OAuth ou
00:24:53sa clé API, selon la plateforme que nous prenons en charge.
00:24:57Cela nous permet de garantir que c'est bien l'utilisateur qui a réalisé l'action.
00:25:03Mais sur certaines plateformes comme Salesforce,
00:25:06nous avons également ajouté un autre niveau de sécurité,
00:25:09qui consiste à ce que chaque fois que vous connectez une instance Salesforce,
00:25:12la connexion est initialement configurée en lecture seule.
00:25:15Vous avez ensuite la possibilité de lui attribuer des droits d'écriture.
00:25:19Et une fois cela fait, vous verrez systématiquement s'afficher cet écran de validation
00:25:23pour toute modification qui s'apprête à être effectuée dans votre environnement Salesforce.
00:25:26>> D'accord, donc du côté de Salesforce, pour l'auditabilité,
00:25:31toutes les actions de l'utilisateur découlent de ses clics.
00:25:37Lorsqu'il y avait une action d'écriture, la validation s'affichait.
00:25:39L'utilisateur devait explicitement cliquer sur accepter et continuer pour lancer l'agent.
00:25:44>> Exactement.
00:25:44>> Et dans Salesforce, l'action apparaîtrait comme ayant été effectuée par l'utilisateur.
00:25:49>> Exactement.
00:25:50>> D'accord, parfait, c'est très clair.
00:25:51Je me demandais aussi comment l'agent utilise lui-même les sandboxes.
00:25:57Est-ce que vous avez des appels d'outils spécifiques qui déclenchent
00:26:02implicitement une sandbox comme un détail d'implémentation interne ?
00:26:06Ou bien l'agent dispose-t-il d'outils de sandbox dédiés et sait-il qu'il y a certaines tâches
00:26:11qu'il doit impérativement effectuer dans une sandbox, là où se trouvent ses CLI ou API ?
00:26:16Je suis curieux de savoir comment vous avez géré ça.
00:26:19>> En fait, nous avons deux outils principaux qui exploitent la sandbox officielle
00:26:25de Vercel, et je parlerai d'un autre type de sandbox dans un instant.
00:26:28Les deux outils officiels sont : quand vous lancez un scratch org,
00:26:33nous lançons toujours un Sandbox Vercel et nous le configurons via la SF CLI.
00:26:37Le second cas d'usage, c'est lors de l'interaction avec Salesforce pour faire
00:26:43une validation ou un déploiement de nouveautés dans un environnement.
00:26:48Cela se fait toujours avec le Sandbox Vercel et la CLI Salesforce.
00:26:51C'est, selon nous, le moyen le plus simple de faire des déploiements
00:26:54et d'autres activités en utilisant la CLI. Et le Sandbox Vercel nous permet
00:26:58très facilement d'installer cela et de poursuivre avec les Sandboxes existants.
00:27:04Nous avons donc ces deux-là qui utilisent le Sandbox Vercel officiel, et puis nous avons
00:27:08un Sandbox en mémoire plus petit pour chaque conversation,
00:27:14qui s'active à chaque tour de l'agent et que nous utilisons pour rassembler tous les fichiers
00:27:20et permettre à l'agent de comprendre ce qui se trouve dans ce Sandbox en mémoire.
00:27:25On a donc deux versions différentes de cela.
00:27:26>> D'accord, appliquez-vous des restrictions
00:27:32réseau sur le Sandbox pour limiter ses accès ?
00:27:36À quoi ressemble le profil de sécurité là-dessus ?
00:27:40>> Du côté du Sandbox Vercel ?
00:27:42>> Oui, oui.
00:27:43>> Oui, les Sandboxes Vercel sont lancés plutôt vides.
00:27:47Nous y chargeons les fichiers nécessaires et lui donnons simplement accès à cela.
00:27:52Ce n'est pas du tout notre codebase. C'est l'agent qui va
00:27:56récupérer tout ce qu'il a préparé pour élaborer le plan.
00:28:02Si on reprend l'exemple du flux que j'ai montré, il prendrait ces fichiers,
00:28:05créerait le répertoire attendu par Salesforce
00:28:10lors des déploiements, et placerait ces fichiers dans ce répertoire.
00:28:13Ensuite, il lancerait le déploiement à partir de là.
00:28:14C'est donc assez limité en termes de contenu, juste ce qu'on lui donne au bon moment.
00:28:20>> Nous avons une question sur YouTube : quel est le modèle de tarification ?
00:28:25Comment gérez-vous les prix ?
00:28:28Est-ce basé sur l'usage, à l'utilisateur, ou pour Soapbox ?
00:28:32>> Oui, c'est une excellente question.
00:28:33Nous sommes encore en train de finaliser cela, au fur et à mesure
00:28:38du déploiement auprès de nos clients, pour trouver la bonne approche.
00:28:41Actuellement, nous sommes sur une tarification par utilisateur
00:28:48avec des limites au sein de chaque niveau sur le nombre de conversations,
00:28:53la quantité de données et le nombre d'interactions.
00:28:55C'est de là que nous partons.
00:28:59Mais comme tout le monde l'a constaté dans cet écosystème,
00:29:02les choses changent très souvent et très vite avec les outils basés sur les jetons.
00:29:07Nous commençons donc avec ce seuil basé sur le nombre d'utilisateurs.
00:29:11>> Oui, je pense qu'il est très difficile de trouver le modèle parfait qui s'adapte
00:29:16à l'usage, aux clients, tout en couvrant ses propres dépenses.
00:29:20On en est tous là.
00:29:23Voyons voir, une autre question.
00:29:24Comment décidez-vous vers quel modèle orienter chaque question ?
00:29:29Il y avait certaines requêtes que vous envoyiez vers Opus,
00:29:31et d'autres vers Sonnet.
00:29:33Comment faites-vous ce choix ?
00:29:35Utilisez-vous un système d'évaluation pour vous baser sur des données, ou procédez-vous
00:29:41par tests manuels en vous disant : "Tiens, Sonnet suffit pour ce type de tâches" ?
00:29:45Quelle a été votre approche ?
00:29:46>> Oui, la réponse à cette question évolue constamment.
00:29:52Actuellement, nous utilisons un classificateur déterministe sur les questions initiales
00:29:57qui nous aide à comprendre, selon la demande, quel est son niveau de complexité.
00:30:03Est-ce qu'ils utilisent des mots comme "planifier" ?
00:30:04Ou des mots comme "analyser" ?
00:30:07On se base là-dessus parce que c'est rapide et gratuit, n'est-ce pas ?
00:30:12On peut repérer ces termes très rapidement.
00:30:15On commence donc par une approche basée sur des Regex ou du déterministe.
00:30:20Si on ne trouve pas de correspondance, on s'appuie sur un classificateur LLM et on se dit :
00:30:27si le contenu dépasse un certain seuil de mots, etc.,
00:30:32on l'envoie à un LLM pour qu'il évalue la complexité.
00:30:38Ce modèle est très rapide, environ 300 millisecondes pour faire cette classification.
00:30:42Et cela nous aide à l'aiguiller vers le bon modèle, que ce soit Opus, Sonnet ou un autre.
00:30:47On a aussi une solution de repli.
00:30:49Si les choses deviennent trop complexes et que l'utilisateur pose à nouveau la même question,
00:30:54ou selon d'autres règles internes, on bascule temporairement
00:30:59vers notre modèle le plus puissant pour qu'il reçoive les bonnes réponses à ses questions.
00:31:06>> D'accord. Et vous utilisez Haiku en ce moment comme classificateur pour le modèle d'aiguillage ?
00:31:11>> Oui, pour le premier filtre, tout à fait.
00:31:13>> Cool, cool.
00:31:15Très bien. Vous faites aussi partie du programme d'ambassadeurs v0.
00:31:20Comment cela vous a-t-il aidé ? Le recommanderiez-vous ?
00:31:23En avez-vous tiré de la valeur jusqu'ici pour construire tout ça ?
00:31:28>> Oui, absolument.
00:31:30Je le recommande vivement à tous ceux qui souhaitent être plus proches de la communauté.
00:31:36J'ai déjà animé quelques événements pour des personnes de différents horizons.
00:31:41J'en ai fait un il y a un mois ou deux au Mexique, pour une session
00:31:48sur place afin de présenter et d'explorer v0 avec les participants.
00:31:51Personnellement, le programme d'ambassadeurs v0 m'apporte beaucoup
00:31:56car j'ai un accès direct aux membres de l'équipe produit,
00:31:59mais aussi à d'autres passionnés qui sont tout aussi investis que moi.
00:32:03Pouvoir échanger et confronter nos idées a été vraiment précieux.
00:32:08>> Cool. Si vous avez un accès direct aux personnes de l'équipe produit,
00:32:13j'imagine que vous leur envoyez beaucoup de retours.
00:32:16Y a-t-il quelque chose que vous aimeriez leur demander publiquement, ici,
00:32:22histoire de leur mettre un peu la pression ?
00:32:25>> Je vais être gentil. Je pense que le point majeur, et nous en avons parlé,
00:32:30c'est d'apporter encore plus de fonctionnalités dans v0
00:32:34concernant ce que les développeurs ont l'habitude d'avoir dans leur IDE local.
00:32:41Ces derniers mois, on a vu arriver les capacités de sandboxing dans v0,
00:32:45la possibilité de lancer un environnement et d'y avoir un vrai espace de travail,
00:32:49et c'est un immense pas dans la bonne direction.
00:32:51Je pense que si nous continuons dans cette voie, cela va encore s'améliorer.
00:32:55Mon message serait donc de continuer dans cette direction.
00:33:00>> Super. Oui, c'est un processus qui s'inscrit dans la durée.
00:33:02Au départ, c'était un mini-IDE très minimaliste dans le navigateur,
00:33:06et c'est devenu une véritable intégration de VS Code et Monaco.
00:33:10Ça s'améliore de mois en mois.
00:33:14>> C'est tout à fait ça.
00:33:15>> Parfait. Je crois que nous avons fait le tour des questions.
00:33:18Je tenais à vous remercier chaleureusement d'être venu faire cette superbe démo.
00:33:24Où peut-on vous retrouver si l'on souhaite vous suivre ou en savoir plus sur Soapbox ?
00:33:32>> C'est sur LinkedIn que je suis le plus actif.
00:33:34N'hésitez pas à m'y ajouter et à m'envoyer un message.
00:33:37Dites-moi que vous avez suivi cette session.
00:33:39Je saurai qui vous êtes, et ce sera un plaisir d'échanger et de répondre à vos questions.
00:33:44>> Super. Nous allons partager le lien vers votre profil LinkedIn dans le chat.
00:33:48En tout cas, merci. Merci infiniment d'être venu.
00:33:52>> Merci à vous.
00:33:55>> Et merci à tous d'avoir participé.
00:33:59Nous aurons une autre session communautaire très bientôt...
00:34:05Laissez-moi vérifier le calendrier.
00:34:10J'aurais dû faire ça avant.
00:34:15Ah, c'est prévu pour jeudi, mais ce n'est pas encore ajouté au calendrier public.
00:34:20Revenez donc voir d'ici deux jours.
00:34:22Nous aurons une nouvelle session en ligne.
00:34:24D'ici là, on se retrouve au sein de la communauté.
00:34:27Excellente journée à tous.

Key Takeaway

L'automatisation et la personnalisation de Salesforce s'effectuent désormais par commande vocale ou textuelle grâce à l'orchestration d'agents autonomes déployés sur l'infrastructure de développement de Vercel.

Highlights

  • Saltbox One utilise l'infrastructure Vercel pour faire fonctionner un agent IA capable de déployer des flux et des configurations complexes directement sur Salesforce.

  • L'utilisation de la passerelle Vercel AI Gateway permet de basculer de manière agnostique entre différents modèles de langage comme Claude Opus, Sonnet, GPT ou Groq.

  • Un classificateur déterministe basé sur Claude Haiku évalue la complexité de la demande de l'utilisateur en 300 millisecondes pour l'aiguiller vers le modéle le plus adapté.

  • L'intégration de Vercel Sandbox permet à l'agent IA d'utiliser la CLI Salesforce dans un environnement isolé pour préparer et valider des déploiements.

  • La sécurité de la plateforme repose sur des autorisations liées à l'utilisateur via OAuth et impose une validation humaine systématique avant toute action d'écriture sur Salesforce.

Timeline

Présentation de Saltbox et définition des cas d'usage

  • Les entreprises utilisant Salesforce cherchent à interagir avec leur écosystéme applicatif de manière plus naturelle.
  • La traduction de requêtes métier en code de production robuste prêt pour Salesforce représente un défi technique majeur.
  • Le développement de Saltbox One répond au besoin de simplifier le travail des concepteurs et d'accélérer les réponses aux utilisateurs.

Les équipes de développement disposent souvent de ressources restreintes pour créer des produits d'IA ambitieux. L'objectif consiste à déléguer la gestion de l'infrastructure à Vercel pour se concentrer exclusivement sur la logique métier. Les modèles génériques du marché ne peuvent pas générer de code prêt pour la production sans l'apport d'un contexte métier précis et de règles d'architecture strictes.

Architecture technique à trois niveaux et sélection des modèles via AI Gateway

  • L'application Next.js de premier niveau gère l'affichage en streaming de l'interface utilisateur.
  • La logique de l'agent repose sur la version 6 de l'AI SDK de Vercel pour piloter la boucle d'actions.
  • L'AI Gateway évite d'être prisonnier d'un unique fournisseur en permettant de connecter n'importe quel LLM.

Le système de routage dynamique détermine la complexité de la question de l'utilisateur dès sa saisie. Les requêtes simples sont résolues par des modèles plus légers et rapides, tandis que la génération d'un flux de travail complet est déléguée à des architectures de modèles plus puissantes. Cette méthode garantit une rapidité d'exécution optimale tout en contenant les coûts d'utilisation des API.

L'exécution persistante en arrière-plan et le rôle des environnements Sandbox

  • Le streaming de l'interface graphique ne suffit pas pour les tâches complexes nécessitant plusieurs minutes d'exécution.
  • La Sandbox de Vercel fournit un système de fichiers temporaire indispensable pour manipuler le code d'une instance Salesforce.
  • L'intégration directe avec l'outil de génération d'interface v0 de Vercel permet de concevoir rapidement des composants d'affichage.

Les agents de développement ont besoin d'une interface en ligne de commande (CLI) pour interagir efficacement avec les plateformes professionnelles. L'utilisation d'une boîte à sable éphère permet de récupérer les fichiers de configuration, de générer du code Apex ou des composants de page, puis d'exécuter les commandes d'envoi vers Salesforce de manière sécurisée.

Démonstration pratique de Saltbox One

  • La plateforme charge différents contextes métier comme des enregistrements de réunion ou des spécifications fonctionnelles.
  • L'agent IA génère des schémas de modélisation de données Mermaid directement exploitables par les développeurs.
  • Le système intègre une carte de validation de déploiement pour garder l'humain dans la boucle de décision.

L'analyse d'une transcription de réunion permet à l'outil de découper un projet d'implémentation Salesforce en plusieurs phases métier bien définies. L'utilisateur peut également déposer un fichier issu de Confluence pour demander l'écriture automatique de fiches de tâches prêtes à être exportées vers Jira ou Asana.

Questions et réponses sur l'architecture sécuritaire et la tarification

  • Les permissions de l'agent s'alignent rigoureusement sur le compte de l'utilisateur connecté via OAuth.
  • L'agent utilise deux types de bacs à sable : une sandbox Vercel persistante pour l'utilisation de la CLI, et une sandbox mémoire légère par conversation.
  • Le modèle de tarification de départ s'oriente vers un abonnement par utilisateur associé à des seuils d'utilisation de jetons.

La sécurité s'avère cruciale lors de la manipulation des données d'entreprise. Pour pallier les risques de déploiements erronés, les connexions Salesforce de Saltbox One sont configurées en lecture seule par défaut, imposant l'approbation explicite de l'utilisateur dans l'interface avant toute opération d'écriture. Le processus de classification des questions s'appuie d'abord sur une méthode déterministe par expressions régulières, puis sur un modèle Claude Haiku très rapide en cas de besoin.

Community Posts

View all posts