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.