Anwendungsstack#
AutoGen Core ist als ein neutrales Framework konzipiert, das zum Aufbau einer breiten Palette von Multi-Agenten-Anwendungen verwendet werden kann. Es ist nicht an eine bestimmte Agentenabstraktion oder ein Multi-Agenten-Muster gebunden.
Das folgende Diagramm zeigt den Anwendungsstack.
Am unteren Ende des Stacks befinden sich die grundlegenden Messaging- und Routing-Einrichtungen, die es Agenten ermöglichen, miteinander zu kommunizieren. Diese werden von der Agentenlaufzeit verwaltet, und für die meisten Anwendungen müssen Entwickler nur mit den von der Laufzeit bereitgestellten High-Level-APIs interagieren (siehe Agent und Agentenlaufzeit).
Am oberen Ende des Stacks müssen Entwickler die Arten der von den Agenten ausgetauschten Nachrichten definieren. Diese Menge von Nachrichtentypen bildet einen Verhaltensvertrag, an den sich die Agenten halten müssen, und die Implementierung der Verträge bestimmt, wie Agenten Nachrichten verarbeiten. Der Verhaltensvertrag wird manchmal auch als Nachrichtenprotokoll bezeichnet. Es liegt in der Verantwortung des Entwicklers, den Verhaltensvertrag zu implementieren. Multi-Agenten-Muster ergeben sich aus diesen Verhaltensverträgen (siehe Multi-Agenten-Designmuster).
Eine Beispielanwendung#
Betrachten wir ein konkretes Beispiel für eine Multi-Agenten-Anwendung zur Codeerstellung. Die Anwendung besteht aus drei Agenten: Coder Agent, Executor Agent und Reviewer Agent. Das folgende Diagramm zeigt den Datenfluss zwischen den Agenten und die ausgetauschten Nachrichtentypen.
In diesem Beispiel besteht der Verhaltensvertrag aus den folgenden
CodingTaskMsgNachricht von der Anwendung an den Coder AgentCodeGenMsgvom Coder Agent an den Executor AgentExecutionResultMsgvom Executor Agent an den Reviewer AgentReviewMsgvom Reviewer Agent an den Coder AgentCodingResultMsgvom Reviewer Agent an die Anwendung
Der Verhaltensvertrag wird durch die Verarbeitung dieser Nachrichten durch die Agenten implementiert. Zum Beispiel hört der Reviewer Agent auf ExecutionResultMsg und wertet das Ergebnis der Codeausführung aus, um zu entscheiden, ob er genehmigt oder ablehnt. Wenn genehmigt, sendet er eine CodingResultMsg an die Anwendung, andernfalls sendet er eine ReviewMsg an den Coder Agent für eine weitere Runde der Codeerstellung.
Dieser Verhaltensvertrag ist ein Fall eines Multi-Agenten-Musters namens Reflexion, bei dem ein Generierungsergebnis durch eine weitere Generierungsrunde überprüft wird, um die Gesamtqualität zu verbessern.