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.

Application Stack

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.

Code Generation Example

In diesem Beispiel besteht der Verhaltensvertrag aus den folgenden

  • CodingTaskMsg Nachricht von der Anwendung an den Coder Agent

  • CodeGenMsg vom Coder Agent an den Executor Agent

  • ExecutionResultMsg vom Executor Agent an den Reviewer Agent

  • ReviewMsg vom Reviewer Agent an den Coder Agent

  • CodingResultMsg vom 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.