Creo que estamos usando la IA mal, ¿por qué?

Estoy seguro de que has vivido la situación de que intentas hacer algo usando IA, pero la misma olvida lo que estaba haciendo o lo hace mal. O simplemente no logras el resultado esperado y toca iterar varias veces para que quede bien. O eres de los que gastan muchísimos tokens usando sistemas de persistencia de contexto.

El flujo que todos seguimos (y que no funciona tan bien)

Pensemos en un flujo normal de un dev: entra en el agente, lo pone en modo plan y empieza a pedirle cosas. El agente lee lo que necesita, quizás hace preguntas aclaratorias y luego viene con un plan. Luego vamos iterando ese plan hasta que queda como queremos. Terminamos ejecutando el plan.

En un camino feliz quizás esto funcione muy bien, pero cuando se trata de tareas complejas, la cantidad de iteraciones sobre el plan es más grande de lo que cualquiera de nosotros pudiera querer. ¿Y si pudiéramos volver más efectivo este proceso? Sí podemos hacerlo, pero implica que cambiemos un poco la forma como pensamos.

El modo plan no es lo que crees

En las últimas semanas he estado probando una forma diferente de usar los agentes. Terminé entendiendo también por qué muchos agentes en sus etapas iniciales no tienen modo plan; solo tienes ask y code. Y que realmente como tal el modo plan no lo necesitamos.

De hecho, el modo plan no esconde nada mágico por detrás; simplemente es una configuración que hace que el agente tenga cierto comportamiento. Nosotros mismos podemos ampliar lo que ese modo plan hace simplemente agregando más reglas en nuestro archivo de memoria e indicando que las mismas se aplicarán en el modo plan.

Piensa como dev, no como usuario de IA

Pero entonces, si no necesitamos el modo plan, ¿Cómo podemos hacer que los agentes nos den los resultados que necesitamos?

Solo sigue el flujo de trabajo que tú como dev seguirías para implementar una nueva función. Sí, así como lo estás leyendo. Es algo simple pero poderoso, porque funciona con nuestros cerebros.

Piénsalo: cuando un dev senior le explica a un junior cómo resolver algo, no le dice "hazlo". Le da contexto, le muestra los archivos relevantes, le explica cómo se conectan las piezas y recién entonces le pide que proponga una solución. La IA funciona igual. No es magia, es un proceso, y si le saltamos pasos, el resultado se nota.

Cuando vamos a hacer algo nuevo, resolver un bug o hacer una refactorización, no le ordenamos a nuestros pensamientos que simplemente hagan lo que tienen que hacer. Lo primero que hacemos es ubicar lo que queremos hacer, qué archivos están implicados y dónde iría la solución.

Segundo, leemos el contexto de lo que ya tenemos para saber cómo relacionarlo con lo que queremos hacer. Si hay que revisar varios archivos porque necesitamos usar otras funciones hechas, buscamos cuáles son. Puede que investiguemos un poco sobre cómo hacerlo, o tal vez cómo estábamos haciendo las cosas nosotros.

Luego de hacer todo esto es que trazamos un plan para la solución que queremos implementar. Y luego la implementamos.

Si necesitamos todo este proceso para implementar una solución, ¿Cómo es posible que pretendamos que la IA lo haga a la primera y de golpe? Todos sabemos que la IA no es más inteligente que nosotros. Lo mejor que podemos hacer es seguir un flujo similar al que seguiríamos nosotros. Esto me ha dado excelentes resultados.

Cómo lo aplico en la práctica

En vez de decir: "Arma un plan para refactorizar esta funcionalidad aplicando tal patrón, o aplicando este ejemplo" y esperar que la IA entienda mi ambigua intención, lo que hago es decirle: "Analiza tal funcionalidad tomando en cuenta todos los archivos involucrados y ármame un diagrama de flujo y explícame cómo funciona".

Luego que me da esto, reviso que entiende correctamente el código y que ha tomado en cuenta todos los archivos. Entonces es que le digo lo que quiero hacer. Si la tarea es muy grande, en ese momento que la pongo en modo plan y luego ejecuto el plan.

Otra cosa que hago es pedirle un ejemplo aplicando lo que quiero implementar sin todavía modificar el código. Es una forma interesante de saber qué es lo que hará sin todavía escribir nada. Desde allí pido modificaciones hasta que quede como quiero, y luego le digo que implemente la solución directamente. Realmente últimamente casi ni uso el modo plan.

Pruébalo tú mismo

Este método me ha servido incluso con modelos que no son tan inteligentes. ¿Recuerdas esas iteraciones interminables y esos tokens gastados de más? Con este flujo se reducen drásticamente, porque ya no le estás pidiendo a la IA que adivine lo que quieres; le estás dando el mismo camino que tú seguirías.

Te invito a probar este método, también a que pruebes tus propios métodos. Estoy seguro de que si lo haces encontrarás tu forma de trabajo ideal.

Reply

Avatar

or to participate

Keep Reading