interactuando con agentes de codificación como Claude Code y Codex. Tienen enormes beneficios al aumentar la velocidad a la que puedo hacer las cosas como ingeniero.
He experimentado numerosos cuellos de botella ahora que la codificación se ha convertido en un producto básico y podemos escribir más código mucho más rápido con Claude Code y Codex. He cubierto algunos de estos cuellos de botella antes, en artículos anteriores, con temas como:
Revisar el código Decidir en qué trabajar
Sin embargo, hay un tercero con el que definitivamente he experimentado más y más problemas, y pasé mucho tiempo pensando en cómo optimizarlo, y es cómo alinear mi intención con Claude Code ahora que inicié tantas sesiones.
Cuando digo alinear mi intención con Claude Code, lo que quiero decir es que Claude Code comprende exactamente lo que quiero implementar y que, por lo tanto, Claude puede hacer muchas suposiciones sobre cómo se debe realizar la implementación. Esencialmente, Claude debe entender lo que quiero implementar e implementarlo con la mayor precisión posible para que cuando revise el trabajo posteriormente, minimice la cantidad de cosas que tenemos que modificar.
Por qué la alineación es tan importante
Como siempre, me gusta explicar por qué el tema que estoy cubriendo es tan importante. La razón por la que la alineación con Claude Code o los agentes de codificación en general es tan importante es que si sus intenciones no están alineadas con su agente de codificación, el agente de codificación no implementará lo que usted espera que implemente o lo que usted desea que implemente.
Una desconexión puede, por ejemplo, tomar forma cuando el modelo no implementa el diseño como desea, no tiene la lógica correcta en la característica que está implementando y muchas otras cosas.
Esencialmente, todo se reduce al hecho de que ahora a usted, el ser humano, le lleva más tiempo completar la tarea. Porque cuando aceleraste la tarea, intentaste compartir con el agente codificador lo que querías implementar y, si no estabas alineado, el agente implementó algo incorrecto o implementó algo incorrectamente. En esta situación, tenía que entrar, revisar el trabajo del agente, dar su opinión sobre lo que hizo incorrectamente y cómo hacerlo correctamente la próxima vez, y luego este proceso podría tener que continuar durante varias rondas más hasta que el agente haya logrado implementar lo que usted quería originalmente.
No estar alineado con su agente de codificación cuesta mucho tiempo.
Y como saben, el tiempo se ha vuelto aún más valioso ahora que podemos construir aún más cosas en menos tiempo, por lo que hay que protegerlo tanto como sea posible. Y esta es la razón por la que debes dedicar tiempo a optimizar qué tan bien te alineas con tu agente de codificación. Probé muchas técnicas y pruebas diferentes para ver cómo alinearme mejor con mi agente de codificación para que funcione de la manera más efectiva posible, con una cantidad mínima de interferencia humana.
Cómo alinearse con su agente de codificación
Ahora profundicemos en cómo alinearnos con sus agentes de codificación. En esta sección, cubriré algunas técnicas diferentes, aunque dedicaré la mayor parte del tiempo a optimizar la técnica más efectiva que encontré para alinearme con mi agente de codificación y comprender su comprensión de mis tareas. Sin embargo, primero cubriré algunas técnicas más pequeñas que puede utilizar para mejorar la alineación con su agente de codificación.
Modo de plan
El modo Plan es lo primero que puedes hacer. El modo de plan es esencialmente donde usted le pide al agente que haga un barrido de solo lectura del repositorio y haga un plan sobre cómo implementar la característica que está solicitando. Lo bueno del modo plan es que el agente ahora dedicará tiempo a hacerle preguntas para asegurarse de comprenderlo correctamente.
Hacer que el agente codificador le haga preguntas es una excelente técnica para mejorar la alineación. En lugar de tener que hacerle preguntas al agente sobre cómo hacer las cosas o cómo entiende las cosas, debe pedirle al agente que le haga preguntas, lo cual es mucho más rápido de responder y, en general, es una técnica más efectiva para mejorar la alineación del modelo.
Sin embargo, a veces no uso el modo de planificación para tareas más pequeñas. No creo que sea necesario en muchos casos porque creo que puedo dejar mi mensaje inicial lo suficientemente claro como para que el modelo y el agente no necesiten planificación o preguntas y respuestas, y sí, creo que es más importante para problemas o tareas más importantes en las que estás trabajando.
Indicaciones detalladas
La segunda técnica que quiero cubrir es hacer que el mensaje que le proporciona a su agente de codificación sea detallado. Deberías intentar incluir la mayor cantidad de contexto posible. Y esto se puede hacer de 2 formas principales. Una es que usted mismo intenta recordar el contexto y explicarlo en su mensaje. Creo que vale la pena señalar aquí que la longitud del mensaje realmente no importa, no debes preocuparte por agregar demasiado texto, ya que más contexto generalmente es simplemente mejor. La segunda es que debes agregar contexto de diferentes fuentes. Entonces, por ejemplo, una buena fuente podría ser un mensaje de Slack, que también incluye algunas capturas de pantalla que son relevantes para una implementación, o una base de conocimientos de Notion que debes tener en cuenta, etc. Debe proporcionar tanta información como sea posible; por ejemplo, debe asegurarse de que el agente codificador tenga acceso a todas estas fuentes y decirle que las use activamente durante la implementación y la investigación.
A veces, por ejemplo, incluso hago las indicaciones utilizando un agente de codificación independiente. Así que hago que un agente de codificación independiente me presente un mensaje detallado para exactamente la tarea que quiero implementar, que es básicamente como un agente previo al trabajo y me ayuda a hacer mensajes mucho más claros y detallados que incluyen respuestas a muchas de las preguntas que un agente de codificación podría tener si no hubiera preparado el mensaje como este de antemano.
La técnica más eficaz para la alineación de modelos.
Decirle al modelo “es mi entendimiento correcto:”. Utilizo esta técnica probablemente de 10 a 20 veces al día, si no más si tengo un día muy activo, para asegurarme de estar completamente alineado con el agente de codificación con el que estoy trabajando.
La razón por la que esta técnica es tan poderosa es que estás poniendo las preguntas en manos del agente codificador para que no tengas que proponerlas tú mismo. Esto vuelve al punto que mencioné anteriormente en este artículo: desea que el agente codificador le haga preguntas y no al revés.
Yo diría que usar esta técnica de decirle al modelo: “¿Mi comprensión es correcta?” tiene 2 beneficios principales:
Es una buena manera de comprender todos los problemas en los que está trabajando el agente codificador. El agente codificador puede leer y comprender su perspectiva y puede decirle si su comprensión es incorrecta de alguna manera o si es total o parcialmente correcta. Esto garantiza que tenga una comprensión completa de todo lo que se está haciendo y hace que sea muy fácil para el agente codificador señalar dónde su comprensión es incorrecta para que pueda corregirla. Por supuesto, y luego, por supuesto, puedes corregirlo con la ayuda de un agente codificador que te lo explique.
La alternativa es dejar que el agente codificador explique todo lo que hizo y luego verificarlo usted mismo. Presenta parte del trabajo realizado, puede probar si la característica o el error que solucionó se realizó correctamente y regresar a él. El problema, sin embargo, es que no se comprende completamente todo lo que hizo el agente codificador. Sí, puede comprobar las implementaciones a nivel de superficie, por ejemplo, haciendo clic en la aplicación e intentando reproducir el error y ver si se está reproduciendo, pero no tiene una comprensión completa de todo lo que hizo el agente codificador, o al menos no puede verificar que tiene esa comprensión completa.
Ahora quiero dar un ejemplo de una tarea específica en la que he estado trabajando. Estaba implementando una aplicación donde puedo tener un sitio web de Vercel, lo que me permite acceder a mis agentes de codificación desde cualquier ubicación, por ejemplo, mi teléfono o mi Mac. Y me resulta muy fácil descubrir qué agentes de codificación necesitan información y cuáles pueden continuar ejecutándose. Y obtengo una función de deslizamiento para poder revisar rápidamente todos mis agentes de codificación. Esta es básicamente una idea de aplicación que se me ocurrió para que fuera más efectivo interactuar con todos mis agentes de codificación porque me costó tener una descripción general de todos ellos cuando comencé a tener más de 15 agentes ejecutándose a la vez.
Lo que hice fue empezar a hacer un plan para implementar esta característica donde explicaba todo, por ejemplo:
Quiero una aplicación, una aplicación Vercel, a la que pueda acceder tanto desde mi teléfono como desde mi Mac, por lo que debo optimizarla para la vista del teléfono y de la PC. Y debería brindarme una descripción general sencilla de todos mis agentes de codificación. Es muy importante que pueda ver todos mis agentes de codificación desde esa vista, ya sea Codex o Claude Code. Debería poder descubrir fácilmente qué agentes de codificación se ejecutan de forma autónoma y, por lo tanto, no necesitan ninguna información, y qué agentes de codificación necesitan mi información, y debería alertarme si necesitan mi información. También debería utilizar un LLM para simplificar al máximo las consultas para que pueda, en la mayoría de los casos, simplemente responder con una de las alternativas predeterminadas, etc.
Luego dejé que el agente hiciera un plan y investigara cómo construirlo, y comenzó a explicar la aplicación y demás.
Más tarde, quise comprender mejor cómo funcionaba el sistema LLM en mi solicitud porque no estaba seguro de cómo entendía el LLM qué tareas eran pendientes, como en qué temas tenía que trabajar y cómo entendía cómo construyeba las preguntas de opción múltiple a partir de los hilos que tenían un trabajo sobresaliente.
Por lo tanto, pedí algo como:
Quiero entender mejor el sistema LLM en la aplicación. ¿Es correcto mi entendimiento? Que el sistema funcione de modo que tengamos una tarea cron ejecutándose cada 10 minutos donde luego ejecutamos un agente de códice que revisa todos mis subprocesos. Identifica qué subprocesos se están ejecutando actualmente y cuáles están detenidos, y luego, de los que están detenidos, descubre si hay algo esperando mis comentarios y descubre las tareas que están esperando mis comentarios y me las presenta en un formato de opción múltiple. ¿Es correcto ese entendimiento?
Luego, el agente me explicó que el sistema no estaba basado en una tarea cron, por ejemplo, estaba basado en un sistema de webhook, y me explicó que estaba usando una suscripción de Codex y la clave API de Codex, y así sucesivamente.
Sin embargo, esto fue muy clave porque el agente también destacó que parte de mi entendimiento era correcto. Por lo tanto, me había alineado completamente con el agente de codificación en lo que estaba construyendo y pudimos comenzar a construirlo porque estuve de acuerdo con los detalles de implementación.
Creo que también vale la pena agregar aquí que hacer estas explicaciones (como presentar mi comprensión del sistema) es una muy buena práctica para comprender mejor el código. Le ayuda a presentar su comprensión de la situación y el LLM la corrige, lo que básicamente le ayuda a mejorar la forma en que interactúa con el código. Sin embargo, también me gustaría señalar que, hasta cierto punto, definitivamente requiere un nivel mínimo de comprensión del código porque, por supuesto, hay que saber cómo funcionan los diferentes sistemas para poder describirlos. Pero definitivamente creo que esta es una forma de aprender. Intenta explicarlo lo mejor que puede, y el LLM lo ayuda a comprenderlo y explicarlo mejor con el tiempo para que sea más competente trabajando con código y, por lo tanto, también más eficiente.
Conclusión
En este artículo, hablé de cómo alinear eficazmente sus intenciones como ingeniero con las de un agente de codificación. Describí algunas técnicas diferentes que utilizo para asegurarme de que mis agentes de codificación y yo estemos alineados, y creo que funcionan muy bien. Sin embargo, la mejor técnica que presenté, que es, con diferencia, la que mejor me funciona para alinearme con mis agentes codificadores, es decirle al modelo: “¿Mi comprensión es correcta?” y luego presentar mi comprensión de una implementación o solución. Luego, el LLM me dirá si estoy en lo correcto, parcialmente correcto o incorrecto y me presentará una respuesta corregida. Creo que esto me ayuda a asegurarme de comprender el código que se está creando y también me ayuda a comprender lo que el LLM pretende crear en función de mis indicaciones.
👋 Ponte en contacto
👉 Mi libro electrónico y seminario web gratuitos:
🚀 10 veces su ingeniería con LLM (curso gratuito por correo electrónico de 3 días)
📚 Obtenga mi libro electrónico gratuito sobre Modelos de lenguaje de visión
💻 Mi seminario web sobre modelos de lenguaje de visión
👉 Encuéntrame en las redes sociales:
💌 Subpila
🐦X/Twitter