¿Qué es un agente?
- La definición de agente puede variar, pero se puede dividir en dos categorías:
- Workflows: los LLM y las herramientas se coordinan a través de rutas de código predefinidas
- Agents: el LLM controla dinámicamente la ejecución de tareas y el uso de herramientas
- En Anthropic, ambos se clasifican como sistemas agénticos (Agentic Systems), aunque existen diferencias importantes en flexibilidad y autonomía
¿Cuándo se debe usar un agente?
- Si es posible una solución simple, es importante minimizar la complejidad
- Workflows: útiles para manejar tareas predecibles, y ofrecen consistencia y estabilidad
- Agents: adecuados cuando se necesita flexibilidad y toma de decisiones centrada en el modelo a gran escala
- En la mayoría de los casos, basta con optimizar simplemente las llamadas al LLM o aprovechar ejemplos de contexto
Guía para usar frameworks
- Frameworks representativos:
- Ventajas de los frameworks:
- simplifican las llamadas al LLM, la definición de herramientas y las cadenas de invocación
- Desventajas:
- pueden agregar complejidad o dificultar la depuración
- Recomendación: empezar directamente con la API del LLM y, aun si se usa un framework, entender el código subyacente
Componentes de un sistema agéntico
LLM aumentado (Augmented LLM)
- Características: incorpora además búsqueda, uso de herramientas y memoria
- Cómo implementarlo:
- se puede integrar con herramientas de terceros usando Model Context Protocol
- ofrece una interfaz simple y documentada
Patrones principales de workflow
- Encadenamiento de prompts (Prompt Chaining)
- divide una tarea en subetapas fijas y las procesa de forma secuencial
- Casos de uso:
- generar texto de marketing y luego traducirlo
- redactar un borrador de documento y después revisarlo
- Enrutamiento (Routing)
- clasifica los datos de entrada y los envía a la tarea adecuada
- Casos de uso:
- clasificar consultas de soporte al cliente (preguntas generales, solicitudes de reembolso, soporte técnico)
- enrutar preguntas simples a un modelo pequeño y preguntas complejas a un modelo más potente
- Paralelización (Parallelization)
- separa tareas o ejecuta la misma tarea varias veces
- Casos de uso:
- usar múltiples prompts al revisar vulnerabilidades de código
- separar la entrada del usuario para filtrarla y responder
- Orchestrator-Workers
- un LLM central descompone la tarea, la asigna a LLM workers y luego integra los resultados
- Casos de uso:
- modificar archivos en tareas de programación complejas
- tareas de búsqueda de información múltiple
- Evaluator-Optimizer
- evalúa la respuesta del LLM, entrega retroalimentación y la mejora de manera iterativa
- Casos de uso:
- mejorar la calidad de traducciones literarias
- tareas de búsqueda y análisis múltiples
Agents
- Los agents planifican el trabajo y lo ejecutan de forma independiente, e interactúan con humanos cuando es necesario
- Características:
- avanzan usando herramientas para obtener la "verdad" del entorno y evaluar el progreso
- permiten establecer puntos de verificación y condiciones de interrupción durante la tarea
- Casos de uso:
- agents de programación complejos
- implementaciones en las que Claude realiza tareas en la computadora
Combinación de patrones y personalización
- Los patrones anteriores pueden ajustarse y combinarse según la situación específica
- La complejidad solo debe añadirse cuando se haya demostrado que mejora los resultados
Resumen
- En el campo de los LLM, el éxito no depende de construir el sistema más complejo, sino de crear el sistema adecuado para la necesidad
- Se debe empezar con prompts simples, optimizar mediante evaluación y considerar sistemas agénticos multietapa solo cuando una solución simple no sea suficiente
- Principios clave al implementar agents
- Mantener la simplicidad: conservar un diseño simple del agente
- Priorizar la transparencia: mostrar con claridad las etapas de planificación del agente
- Mejorar la calidad de la interfaz agente-computadora (ACI): documentar y probar rigurosamente las herramientas
- Uso de frameworks y estrategia de implementación
- los frameworks son útiles para una implementación inicial, pero también conviene considerar reducir la capa de abstracción y construir el sistema con componentes básicos
- si se siguen estos principios, es posible crear agents potentes, confiables y mantenibles
Casos de clientes: uso de agents en la práctica
- A. Soporte al cliente
- ofrecen soluciones efectivas mediante un flujo conversacional natural y la integración de datos externos
- Ventajas:
- se pueden medir por la tasa de resolución exitosa
- se puede aplicar un modelo de precios basado en uso
- B. Agents de programación
- las soluciones de código pueden validarse mediante pruebas automatizadas
- Ventajas:
- los resultados de las pruebas pueden usarse como retroalimentación
- el espacio del problema es claro y estructurado
- C. Diseño y optimización de herramientas
- diseñarlas considerando cómo el LLM usa las herramientas
- Métodos recomendados:
- usar nombres de parámetros intuitivos y concisos
- realizar pruebas y mejoras iterativas
- incluir ejemplos y casos límite en la definición de la herramienta
2 comentarios
Parece que aplicaron algo parecido al low-code de forma torpe, pero sin esquema de datos ni control de versiones no se va a poder rastrear los cambios.
Con poca experiencia, me pareció como combinar funciones de programación funcional solo en apariencia, pero con el caos de no saber cuáles serán la E/S de la función (parámetros, tipo de retorno)..
Mientras lo hacía, no dejaba de pensar: ¿de verdad hace falta hacer esto..? ¿hay que dar soporte hasta este punto..?
Por ahora, todavía no termino de sentir con claridad cuáles son las áreas donde un sistema agéntico es realmente imprescindible.