Le problème du code
Aujourd’hui, presque tous les frameworks d’agents IA vous demandent d’écrire du code. Python, TypeScript ou autre : vous définissez le comportement de manière impérative. Cela signifie :
- Difficile à reviewer. On ne peut pas parcourir un script Python de 200 lignes et savoir immédiatement ce que fait l’agent.
- Difficile à partager. Partager un agent signifie souvent partager un arbre de dépendances, un virtualenv et de l’espoir.
- Pas vraiment portable. Le code est lié à un runtime. Un agent LangChain ne s’exécute pas pareil dans le navigateur ou sur un téléphone.
- Difficile à auditer. Un diff entre deux versions ne montre pas clairement comment le comportement de l’agent a changé.
Pourquoi TOML
Un fichier TOML est une déclaration d’intention. Il dit ce que l’agent doit faire, pas comment. Le framework gère le comment.
# Ceci est un agent complet [agent] provider = "anthropic" model = "claude-sonnet-4-5-20250929" tools = ["shell", "knowledge_ingest", "knowledge_query"] [agent.execution] max_steps = 30 [[middleware]] type = "limits" max_turns = 15
Ce que vous obtenez
- Reviewable : Ouvrez le fichier. Lisez-le. Vous savez exactement ce que fait l’agent.
- Partageable : Joignez le TOML à un message Slack. C’est tout.
- Portable : La même config fonctionne dans le CLI, le dashboard, VS Code, iOS et Android.
- Auditable :
git diffmontre exactement ce qui a changé dans le comportement de l’agent. - Versionnable : Les configs vivent dans git à côté de votre code. Le rollback est trivial.
Le compromis
Config-driven signifie que vous ne pouvez pas exprimer n’importe quelle logique. Si vous avez besoin d’un custom routing algorithm ou d’un bespoke tool, vous devez écrire du code Rust et l’intégrer au framework. Le système de config couvre 90 % des use cases. L’API Rust couvre le reste.
C’est intentionnel. La config est le produit. Le code est la plateforme.