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