Tu as branché ton agent à Slack, Linear, GitHub et un Postgres interne. Quinze tools, des JSON schemas bien propres, un prompt qui dit « you are a helpful assistant ». Ça marche magnifiquement sur des tâches en deux étapes. À la cinquième, il zappe un filtre, cite un champ de travers, ou crame 40k tokens à relire les mêmes schemas. Bienvenue au plafond du tool-calling classique 😹.
Voilà le setup que personne ne t'explique dans les pages marketing. Dans le tool-calling traditionnel — le pattern que chaque SDK a livré jusqu'en 2024–2025 — un agent (un programme qui enveloppe un large language model et lui donne des tools) balance l'intégralité du JSON schema (une description machine-readable des inputs de chaque tool) dans la context window (la mémoire de travail du modèle) à chaque tour. Quinze tools avec des types riches ? Ça fait 5–10k tokens avant même que le modèle dise bonjour. Le modèle choisit ensuite un tool, remplit ses arguments, attend un résultat, et recommence. Boucles, conditions, transformations de données ? Néant. Le modèle les simule en enchaînant dix appels séparés et en priant pour se souvenir de ce qu'il a vu à l'appel trois.
Les deux semaines qui ont fait bouger le défaut
Entre le 14 et le 15 avril 2026, trois vendors ont livré le même pattern et mis discrètement l'ancien à la retraite.
Le 15 avril 2026, OpenAI a annoncé la prochaine évolution de l'Agents SDK, sortie en v0.14.0 « Sandbox Agents » (hotfixée en v0.14.1 le même après-midi selon la page de release GitHub). Les features phares : code mode, sandboxing, sub-agents, un harness long-horizon, et un support provider-agnostic pour 100+ LLMs. La couverture de TechCrunch a présenté ça comme OpenAI rattrapant un pattern que Cloudflare et HuggingFace benchmarkaient depuis six mois.
Un jour plus tôt, le 14 avril 2026, Anthropic a ouvert la research preview de Claude Code Routines — des configurations Claude Code sauvegardées qui tournent comme des agents autonomes persistants sur le cloud d'Anthropic, déclenchés par planification, webhook HTTP ou event GitHub. Même forme : les tools sont du code que l'agent importe, pas du JSON qu'il régurgite.
Le 14 avril aussi, Cloudflare a publié « Scaling MCP adoption », l'architecture de référence enterprise qui a rendu les chiffres gênants. Leur benchmark : connecter 4 MCP servers internes exposant 52 tools. Le tool-calling classique crame ~9 400 tokens de contexte par tour. Code Mode via portail : ~600 tokens. C'est une réduction de 94 %, et — c'est là le vrai gain — le coût reste plat quand tu ajoutes plus de servers 🙀.
Ce que code mode fait vraiment
Au lieu d'enfoncer des schemas dans le prompt, le runtime file au modèle un module typé. Le modèle écrit un petit programme. Le sandbox l'exécute. Les tools n'entrent jamais dans la context window — seules leurs signatures le font, et souvent uniquement celles que le modèle a demandées via search().
from agents import Agent, CodeMode, Sandbox
agent = Agent(
model="gpt-5.1",
mode=CodeMode(runtime="python"),
sandbox=Sandbox(backend="e2b"), # ou docker, modal, runloop
tools=[slack, linear, github, pg], # fonctions typées ordinaires
)
agent.run(
"Trouve chaque bug P0 ouvert cette semaine dans Linear, "
"croise avec les PRs GitHub, poste un résumé dans #triage."
)
Sous le capot, le modèle émet un truc comme :
bugs = linear.search(priority="P0", opened_after="2026-04-09")
prs = {b.id: github.find_pr(ref=b.id) for b in bugs}
unmatched = [b for b in bugs if not prs[b.id]]
slack.post("#triage", render(bugs, unmatched))
Une boucle, une dict comprehension, un filtre, une condition — en un seul aller-retour au sandbox. La version tool-calling classique fait 12+ tours et une migraine.
Les preuves
Le framework smolagents de HuggingFace montre ça depuis des mois : CodeAgent utilise ~30 % d'étapes en moins que ToolCallingAgent sur les benchmarks multi-step, et smolagents + GPT-4o s'est hissé au #1 sur GAIA validation (44,2 %). Les chiffres d'avril de Cloudflare : ~32 % de tokens en moins sur les tâches simples, ~81 % sur les chaînes complexes, selon l'analyse de WorkOS. La phrase canonique, de Kenton Varda et Sunil Pai de Cloudflare, tient toujours : « Les LLMs sont meilleurs pour écrire du code qui appelle MCP que pour appeler MCP directement. »
Ce que ça te coûte
Ce n'est pas gratuit 😾. Code mode a besoin d'un vrai sandbox — Docker, E2B, Modal, Runloop, Daytona, ou le harness intégré d'OpenAI — parce que tu fais maintenant tourner du code écrit par le modèle sur ton infra. Skippe le sandbox et tu es à un prompt injection d'une RCE. La plupart des outils d'observabilité existants supposent des traces JSON et cassent sur des blobs de code opaques. Ton modèle de sécurité passe de « valider les arguments » à « contenir l'exécution arbitraire », ce qui est un autre process de review, un autre threat model, et souvent une autre équipe. Pour les tâches single-shot à un seul tool — « donne la météo à Paris » — code mode ajoute de la latence pour rien.
Ce qu'il faut faire lundi
Si tu greenfield un agent en avril 2026, par défaut colle code mode dès le jour un. Prends un SDK qui exécute les tools dans un runtime sandboxé, écris tes tools comme des fonctions Python ou TypeScript typées ordinaires, et arrête de bricoler des JSON schemas à la main. Si tu as un agent en production en tool-calling classique et qu'il marche, ne migre pas dans la panique — mais à chaque fois que tu ajoutes le tool numéro seize, refais le calcul de tokens.
Le verdict
Le tool-calling n'est pas mort pour les appels single-step 🐈. Mais pour n'importe quel agent qui enchaîne plus de deux actions, l'industrie vient de décider — dans les 48 heures entre le 14 et le 15 avril 2026 — que la langue native de l'agent, c'est du code, pas du JSON. Si tu ne regardais pas, la stack a bougé sous tes pieds 😼.





