- Lo más sorprendente del desarrollo de Sketch, un asistente de programación con IA, es que un agente LLM con uso de herramientas puede funcionar con gran potencia incluso con un bucle simple de unas 9 líneas
- El flujo básico consiste en enviar la entrada del usuario al LLM y, si en la respuesta hay una llamada a herramienta, ejecutar esa llamada y volver a insertar el resultado en la conversación para usarlo en la siguiente decisión
- Solo con el prompt del sistema, el historial de la conversación y la descripción de las herramientas, el LLM puede invocar herramientas como
bashajustándose al esquema definido - Sketch, usando solo Claude 3.7 Sonnet y
bash, puede realizar tareas de git, un primer manejo de merges y correcciones de errores del verificador de tipos, aunque también muestra comportamientos frustrantes como intentar saltarse las pruebas - A medida que aumenten las herramientas adicionales ajustadas al flujo de trabajo de los desarrolladores y los bucles de agentes temporales, será posible delegar más tareas cotidianas que antes eran difíciles de cubrir con la automatización tradicional
Un bucle de agente de casi 9 líneas
- Sketch es un asistente de programación con IA que se ha estado desarrollando en los últimos meses
- El bucle central recibe la entrada del usuario, revisa el resultado de la llamada al LLM y, si hay una llamada a herramienta, inserta el resultado de la ejecución como siguiente mensaje; si no, vuelve a esperar la entrada del usuario
- La implementación completa requiere código adicional, pero la idea central se acerca a un bucle de 9 líneas
- Script completo: agent_loop.py
- La función
llm()se encarga de enviar a la API del LLM el prompt del sistema, la conversación acumulada hasta ese momento y el siguiente mensaje - El uso de herramientas funciona haciendo que el LLM devuelva una salida ajustada a un esquema específico
- En el script completo, el prompt del sistema y el prompt de descripción de herramientas le indican al LLM que puede acceder a
bash
- En el script completo, el prompt del sistema y el prompt de descripción de herramientas le indican al LLM que puede acceder a
Posibilidades y límites observados con Sketch
- Incluso con una sola herramienta de propósito general,
bash, los modelos actuales, en especial Claude 3.7 Sonnet, pueden resolver varias tareas de desarrollo- En vez de buscar, copiar y pegar operaciones complicadas de git, se le puede pedir a Sketch que las haga
- Antes de resolver manualmente un git merge, Sketch puede encargarse de un primer intento
- También se puede probar dejar en manos de Sketch la corrección una por una de los errores del verificador de tipos que aparecen después de un cambio de tipos
- Si se le hace el prompt adecuado, el bucle del agente puede operar de forma continua
- Si la herramienta necesaria no está instalada, la instala
- Si las opciones de línea de comandos de
grepcambian según el entorno, se adapta a esas diferencias
- Las limitaciones también son claras
- Puede aparecer un comportamiento como intentar simplemente omitir las pruebas cuando estas no pasan
- Sketch no usa solo
bash, sino también varias herramientas adicionales para mejorar la calidad, la velocidad de iteración y el flujo de trabajo del desarrollador - Las herramientas para lograr que el LLM edite texto con precisión son más complicadas de lo que parece
- Ver al LLM batallar con un comando de una sola línea de
sedmuestra que los editores visuales tienen fortalezas distintas a las de los editores orientados a líneas
- Ver al LLM batallar con un comando de una sola línea de
- Los bucles de agentes pueden empezar a ocupar más tareas cotidianas de automatización que eran demasiado específicas para herramientas de propósito general, o demasiado complejas o inestables para la automatización tradicional
- Vincular stack traces con commits de git es un ejemplo de trabajo donde el LLM puede encargarse bien del primer procesamiento
- Podrían empezar a aparecer más bucles de agentes LLM personalizados y temporales dentro del directorio
bin/
Aún no hay comentarios.