Nachrichten#

In AutoGen AgentChat erleichtern Nachrichten die Kommunikation und den Informationsaustausch mit anderen Agenten, Orchestratoren und Anwendungen. AgentChat unterstützt verschiedene Nachrichtentypen, die jeweils für bestimmte Zwecke konzipiert sind.

Nachrichtentypen#

Auf hoher Ebene können Nachrichten in AgentChat in zwei Typen unterteilt werden: Agent-zu-Agent-Nachrichten und interne Ereignisse und Nachrichten eines Agenten.

Agent-zu-Agent-Nachrichten#

AgentChat unterstützt viele Nachrichtentypen für die Kommunikation von Agent zu Agent. Sie gehören zu Unterklassen der Basisklasse BaseChatMessage. Konkrete Unterklassen umfassen grundlegende Text- und multimodale Kommunikation, wie z. B. TextMessage und MultiModalMessage.

Zum Beispiel zeigt der folgende Code-Schnipsel, wie eine Textnachricht erstellt wird, die einen String-Inhalt und eine String-Quelle akzeptiert

from autogen_agentchat.messages import TextMessage

text_message = TextMessage(content="Hello, world!", source="User")

Ähnlich zeigt der folgende Code-Schnipsel, wie eine multimodale Nachricht erstellt wird, die eine Liste von Strings oder Image-Objekten akzeptiert

from io import BytesIO

import requests
from autogen_agentchat.messages import MultiModalMessage
from autogen_core import Image as AGImage
from PIL import Image

pil_image = Image.open(BytesIO(requests.get("https://picsum.photos/300/200").content))
img = AGImage(pil_image)
multi_modal_message = MultiModalMessage(content=["Can you describe the content of this image?", img], source="User")
img

Die erstellten TextMessage und MultiModalMessage können direkt über die Methode on_messages an Agenten übergeben werden, oder als Aufgaben, die der Methode run() eines Teams gegeben werden. Nachrichten werden auch in den Antworten eines Agenten verwendet. Diese werden wir in Agenten und Teams genauer erläutern.

Interne Ereignisse#

AgentChat unterstützt auch das Konzept von Ereignissen – Nachrichten, die intern für einen Agenten sind. Diese Nachrichten werden verwendet, um Ereignisse und Informationen über Aktionen innerhalb des Agenten selbst zu kommunizieren und gehören zu Unterklassen der Basisklasse BaseAgentEvent.

Beispiele hierfür sind ToolCallRequestEvent, das anzeigt, dass eine Anforderung zur Aufrufung eines Tools gestellt wurde, und ToolCallExecutionEvent, das die Ergebnisse von Tool-Aufrufen enthält.

Typischerweise werden Ereignisse vom Agenten selbst erstellt und sind im Feld inner_messages der Response enthalten, die von on_messages zurückgegeben wird. Wenn Sie einen benutzerdefinierten Agenten erstellen und Ereignisse haben, die Sie an andere Entitäten (z. B. eine Benutzeroberfläche) kommunizieren möchten, können Sie diese im Feld inner_messages der Response einfügen. Beispiele hierfür zeigen wir in Benutzerdefinierte Agenten.

Sie können über die vollständige Palette der in AgentChat unterstützten Nachrichten im Modul messages lesen.

Benutzerdefinierte Nachrichtentypen#

Sie können benutzerdefinierte Nachrichtentypen erstellen, indem Sie die Basisklasse BaseChatMessage oder BaseAgentEvent ableiten. Dies ermöglicht es Ihnen, Ihre eigenen Nachrichtenformate und -verhaltensweisen zu definieren, die auf Ihre Anwendung zugeschnitten sind. Benutzerdefinierte Nachrichtentypen sind nützlich, wenn Sie benutzerdefinierte Agenten schreiben.