Agente & Entorno De Ejecución De Agentes
En esta y la siguiente sección, nos enfocamos en los conceptos centrales de Saptiva-Agents: agentes, entorno de ejecución de agentes, mensajes y comunicación, que son los bloques fundamentales para construir aplicaciones multi-agente.
Un agente en Saptiva-Agents es una entidad definida por la interfaz base Agent
. Tiene un identificador único del tipo AgentId
, y un diccionario de metadatos del tipo AgentMetadata
.
En la mayoría de los casos, puedes subclasificar tus agentes desde la clase de nivel superior RoutedAgent
, que te permite enrutar mensajes al manejador de mensajes correspondiente, especificado con el decorador @message_handler()
y una pista de tipo apropiada para la variable del mensaje. Un entorno de ejecución de agente es el entorno donde los agentes se ejecutan en Saptiva-Agents.
Similar al entorno de ejecución de un lenguaje de programación, el entorno de ejecución de agentes proporciona la infraestructura necesaria para facilitar la comunicación entre agentes, gestionar sus ciclos de vida, imponer límites de seguridad y soportar monitoreo y depuración.
Para desarrollo local, los desarrolladores pueden usar SingleThreadedAgentRuntime
, que puede ser embebido en una aplicación Python.
Si ya estás familiarizado con Saptiva-Agents, es importante notar que los agentes de Saptiva-Agents, como AssistantAgent
, son creados por la aplicación y por lo tanto no están gestionados directamente por el entorno de ejecución. Para usar un agente de Saptiva-Agents en el Core, necesitas crear un agente envoltorio (wrapper
) que delegue mensajes al agente de Saptiva-Agents y permita al runtime gestionar dicho agente.
Implementación de un Agente
Para implementar un agente, el desarrollador debe subclasificar RoutedAgent
y definir un método manejador para cada tipo de mensaje que el agente espera manejar, usando el decorador @message_handler
. Por ejemplo, el siguiente agente maneja un tipo de mensaje simple MyMessageType
y lo imprime:
Este agente solo maneja MyMessageType
y los mensajes se entregan al método handle_my_message_type
.
Uso de un Agente de Saptiva-Agents
Si tienes un agente de Saptiva-Agents y deseas usarlo con la API Core, puedes crear un agente envoltorio (wrapper
) que delegue los mensajes al agente de Saptiva-Agents. Ejemplo:
Registro del Tipo de Agente
Para que el entorno de ejecución pueda usar un agente, el desarrollador debe registrar el tipo de agente usando el método register()
de la clase BaseAgent
. Esto vincula un nombre único de tipo con una función fábrica que crea una instancia del agente.
El tipo de agente (AgentType
) no es lo mismo que la clase del agente. En este ejemplo, el tipo de agente es AgentType("my_agent")
o AgentType("my_assistant")
, mientras que la clase del agente es la clase de Python MyAgent
o MyAssistantAgent
. Se espera que la función fábrica devuelva una instancia de la clase del agente sobre la cual se invoca el método de clase register()
.
Para registrar nuestros tipos de agentes con SingleThreadedAgentRuntime
, se puede usar el siguiente código:
Una vez registrado, puedes enviar mensajes directamente:
Salida esperada:
Ejecutar el Entorno de Ejecución de Agentes en Hilo Único
start()
inicia una tarea en segundo plano para entregar mensajes:
Puedes usar stop_when_idle()
si deseas esperar a que todos los mensajes se procesen:
Para liberar recursos completamente:
Otros entornos de ejecución pueden tener diferentes métodos para operar.
Última actualización