Notes · Article
Ce qui casse quand un agent IA gère un vrai commerce
Prosus a confié six vrais distributeurs automatiques d’Amsterdam à un agent construit avec le Claude Agent SDK, et l’a laissé les gérer pendant quatre mois. Le commerce a perdu de l’argent. L’agent a distribué 30 boissons en testant une API en production, acheté des nouilles en gobelet qui ne rentraient pas dans les emplacements, et baissé les prix tout l’été : le chiffre d’affaires a augmenté, le bénéfice a disparu.
Le talk, c’est Everything wrong with AI agents running your business de Floris Fok, staff AI engineer chez Prosus, à l’AGNTCon + MCPCon. C’est le regard le plus honnête que j’aie vu sur un agent qui travaille dans le monde physique plutôt que dans un dépôt.
Un distributeur avant un restaurant
Prosus possède des places de marché, et la plupart de ses vendeurs sont de petites entreprises. La vraie question, c’est de savoir si un agent peut gérer un restaurant. Floris a poussé pour commencer par le plus simple des vrais commerces, un distributeur automatique, en affirmant qu’il pouvait le monter en une journée.
Ça n’a pas pris une journée. Et ils sont passés directement à six machines, snacks et boissons, au lieu d’une.
Point de départ
Un distributeur
Le plus simple des vrais commerces
Snacks et boissons
puis
La vraie question
Un restaurant
Vendeurs Prosus : surtout des PME
Un agent peut-il en gérer une ?
L’idéeMonté en un jour
En vraiPas un jour, et six machines au lieu d’une
D’un tableau de bord humain à des outils
Les machines qu’ils pouvaient obtenir rapidement aux Pays-Bas venaient avec un tableau de bord d’exploitation à distance et un point de vente (POS) qui tourne sur un téléphone. Les deux étaient conçus pour des humains.
- Tableau de bord : ils ont récupéré le jeton de session et rétro-ingénié ses appels d’API pour en faire des appels d’outil. Moins d’une journée.
- POS : celui du fournisseur ne permettait de choisir les noms et les images que dans une liste prédéfinie. Ils l’ont reconstruit de zéro, ce qui a ajouté deux jours.
Ils ont testé les outils en les branchant sur un simple chatbot Claude SDK et en pilotant les machines par prompt pendant quelques minutes. Au final, toute l’exploitation (ouvrir la porte, distribuer, changer un produit, un nom ou un prix) tenait dans deux skills, chacun avec sa propre CLI à l’intérieur.
Conçu pour des humainsTableau de bord opérateur
Jeton de session, appels d’API rétro-ingéniés en appels d’outil
moins d’un jour
Conçu pour des humainsPOS sur téléphone
Noms et images d’une liste fixe uniquement, donc refait de zéro
+2 jours
TestUn simple chatbot Claude SDK avec les outils, qui pilote les machines par prompt quelques minutes
SkillCLI maison dedans
SkillCLI maison dedans
- ouvrir la porte
- distribuer
- changer un produit
- changer un nom
- changer un prix
L’architecture que je réutiliserais
Cette diapo, c’est la partie que j’ai préférée. C’est un modèle propre pour faire tourner un agent Agent SDK en production :
Porte d’entrée
Cloudflare Worker
- Frontend
- Sessions partagées
Runtime · VM Cloudflare
Claude Agent SDK
- Boucle d’agent + exécution des outils
- Skills · montage de fichiers R2
- Docs · montage de fichiers R2
Connectés
Services
- API Claude · traces dans D1
- Navigateur Browserbase
- Secrets · base chiffrée + CLI
- Twilio · e-mail · Slack
Les choix derrière, c’est la partie utile :
- Pourquoi l’Agent SDK : sous-agents, skills et outil bash sont fournis d’origine. Ils voulaient un harnais (harness) nu, pour ne pas encore orienter l’agent.
- Les secrets n’atteignent jamais le modèle. Un skill maison avec une CLI écrit des placeholders dans le code et injecte lui-même les vraies valeurs, si bien qu’aucun fournisseur ne voit une clé. Floris l’a trouvé « peut-être un peu usine à gaz », et l’a gardé.
- Les skills et les docs sont des buckets R2 montés comme des fichiers dans la VM. Le dossier docs, c’est la connaissance de l’entreprise, écrite par l’agent et par des humains. Floris l’a enrichi à mesure qu’il apprenait comment fonctionne vraiment un commerce de distributeurs automatiques.
- Il tourne selon un planning, pas en continu. Ils ont repris ça du Project Vend d’Anthropic : un planning réveille l’agent, il agit, puis une vérification séparée examine le résultat. Au début, chaque tâche revenait au vert alors que rien ne s’était passé. Dès qu’un agent touche le monde réel, une session terminée ne veut pas dire que le travail est fait.
- L’agent appartient à une équipe. Plusieurs personnes se connectent à la même session et voient le même état, donc un agent bloqué qui demande de l’aide n’attend pas une semaine qu’une seule personne rentre de vacances.
- La compaction garde l’histoire du commerce. La compaction par défaut résume la conversation. La leur garde le cap sur de longues séries d’appels d’outil, écrit ce qui compte dans les docs et y renvoie par des liens.
Réveil
Planning
- Pas en continu
- Repris de Project Vend
Action
Agent
- Traite ses tâches
- La session finit au vert
Vérification, à part
Contrôle du résultat
- Examine le résultat
- Le vert ne prouve rien
Au débutChaque tâche revenait au vert, et rien ne s’était passé.
Floris a plaisanté : Cloudflare avait sorti une version packagée de tout ça quelques semaines avant le talk. La brique officielle la plus proche que j’ai trouvée, c’est Claude Managed Agents on Cloudflare. Le hic : là, la boucle d’agent tourne côté Anthropic, et Cloudflare fournit la sandbox, le navigateur, l’e-mail et les outils. Sur la diapo de Prosus, la boucle tourne dans la VM.
Là où les ennuis ont commencé
L’agent tournait sur Opus 4.8. Le construire, c’était la partie amusante. Ensuite :
- Un test est une vraie vente. Il a « testé » l’API de la machine et distribué une trentaine de boissons, apparemment pour calibrer la taille des emplacements. Il faut lui dire quelles API sont en production.
- Il rend compte comme un agent de code. Quand on lui a demandé un point, il a envoyé un changelog. Floris voulait des KPI et du chiffre d’affaires.
- Les nouilles en gobelet. Quelqu’un sur Slack a suggéré des nouilles, l’agent en a commandé, et elles ne rentraient pas dans la machine. Floris les a données.
- 1 100 bonnes affaires. Avec une tâche « trouver des bonnes affaires », il en a trouvé 1 100, dont du savon, des produits ménagers et un mix à cocktail Sex on the Beach. Il était très fier d’une savonnette. Il a aussi accumulé une grosse facture de navigateur.
- Du marketing par message Slack. Chargé de faire sa promo, il a posté du texte brut, puis généré une seule image avec Gemini. C’est là que Floris a compris pourquoi les équipes confient le marketing à un agent dédié : un agent écrit comme si son lecteur était un autre agent.
La plupart des correctifs, c’était du contexte qui semble trop évident pour être écrit : tu es un distributeur automatique, les gens veulent manger ce qu’il y a dedans, voici la taille des emplacements.
-
1Un test est une vente
Il a « testé » l’API de la machine et distribué une trentaine de boissons.
-
2Le point
Quand on lui a demandé un point, il a envoyé un changelog. Floris voulait des KPI et du chiffre d’affaires.
-
3Nouilles en gobelet
Quelqu’un sur Slack a suggéré des nouilles en gobelet. Elles ne rentraient pas dans la machine.
-
4Trouver des affaires
Chargé de trouver des bonnes affaires, il en a trouvé 1 100. Il était très fier d’une savonnette.
-
5Fais ta promo
Chargé de faire sa promo, il a posté du texte brut, puis généré une seule image.
-
6Le correctif
La plupart des correctifs, c’était du contexte qui semble trop évident pour être écrit.
Des objectifs plutôt qu’une liste de tâches
Une liste de tâches figée ne change pas à mesure que le commerce apprend. Ils sont donc passés à des objectifs permanents. Quand l’agent vérifie un objectif, il regarde les tâches qui y sont liées, en crée s’il n’y en a pas, et les modifie si elles ne suffisent pas.
« Devenir la machine la plus célèbre du monde » a transformé une tâche de promo hebdomadaire en d’autres tâches de promo, une étude de marché et une recherche de distributeurs autonomes concurrents. Il n’en a trouvé aucun.
Avant
Une liste de tâches
Figée. Elle ne bouge pas quand le commerce apprend.
puis
Après
Des objectifs permanents
- 1Vérifier l’objectif
- 2Voir ses tâches liées
- 3Aucune ? En créer
- 4Insuffisantes ? Les modifier
ObjectifDevenir la machine la plus célèbre du monde
Une tâche de promo hebdo est devenue
- D’autres tâches de promo
- Une étude de marché
- Une recherche de distributeurs autonomes concurrents aucun trouvé
Le dernier kilomètre de l’IA
« L’IA gère la machine », ça voulait quand même dire que Floris portait le stock et devinait ce que l’agent entendait par « ajoute ça dans la machine ». Ils ont donc ajouté un chat opérateur : un bouton sur le POS qui ouvre un chat sur la tâche en cours, pour que la personne qui réassortit puisse poser ses questions en travaillant.
D’après lui, ça a multiplié sa productivité par 10, comparé à une heure à jongler entre les e-mails et le tableau de bord. Il pense qu’aider les petites entreprises sur ce dernier kilomètre pourrait devenir un marché à part entière.
Avant
À la main
Floris porte le stock
Il devine ce que veut dire « ajoute ça dans la machine »
Une heure à jongler entre e-mails et tableau de bord
puis
Après
Chat opérateur
Un bouton du POS l’ouvre
Qui réassortit pose ses questions en travaillant
10×Sa productivité, selon lui, face à une heure à jongler entre e-mails et tableau de bord.
Les chiffres
- Mise en route : des articles gratuits d’abord, pour apprendre ce que les gens aimaient.
- Premiers prix : bien trop élevés.
- L’été : l’agent n’a pas arrêté de baisser fortement les prix. Un shake protéiné y coûtait moins cher que chez Albert Heijn, si bien que le chiffre d’affaires a augmenté pendant que le bénéfice s’effondrait.
- Tokens : environ 300 par mois pendant quatre mois. Le commerce a perdu de l’argent.
- Concurrence : les machines affrontaient les fruits, les barres et les boissons offerts au bureau. La machine de l’AI House était de loin la plus rentable.
1Mise en route
Articles gratuits
Pour voir ce qui plaît
2Premiers prix
Bien trop élevés
3L’été
Forte baisse
Un shake protéiné moins cher que chez Albert Heijn
CA ↑bénéfice ↓
4Après quatre mois
Argent perdu
Tokens : environ 300 par mois
ConcurrenceFruits, barres et boissons offerts au bureau. La machine de l’AI House était de loin la plus rentable.
À vous d’essayer
Prosus a publié en open source une version simulée, Prosus Vending Bench, sous licence Apache 2.0. Elle compte six machines, trois sites et 22 outils MCP. L’agent reçoit 1 500 € et 30 jours simulés, et le tout est livré sous forme de tâche Harbor. L’annonce indique qu’Opus 5 a terminé avec environ 61 % de trésorerie simulée de plus que GPT-5.6 Sol lors de leurs premiers essais. Selon Floris, les modèles se comportent comme sur les vraies machines.
6machines
3sites
22outils MCP
1 500 €au départ
30jours simulés
Apache 2.0livré en tâche Harbor
Trésorerie simulée à la fin, premiers essais
FlorisLes modèles se comportent comme sur les vraies machines.
Pour aller plus loin, voici les travaux sur lesquels le talk s’appuie :
- Le Project Vend d’Anthropic, phase 1 et phase 2, où Claude tenait une boutique de bureau et vendait des cubes de tungstène à perte
- Vending-Bench, l’article d’Andon Labs sur la cohérence des agents sur plusieurs mois
- Monter des buckets R2 dans une sandbox Cloudflare, le modèle skills et docs de la diapo
Regardez le talk, puis essayez votre harnais sur le bench. Floris dit qu’il l’ajoutera s’il bat le sien.
Texte brut: what-breaks-when-an-agent-runs-a-business.md · Flux Atom · Toutes les notes