Mensajes
En Saptiva-Agents, los mensajes facilitan la comunicación y el intercambio de información con otros agentes, orquestadores y aplicaciones. Saptiva-Agents admite varios tipos de mensajes, cada uno diseñado para fines específicos.
Tipos de Mensajes
A grandes rasgos, los mensajes en Saptiva-Agents se pueden clasificar en dos tipos: mensajes entre agentes y eventos y mensajes internos del agente.
Mensajes entre Agentes
Saptiva-Agents admite numerosos tipos de mensajes para la comunicación entre agentes. Pertenecen al tipo de unión ChatMessage
. Este tipo de mensaje permite la comunicación tanto de texto como multimodal e incluye otros tipos de mensajes, como TextMessage
o MultiModalMessage
.
Por ejemplo, el siguiente fragmento de código muestra cómo crear un mensaje de texto que acepta un contenido y un origen:
from saptiva_agents.messages import TextMessage
text_message = TextMessage(content="Hello, world!", source="User")
De manera similar, el siguiente fragmento de código demuestra cómo crear un mensaje multimodal, que acepta una lista de cadenas o un objetoImage
:
from io import BytesIO
import requests
from saptiva_agents.messages import MultiModalMessage
from saptiva_agents.core import Image
from PIL import Image as PILImage
image_bytes = BytesIO(requests.get("https://picsum.photos/300/200").content)
img = Image.from_pil(PILImage.open(image_bytes))
multi_modal_message = MultiModalMessage(content=["Puedes describir el contenido de esta imágen?", img], source="User")
img

Los TextMessage
y MultiModalMessage
que hemos creado se pueden pasar a los agentes directamente mediante el método on_messages
o como tareas asignadas a un método run()
de equipo. Los mensajes también se utilizan en las respuestas de un agente. Los explicaremos con más detalle en Agentes y Equipos.
Eventos Internos
Saptiva-Agents también admite el concepto de eventos
: mensajes internos de un agente. Estos mensajes se utilizan para comunicar eventos e información sobre acciones dentro del propio agente y pertenecen al tipo de unión AgentEvent
.
Algunos ejemplos incluyen ToolCallRequestEvent
, que indica que se realizó una solicitud para llamar a una herramienta, y ToolCallExecutionEvent
, que contiene los resultados de las llamadas a la herramienta.
Normalmente, los eventos son creados por el propio agente y se incluyen en el campo inner_messages
de la Response
devuelta por on_messages
. Si está creando un agente personalizado y tiene eventos que desea comunicar a otras entidades (por ejemplo, una interfaz de usuario), puede incluirlos en el campo inner_messages
de la Response
. Mostraremos ejemplos en Agentes Personalizados.
Última actualización