Un Agent (Agente Inteligente) es un sistema de aplicación centrado en un gran modelo de lenguaje, capaz de tomar decisiones autónomas y ejecutar acciones hacia un objetivo de tarea. El gran modelo proporciona al Agent capacidades fundamentales como comprensión del lenguaje, razonamiento y generación de contenido, permitiéndole comprender las tareas del usuario y analizar la información actual. Sobre esta base, el Agent aplica aún más la capacidad de razonamiento del modelo a la ejecución de tareas: frente a un objetivo, no solo necesita generar una respuesta, sino también determinar qué se debe hacer para alcanzar el objetivo, y obtener información externa o ejecutar acciones específicas a través de herramientas. Cuando una tarea involucra múltiples pasos, el Agent también puede usar los resultados del paso anterior para determinar la siguiente acción, ajustando el plan original cuando sea necesario hasta completar la tarea. Por lo tanto, el enfoque del Agent se expande de "qué contenido generar basado en la entrada" a "cómo completar tareas alrededor de los objetivos". La toma de decisiones autónoma mencionada aquí no significa actuar completamente sin restricciones, sino seleccionar operaciones apropiadas dentro del alcance predefinido de tareas, herramientas y permisos, basándose en el estado actual. Un Agent no es un nuevo modelo independiente de los grandes modelos de lenguaje, sino un sistema de ejecución de tareas que utiliza los grandes modelos como núcleo de comprensión y decisión, combinando los modelos con capacidades externas.
Los Agents son particularmente adecuados para tareas que involucran múltiples pasos, requieren el uso de información o herramientas externas, y cuyo proceso de ejecución puede cambiar según los resultados intermedios. Los escenarios de aplicación comunes incluyen recuperación de información, análisis de datos, desarrollo de software y automatización de procesos empresariales. Por ejemplo, en escenarios de recuperación de información, un Agent puede buscar y organizar materiales de diferentes fuentes según la tarea; en escenarios de análisis de datos, puede leer datos, realizar cálculos y generar resultados de análisis; en escenarios de desarrollo de software, puede escribir código, ejecutar pruebas y continuar modificando según los resultados de ejecución; en escenarios de automatización de procesos empresariales, puede conectarse a bases de datos y sistemas empresariales para completar consultas de datos, procesamiento de tickets y otras operaciones. Para tareas como traducción, resumen y reescritura que pueden completarse directamente a través de la generación de modelos, generalmente no es necesario usar un Agent.
El núcleo del Agent, responsable de procesar la entrada del usuario, generar respuestas y tomar decisiones — esencialmente el "cerebro" del Agent. Dado que los Agents no siguen rutas preestablecidas sino que ajustan dinámicamente su estrategia de comportamiento en función de las condiciones en tiempo real, el LLM no solo es responsable de comprender y generar contenido, sino que también necesita determinar la siguiente operación basándose en la tarea actual y los resultados de ejecución, decidiendo cómo interactuar con el entorno externo. El Agent utiliza prompts (indicaciones) para especificar el rol del LLM, los objetivos de la tarea, las reglas de comportamiento y los límites de permisos, permitiendo al LLM tomar decisiones y ejecutar dentro de los límites predefinidos.
Iniciar sesión unirse a la discusión
Responsable de formular el plan de acción del Agent, incluyendo descomponer tareas complejas en múltiples subtareas y determinar los pasos de ejecución posteriores. Al procesar tareas de múltiples pasos, un Agent no solo necesita crear un plan de acción, sino también ajustarlo según la ejecución de la tarea. Por ejemplo, cuando los resultados de las herramientas difieren de las expectativas o cuando la información obtenida es insuficiente, el Agent puede ajustar el plan original y re-determinar el siguiente paso. El módulo de Planificación permite al Agent planificar y ajustar dinámicamente las acciones posteriores según el estado de la tarea.
Utilizada para almacenar la memoria del Agent, incluyendo memoria a corto plazo y memoria a largo plazo. La memoria a corto plazo guarda principalmente información de la sesión o tarea actual, mientras que la memoria a largo plazo se utiliza para guardar información que necesita retenerse a largo plazo. La memoria es un sistema dinámico, accesible y actualizable. Dinámico significa que la memoria puede cambiar con nueva información y estado de la tarea; accesible significa que el Agent puede recuperar y usar información almacenada según sea necesario; actualizable significa que el Agent puede complementar o modificar la memoria existente basándose en nueva información y resultados de ejecución. A medida que la memoria se actualiza continuamente, el Agent puede aprovechar la interacción y la experiencia de las tareas para mejorar juicios y decisiones posteriores, mejorando su adaptabilidad a diferentes tareas y entornos.
Varias herramientas disponibles para el Agent, incluyendo motores de búsqueda, bases de datos, calculadoras, entornos de ejecución de código y varios servicios externos proporcionados a través de API. La función principal del módulo de Herramientas es extender la capacidad del Agent para interactuar con el entorno externo, permitiendo al Agent no solo generar contenido, sino también obtener información externa y ejecutar operaciones específicas.
Al usar el módulo de Herramientas, el Agent necesita determinar si se necesitan herramientas basándose en la tarea actual y el contexto, y cuál herramienta seleccionar. Usar herramientas de manera efectiva no solo significa seleccionar la herramienta correcta, sino también cómo usarlas de manera eficiente para reducir el uso innecesario de herramientas. Cuando una tarea requiere la colaboración de múltiples herramientas, el Agent también necesita decidir si continuar llamando a otras herramientas basándose en los resultados, e integrar resultados de diferentes herramientas. Por lo tanto, el módulo de Herramientas no solo proporciona al Agent capacidades externas, sino que también requiere que el Agent seleccione y use herramientas de manera razonable según las necesidades de la tarea.
Un Agent es un sistema que integra LLM, Planificación, Memoria y Herramientas, como se muestra en el diagrama a continuación. Estos módulos trabajan juntos para permitir que el Agent ejecute tareas de manera autónoma, aprenda y mejore su comportamiento.
Después de recibir una tarea, un Agent necesita determinar cómo proceder basándose en el objetivo de la tarea y la información actual. Por ejemplo, algunas tareas pueden llamar herramientas mientras determinan el siguiente paso basándose en los resultados devueltos; algunas tareas complejas requieren primero descomponer los pasos y luego ejecutarlos incrementalmente; para los resultados generados, se puede realizar una verificación y modificación adicional. Cuando un solo Agent no puede completar toda la tarea, múltiples Agents pueden asignarse diferentes roles para colaborar.
Según las características de la tarea y los métodos de ejecución, los Agents pueden adoptar diferentes modos de ejecución de tareas. A continuación presentamos cuatro modos comunes: ReAct, Plan-and-Execute, Reflection y Colaboración Multi-Agent, que organizan el proceso de ejecución de tareas del Agent desde diferentes aspectos como ejecución dinámica, planificación de tareas, mejora de resultados y división de tareas.
ReAct (Reasoning and Acting) es un enfoque de ejecución de tareas que combina razonamiento y acción, propuesto por Shunyu Yao et al. El gran modelo razona y actúa basándose en la información actual, luego continúa razonando y actuando basándose en la nueva información obtenida de la acción, hasta completar la tarea.
El proceso típico de ReAct incluye Thought (razonamiento), Action (acción) y Observation (observación). Thought representa el análisis de la información actual por el modelo para determinar el siguiente paso; cuando se necesita obtener información externa o ejecutar una operación, el modelo genera la Action correspondiente, como llamar a una herramienta de búsqueda o consultar una base de datos; el resultado devuelto por la herramienta se proporciona al modelo como Observation, y el modelo continúa tomando decisiones basándose en esta nueva información.
Durante la ejecución de la tarea, Thought, Action y Observation aparecen alternadamente según las necesidades de la tarea, formando un proceso de ejecución donde razonamiento, acción y observación trabajan juntos. El proceso típico puede expresarse así:
Thought → Action → Observation → Thought → Action → Observation → ... → Resultado Final
Por ejemplo, un usuario pregunta: "¿Quién ganó el Premio Nobel de Física en 2024? ¿Cuál es el mayor de ellos?"
El Agent primero determina que necesita obtener la lista de ganadores del Premio Nobel de Física 2024, por lo que llama a la herramienta de búsqueda para consultar. Después de obtener la lista, encuentra que también necesita comparar las edades de los ganadores, por lo que continúa consultando sus fechas de nacimiento. Después de obtener la información requerida, el Agent compara y genera la respuesta final.
En este proceso, el Agent no determinó todos los pasos de ejecución al inicio de la tarea, sino que decidió el siguiente paso basándose en el resultado devuelto por cada herramienta. Por lo tanto, ReAct es más adecuado para tareas que requieren interacción continua con el entorno externo, como búsqueda, consulta y llamada de herramientas. Para tareas complejas con muchos pasos, si se usa completamente este enfoque de ejecución paso a paso, pueden faltar pasos o haber caminos de ejecución repetidos.
Plan-and-Execute divide el procesamiento de tareas complejas en dos fases: planificación y ejecución. Después de recibir una tarea, el Agent primero analiza el objetivo de la tarea y descompone los pasos a completar, formando un plan general, y luego ejecuta paso a paso según el plan.
Por ejemplo, un usuario solicita: "Analice el rendimiento empresarial reciente de tres empresas de vehículos eléctricos y cree un informe comparativo." Esta tarea implica múltiples pasos, incluyendo recopilación de datos, organización de datos, análisis comparativo e informes. Para estas tareas de múltiples pasos, se puede crear primero un plan como sigue:
Una vez formado el plan, el Agent completa las tareas secuencialmente. Al ejecutar un paso, aún puede llamar herramientas de búsqueda, bases de datos u otras herramientas. Si durante la ejecución se descubre que el plan original no puede continuar, o si surgen nuevas necesidades de la tarea, el plan original puede ajustarse.
El proceso de ejecución típico de Plan-and-Execute puede expresarse así:
Tarea del Usuario → Crear Plan → Ejecutar Paso a Paso → Verificar Estado de la Tarea → Resultado Final
Donde, al verificar el estado de la tarea, si el plan original necesita ajustes, se puede re-planificar antes de continuar la ejecución.
Comparado con ReAct, Plan-and-Execute enfatiza crear un plan general antes de la ejecución, lo que lo hace adecuado para tareas con muchos pasos, objetivos claros y la posibilidad de ser descompuestas de antemano. Los dos modos también pueden combinarse, por ejemplo, usando Plan-and-Execute para planificar tareas complejas, y luego usando ReAct dentro de pasos individuales para determinar dinámicamente la siguiente operación basándose en los resultados devueltos por las herramientas.
Los resultados generados por un Agent la primera vez no necesariamente cumplen con los requisitos de la tarea. Por ejemplo, el informe generado puede omitir información importante, las respuestas pueden contener errores factuales, o el código puede no ejecutarse correctamente. Para estas tareas, se puede agregar un proceso de verificación y mejora basado en los resultados preliminares — esta es la idea básica del modo Reflection (reflexión).
El proceso básico de Reflection puede expresarse así: Tarea del Usuario → Generar Resultados Preliminares → Verificar Resultados → Identificar Problemas → Modificar Resultados → Verificar Nuevamente → ... → Cumplir Requisitos → Resultado Final.
Por ejemplo, pida a un Agent que genere un informe comparativo de productos basado en múltiples fuentes. Después de completar el primer borrador, puede verificar si todos los productos que necesitan comparación están cubiertos, si los parámetros del producto son consistentes con las fuentes originales, y si se omitieron diferencias importantes. Si se encuentra información incompleta para un producto, puede buscar materiales nuevamente y complementar; si las conclusiones no son consistentes con las fuentes, deben revisarse.
En este proceso, los comentarios utilizados para verificar los resultados pueden provenir de diferentes fuentes. El Agent puede verificar sus propios resultados de ejecución, usar otros Agents o modelos para evaluación, o combinar reglas, bases de conocimiento o revisión manual para proporcionar comentarios.
Este modo es más adecuado para tareas con altos requisitos de calidad como generación de informes, escritura de código y análisis complejo. Sin embargo, múltiples verificaciones y modificaciones también aumentarán el número de llamadas al modelo y el tiempo de ejecución, por lo que en la práctica generalmente se establecen condiciones de terminación, como terminar cuando los resultados cumplan los requisitos o detenerse después de alcanzar el número máximo de verificaciones.
Para algunas tareas complejas, un solo Agent puede necesitar manejar simultáneamente recopilación de datos, análisis de datos, generación de contenido y verificación de resultados. En este caso, las tareas pueden asignarse a múltiples Agents, cada uno manejando diferentes partes, y luego colaborando para completar el objetivo final. La colaboración Multi-Agent incluye principalmente dos aspectos: división de tareas e intercambio de información.
Al dividir tareas, se asignan a diferentes Agents diferentes roles, tareas, herramientas y conocimientos. Por ejemplo, para completar un informe de investigación industrial, se pueden establecer un Agent de Investigación, un Agent de Análisis de Datos, un Agent de Redacción y un Agent de Revisión. El Agent de Investigación es responsable de recopilar y organizar materiales, el Agent de Análisis de Datos procesa datos relevantes, el Agent de Redacción genera el informe, y el Agent de Revisión verifica el informe.
En términos de intercambio de información, se pueden usar diferentes métodos de colaboración entre múltiples Agents. Para tareas que pueden dividirse claramente, múltiples Agents pueden manejar diferentes subtareas por separado, y luego se pueden agregar los resultados al final; para tareas con dependencias secuenciales, el resultado de un Agent puede pasarse al siguiente Agent para su procesamiento continuo; para tareas que requieren discusión o modificación repetida, diferentes Agents pueden intercambiar información a través de interacciones de mensajes. Además, se puede establecer un Agent coordinador para decidir qué Agent debe manejar la tarea a continuación según la situación actual.
Tomando como ejemplo la generación de un informe de investigación industrial, un enfoque de colaboración Multi-Agent se muestra en el diagrama a continuación:

La colaboración Multi-Agent puede reducir la dificultad de manejar tareas complejas para un solo Agent a través de la división del trabajo, pero el número de Agents no es necesariamente mejor. A medida que aumenta el número de Agents, la asignación de tareas, la entrega de información y la coordinación de resultados también se vuelven más complejas, al tiempo que aumentan las llamadas al modelo y los costos de ejecución. Por lo tanto, para tareas que un solo Agent puede completar, generalmente no es necesario introducir múltiples Agents.
Estos modos de ejecución de tareas no son independientes entre sí y pueden combinarse según las necesidades de la tarea en aplicaciones prácticas. Por ejemplo, Plan-and-Execute puede usarse para planificar tareas complejas, luego ReAct puede usarse para completar pasos que requieren múltiples llamadas a herramientas, con Reflection verificando y mejorando los resultados; para tareas a mayor escala, diferentes subtareas pueden asignarse a múltiples Agents para colaborar en su finalización.