FAQs#

Wie erhalte ich die zugrunde liegende Agenteninstanz?#

Agenten können über mehrere Maschinen verteilt sein, daher wird der Zugriff auf die zugrunde liegende Agenteninstanz absichtlich nicht empfohlen. Wenn der Agent definitiv auf derselben Maschine läuft, können Sie auf die Agenteninstanz zugreifen, indem Sie autogen_core.AgentRuntime.try_get_underlying_agent_instance() auf der AgentRuntime aufrufen. Wenn der Agent nicht verfügbar ist, wird eine Ausnahme ausgelöst.

Wie rufe ich eine Funktion auf einem Agenten auf?#

Da die Instanz selbst nicht zugänglich ist, können Sie eine Funktion nicht direkt auf einem Agenten aufrufen. Stattdessen sollten Sie einen Typ erstellen, um den Funktionsaufruf und seine Argumente darzustellen, und dann diese Nachricht an den Agenten senden. Erstellen Sie dann im Agenten einen Handler für diesen Nachrichtentyp und implementieren Sie die erforderliche Logik. Dies unterstützt auch die Rückgabe einer Antwort an den Aufrufer.

Dies ermöglicht es Ihrem Agenten, sowohl in einer verteilten als auch in einer lokalen Umgebung zu arbeiten.

Warum muss ich eine Factory verwenden, um einen Agenten zu registrieren?#

Eine autogen_core.AgentId besteht aus einem Typ und einem Schlüssel. Der Typ entspricht der Factory, die den Agenten erstellt hat, und der Schlüssel ist ein laufzeitabhängiger, datenabhängiger Schlüssel für diese Instanz.

Der Schlüssel kann einer Benutzer-ID, einer Sitzungs-ID entsprechen oder einfach "default" sein, wenn Sie keine Instanzen unterscheiden müssen. Jeder eindeutige Schlüssel erstellt eine neue Instanz des Agenten, basierend auf der bereitgestellten Factory. Dies ermöglicht es dem System, automatisch auf verschiedene Instanzen desselben Agenten zu skalieren und den Lebenszyklus jeder Instanz unabhängig davon zu verwalten, wie Sie Schlüssel in Ihrer Anwendung behandeln möchten.

Wie erhöhe ich die GRPC-Nachrichtengröße?#

Wenn Sie benutzerdefinierte gRPC-Optionen angeben müssen, wie z. B. die Überschreibung von max_send_message_length und max_receive_message_length, können Sie eine extra_grpc_config Variable definieren und diese sowohl an die GrpcWorkerAgentRuntimeHost als auch an die GrpcWorkerAgentRuntime Instanzen übergeben.

# Define custom gRPC options
extra_grpc_config = [
    ("grpc.max_send_message_length", new_max_size),
    ("grpc.max_receive_message_length", new_max_size),
]

# Create instances of GrpcWorkerAgentRuntimeHost and GrpcWorkerAgentRuntime with the custom gRPC options

host = GrpcWorkerAgentRuntimeHost(address=host_address, extra_grpc_config=extra_grpc_config)
worker1 = GrpcWorkerAgentRuntime(host_address=host_address, extra_grpc_config=extra_grpc_config)

Hinweis: Wenn GrpcWorkerAgentRuntime eine Host-Verbindung für die Clients erstellt, verwendet es DEFAULT_GRPC_CONFIG aus der Klasse HostConnection als Standardwerte, die überschrieben werden können, wenn Sie Parameter mit demselben Namen über extra_grpc_config übergeben.

Was sind Modellfähigkeiten und wie spezifiziere ich sie?#

Modellfähigkeiten sind zusätzliche Fähigkeiten, die eine LLM über die Standardfunktionen der natürlichen Sprache hinaus haben kann. Derzeit gibt es 3 zusätzliche Fähigkeiten, die innerhalb von Autogen spezifiziert werden können.

  • vision: Das Modell ist in der Lage, Bilddaten zu verarbeiten und zu interpretieren.

  • function_calling: Das Modell verfügt über die Fähigkeit, Funktionsbeschreibungen entgegenzunehmen; wie z. B. den Funktionsnamen, Zweck, Eingabeparameter usw.; und kann mit einer geeigneten Funktion zur Ausführung, einschließlich aller erforderlichen Parameter, antworten.

  • json_output: Das Modell ist in der Lage, Antworten so auszugeben, dass sie einem angegebenen JSON-Format entsprechen.

Modellfähigkeiten können in ein Modell übergeben werden, wodurch die Standarddefinitionen überschrieben werden. Diese Fähigkeiten wirken sich nicht darauf aus, wozu das zugrunde liegende Modell tatsächlich fähig ist, sondern erlauben oder verbieten damit verbundene Verhaltensweisen. Dies ist besonders nützlich, wenn lokale LLMs verwendet werden.

from autogen_ext.models.openai import OpenAIChatCompletionClient

client = OpenAIChatCompletionClient(
    model="gpt-4o",
    api_key="YourApiKey",
    model_capabilities={
        "vision": True,
        "function_calling": False,
        "json_output": False,
    }
)