Sabotear el propio agente para que no alucine: fricción mecánica contra el LLM vago
Un desarrollador cuenta cómo estandarizar las herramientas de su agente con MCP hundió su tasa de acierto del 97,3% al 87,5%, y cómo tuvo que bloquear las escrituras para recuperarla.

Un desarrollador que construye Soma, un sistema de agentes para refactorizar bases de código, cuenta cómo su arquitectura alcanzó un 97,3% de éxito al primer intento y cómo estandarizar las herramientas la tiró al 87,5% de golpe. La causa, según su relato, es contraintuitiva: cuanto más limpia y fácil de usar es la API que se expone al modelo, más tiende este a saltarse la investigación previa y a escribir cambios a lo loco.
El pico y la caída
En lo que llama Fase 22, el agente trabajaba sobre scripts bash crudos y difíciles de manejar. La salida era demasiado voluminosa para el contexto principal, así que el sistema se veía forzado a delegar en subagentes especializados —a veces más de cincuenta en paralelo— que hacían pruebas, mapeo del código y validación. El agente principal se mantenía fuera de juego, con la ventana de contexto limpia y dedicada solo a la estrategia.
Al migrar a Model Context Protocol (Fases 23 y 24) para hacerlo universal, sustituyó los scripts por herramientas JSON-RPC como soma_propose_change y soma_scan. El rendimiento se hundió. En una sesión, la proporción de lecturas frente a escrituras se invirtió: 19 modificaciones de código con solo dos escaneos previos. Con herramientas cómodas, el modelo se creyó capaz de ejecutar refactorizaciones enormes en su hilo principal, abandonó la delegación, llenó el contexto con logs de test y entró en un bucle de prueba y error que rompía la compilación.
El autor lo llama la Trampa de la Abstracción: si una API es demasiado fácil de llamar, el LLM coge el camino de menor resistencia.
Fricción mecánica
Su solución pasa por reintroducir obstáculos. En la Fase 25, el servidor MCP intercepta cada llamada a soma_propose_change y la somete a un juez adversarial, ttc_oracle.py, que ejecuta su propio LLM oculto y la compara con la configuración del sistema. Si detecta que no hubo investigación suficiente fuera de contexto, lanza un REJECTED y bloquea la escritura antes de que toque el código.
También hay un mecanismo de reglas just-in-time: en vez de cargar un reglamento de 2.000 líneas en el prompt de sistema —lo que según él provoca el colapso de contexto que describe la investigación que cita (arXiv:2602.11988 y arXiv:2510.04618)—, las reglas entran y salen según los archivos que el agente toque.
Las cifras son del autor, no de una evaluación independiente, y no hay comparativas publicadas con otros agentes. Aun así, la idea de fondo es trasladable: en sistemas agénticos la fricción deliberada puede valer más que una interfaz cómoda. Quien esté montando agentes sobre MCP hará bien en medir si su modelo delega o se lanza a escribir, porque el patrón que describe —contexto saturado y cambios a ciegas— es fácil de reproducir sin darse cuenta.
