Dale más autonomía a tu agente de código
TL;DR
Mi skill SDD-flow lleva una funcionalidad desde la especificación hasta código que funciona, con los permisos desactivados, así que no apruebo cada paso uno por uno. Después guardo esas sesiones en LangSmith y vuelvo a leer las trazas.
Tres beneficios: un registro objetivo de lo que el agente hizo mientras yo no miraba, evals que comparan un modelo nuevo contra mi propio trabajo en lugar de contra las notas de la versión, y un bucle donde el agente revisa su propio comportamiento y me dice dónde se desvió mi setup. Nada de esto es exótico, y corre en un plan gratuito.
El registro que de otro modo no tienes
Hace un tiempo escribí un post entusiasmado sobre cómo construí este pipeline, apagué los permisos y resolví funcionalidades de un solo tiro. Mantengo lo de la emoción. Esta es la secuela sobria, y empieza con un hecho aburrido: cuando un agente corre con los permisos apagados, no estás mirando. Ese es todo el sentido del asunto y, a la vez, todo el problema.
Un agente que se queda en silencio deja un solo artefacto: la traza. Si no la lees, estás confiando en que la ausencia de un error significó que nada salió mal.
¡Y las cosas sí que pueden salir mal, gente! Aquí van dos que mis trazas atraparon:
- Un subagente que se lanzó con un mensaje vacío respondió, en lugar de fallar: «Parece que tu mensaje llegó vacío». Eso tiene la forma de una respuesta. No lo es. En una corrida autónoma sigue de largo hasta el siguiente paso como si hubiera ocurrido trabajo de verdad.
- Un identificador que no existe,
poliva83, se generó con total seguridad y quedó cableado en la configuración. Mi usuario espablooliva.poliva83no es nadie.
Revisar un modelo nuevo antes de confiar en él
Una vez que tienes ese registro, es la materia prima para los evals.
El modelo por defecto de Claude Code cambia debajo de mí. Anthropic publica qué esperar de un modelo nuevo, y yo leo esas notas. Pero ese es el caso promedio sobre el uso de todos. Sobre el mío no dice nada.
Mi setup tiene skills hechas a medida, una pila de reglas en CLAUDE.md, flujos que dependen de que el modelo se comporte de una manera específica. Un modelo puede ganar todos los benchmarks publicados y aun así ponerse silenciosamente peor en esa única cosa rara de la que dependo, porque las notas de la versión no saben de mi única cosa rara. Para que quede claro, no hay nada raro en mi setup. La gente dice que es el mejor setup. Nadie más tiene un setup como este.
Los evals lo confirman en vez de esperar. Toma un puñado de tus propias tareas reales, las que sacaste de tus trazas, anota cómo se ve un buen resultado, y vuelve a correrlas cuando llegue el modelo nuevo. Si el puntaje se mantiene, sigues con confianza. Si el puntaje baja, los casos que fallan apuntan directo a qué caso de uso tuvo la regresión, antes de que te cueste en trabajo real. Las expectativas publicadas son la hipótesis previa; tus evals son la confirmación. Para cualquier cosa de la que dependas, quieres las dos.
Subir el techo de lo que lo dejas hacer sin supervisión
Este es el beneficio que más me gustaría que alguien más me robara.
Que SDD-flow recorra un ciclo de desarrollo entero sin supervisión solo funciona en la medida en que el agente se mantenga dentro de las reglas que le di: las convenciones de CLAUDE.md, las skills disparándose cuando deben, los plugins portándose bien. Cuanto más pueda confiar en eso, más delego sin mirar. Así que la pregunta no es «¿es segura la autonomía?», sino «¿cómo sigo subiendo la cantidad que puedo delegar de forma responsable?», y la respuesta tiene que ser mejor que esperar que las reglas todavía se cumplan.
Las trazas cierran ese bucle con el propio agente. El plan gratuito de LangSmith guarda unos 14 días, así que cada quince días apunto a Claude hacia su propio registro y le pido que revise cómo se comportó. ¿Siguió CLAUDE.md? ¿Las skills y los plugins se dispararon como debían? ¿Dónde se desvió?
Cuando encuentra algo, propone el cambio. Una regla que se ignora una y otra vez, reescrita para que cale. Una descripción de skill que se dispara mal, ajustada. Una convención ambigua, hecha explícita. El agente pone su propio comportamiento frente a las reglas que se supone debe seguir y me dice dónde se separaron los dos.
Uno concreto. Durante la mayor parte del último año, Claude Code permitía solo un nivel de subagentes, un agente no podía lanzar otro, y yo había horneado eso en mis definiciones de agente como un hecho: «la herramienta Agent es inerte dentro de ti». Después una versión menor habilitó en silencio los subagentes anidados, y de la noche a la mañana mis instrucciones afirmaban algo sobre la plataforma que ya no era cierto. Lo pillé de pura suerte, me topé con un tuit sobre subagentes anidados y me puse a investigar. El arreglo fue fácil: convertir un hecho que puede caducar en una regla con un motivo. Pillarlo fue la parte difícil, y dependió de que viera el tuit correcto. El bucle de revisión es cómo encuentras ese tipo de desvío cuando no tienes suerte.
Esto se acumula. Cada pasada aprieta un poco más el setup, así que la siguiente corrida autónoma parte de un terreno más firme, así que puedo delegar un poco más. Las trazas no son solo una red de seguridad debajo de la autonomía. Son la forma en que te ganas más de ella.
Lo que esto realmente requiere
Menos de lo que parece. Activa el tracing, una variable de entorno, o deja que las skills de la CLI de LangSmith de LangChain hagan el cableado por ti: un solo comando mete trace, dataset y evaluator directo en Claude Code, y se corresponden con los tres beneficios de arriba.
npx skills add langchain-ai/langsmith-skills --agent claude-code --skill '*' --yes --global
Léelo con un horario fijo en vez de dejar que el dashboard se vuelva una pestaña que nunca abres. Mete un puñado de tareas reales en un eval set para que la próxima actualización de modelo encuentre algo de resistencia. Y después deja que el agente revise sus propias trazas y te entregue los diffs a tu configuración.
Sigo corriendo sin las barreras de protección. La diferencia es que ya no trato una corrida silenciosa como una corrida limpia, y tengo un agente que me ayuda a encontrar dónde no lo fue. El agente se autocorrige, y yo puedo recostarme a hacer chistes de Trump... los mejores chistes, nadie tiene mejores chistes.