El problema del código
Hoy casi todos los frameworks de agentes de IA te piden escribir código. Python, TypeScript o lo que sea: defines comportamiento de forma imperativa. Eso implica:
- Difícil de revisar. No puedes mirar rápidamente un script Python de 200 líneas y saber qué hace el agente.
- Difícil de compartir. Compartir un agente suele significar compartir un árbol de dependencias, un virtualenv y esperanza.
- Poco portable. El código depende de un runtime. Un agente LangChain no corre igual en el navegador o en un teléfono.
- Difícil de auditar. Un diff entre dos versiones no muestra claramente cómo cambió el comportamiento del agente.
Por qué TOML
Un archivo TOML es una declaración de intención. Dice qué debe hacer el agente, no cómo. El framework se encarga del cómo.
# Este es un agente completo [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
Qué obtienes
- Revisable: Abre el archivo. Léelo. Sabes exactamente qué hace el agente.
- Compartible: Adjunta el TOML a un mensaje de Slack. Eso es todo.
- Portable: La misma config corre en CLI, dashboard, VS Code, iOS y Android.
- Auditable:
git diffmuestra exactamente qué cambió en el comportamiento del agente. - Versionable: Las configs viven en git junto a tu código. Hacer rollback es trivial.
El compromiso
Config-driven significa que no puedes expresar lógica arbitraria. Si necesitas un algoritmo de routing personalizado o una tool específica, debes escribir Rust y compilarlo en el framework. El sistema de config cubre el 90% de los casos de uso. La API Rust cubre el resto.
Es intencional. La config es el producto. El código es la plataforma.