autogen_agentchat.conditions#

Dieses Modul stellt verschiedene Abbruchbedingungen zur Steuerung des Verhaltens von Multi-Agenten-Teams bereit.

class MaxMessageTermination(max_messages: int, include_agent_event: bool = False)[source]#

Bases: TerminationCondition, Component[MaxMessageTerminationConfig]

Beendet die Konversation nach dem Austausch einer maximalen Anzahl von Nachrichten.

Parameter:
  • max_messages – Die maximal erlaubte Anzahl von Nachrichten in der Konversation.

  • include_agent_event – Wenn True, werden BaseAgentEvent in die Nachrichtenzählung einbezogen. Andernfalls werden nur BaseChatMessage einbezogen. Standardmäßig False.

component_config_schema#

alias von MaxMessageTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.MaxMessageTermination'#

Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() MaxMessageTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: MaxMessageTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class TextMentionTermination(text: str, sources: Sequence[str] | None = None)[source]#

Bases: TerminationCondition, Component[TextMentionTerminationConfig]

Beendet die Konversation, wenn ein bestimmter Text erwähnt wird.

Parameter:
  • text – Der zu suchende Text in den Nachrichten.

  • sources – Prüfen Sie nur Nachrichten von den angegebenen Agenten auf den zu suchenden Text.

component_config_schema#

alias von TextMentionTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.TextMentionTermination'#

Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() TextMentionTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: TextMentionTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class StopMessageTermination[source]#

Bases: TerminationCondition, Component[StopMessageTerminationConfig]

Beendet die Konversation, wenn eine StopMessage empfangen wird.

component_config_schema#

alias von StopMessageTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.StopMessageTermination'#

Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() StopMessageTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: StopMessageTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class TokenUsageTermination(max_total_token: int | None = None, max_prompt_token: int | None = None, max_completion_token: int | None = None)[source]#

Bases: TerminationCondition, Component[TokenUsageTerminationConfig]

Beendet die Konversation, wenn ein Token-Nutzungslimit erreicht wird.

Parameter:
  • max_total_token – Die maximal zulässige Gesamtzahl von Tokens in der Konversation.

  • max_prompt_token – Die maximal zulässige Anzahl von Prompt-Tokens in der Konversation.

  • max_completion_token – Die maximal zulässige Anzahl von Completion-Tokens in der Konversation.

Löst aus:

ValueError – Wenn keiner der Parameter max_total_token, max_prompt_token oder max_completion_token angegeben ist.

component_config_schema#

alias von TokenUsageTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.TokenUsageTermination'#

Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() TokenUsageTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: TokenUsageTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class HandoffTermination(target: str)[source]#

Bases: TerminationCondition, Component[HandoffTerminationConfig]

Beendet die Konversation, wenn eine HandoffMessage mit dem angegebenen Ziel empfangen wird.

Parameter:

target (str) – Das Ziel der Handoff-Nachricht.

component_config_schema#

alias von HandoffTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.HandoffTermination'#

Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() HandoffTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: HandoffTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class TimeoutTermination(timeout_seconds: float)[source]#

Bases: TerminationCondition, Component[TimeoutTerminationConfig]

Beendet die Konversation nach Ablauf einer bestimmten Dauer.

Parameter:

timeout_seconds – Die maximale Dauer in Sekunden, bevor die Konversation beendet wird.

component_config_schema#

alias von TimeoutTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.TimeoutTermination'#

Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() TimeoutTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: TimeoutTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class ExternalTermination[source]#

Bases: TerminationCondition, Component[ExternalTerminationConfig]

Eine Abbruchbedingung, die extern durch Aufruf der set() Methode gesteuert wird.

Beispiel

from autogen_agentchat.conditions import ExternalTermination

termination = ExternalTermination()

# Run the team in an asyncio task.
...

# Set the termination condition externally
termination.set()
component_config_schema#

alias of ExternalTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.ExternalTermination'#

Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

set() None[source]#

Setzt die Abbruchbedingung auf "abgebrochen".

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() ExternalTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: ExternalTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class SourceMatchTermination(sources: List[str])[source]#

Bases: TerminationCondition, Component[SourceMatchTerminationConfig]

Beendet die Konversation, nachdem eine bestimmte Quelle geantwortet hat.

Parameter:

sources (List[str]) – Liste der Quellennamen, nach denen die Konversation beendet werden soll.

Löst aus:

TerminatedException – Wenn die Abbruchbedingung bereits erreicht wurde.

component_config_schema#

alias of SourceMatchTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.SourceMatchTermination'#

Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() SourceMatchTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: SourceMatchTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class TextMessageTermination(source: str | None = None)[source]#

Bases: TerminationCondition, Component[TextMessageTerminationConfig]

Beendet die Konversation, wenn eine TextMessage empfangen wird.

Diese Abbruchbedingung prüft auf TextMessage-Instanzen in der Nachrichtenfolge. Wenn eine TextMessage gefunden wird, wird die Konversation beendet, wenn entweder: - Keine Quelle angegeben wurde (endet bei jeder TextMessage) - Die Nachrichtenquelle mit der angegebenen Quelle übereinstimmt

Parameter:

source (str | None, optional) – Der Quellname, der mit eingehenden Nachrichten verglichen werden soll. Wenn None, wird jede Quelle abgeglichen. Standardwert ist None.

component_config_schema#

alias of TextMessageTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.TextMessageTermination'#

Überschreibe den Anbieter-String für die Komponente. Dies sollte verwendet werden, um zu verhindern, dass interne Modulnamen Teil des Modulnamens werden.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() TextMessageTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: TextMessageTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class FunctionCallTermination(function_name: str)[source]#

Bases: TerminationCondition, Component[FunctionCallTerminationConfig]

Beendet die Konversation, wenn ein FunctionExecutionResult mit einem bestimmten Namen empfangen wurde.

Parameter:

function_name (str) – Der Name der Funktion, nach der in den Nachrichten gesucht werden soll.

Löst aus:

TerminatedException – Wenn die Abbruchbedingung bereits erreicht wurde.

component_config_schema#

alias of FunctionCallTerminationConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.conditions.FunctionCallTermination'#

Das Schema für die Komponentenkonfiguration.

property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.

_to_config() FunctionCallTerminationConfig[source]#

Gib die Konfiguration aus, die erforderlich wäre, um eine neue Instanz einer Komponente zu erstellen, die der Konfiguration dieser Instanz entspricht.

Gibt zurück:

T – Die Konfiguration der Komponente.

classmethod _from_config(config: FunctionCallTerminationConfig) Self[source]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class FunctionalTermination(func: Callable[[Sequence[BaseAgentEvent | BaseChatMessage]], bool] | Callable[[Sequence[BaseAgentEvent | BaseChatMessage]], Awaitable[bool]])[source]#

Bases: TerminationCondition

Beendet die Konversation, wenn eine funktionale Bedingung erfüllt ist.

Parameter:

func (Callable[[Sequence[BaseAgentEvent | BaseChatMessage]], bool] | Callable[[Sequence[BaseAgentEvent | BaseChatMessage]], Awaitable[bool]]) – Eine Funktion, die eine Sequenz von Nachrichten entgegennimmt und True zurückgibt, wenn die Abbruchbedingung erfüllt ist, andernfalls False. Die Funktion kann eine aufrufbare oder eine asynchrone aufrufbare Funktion sein.

Beispiel

import asyncio
from typing import Sequence

from autogen_agentchat.conditions import FunctionalTermination
from autogen_agentchat.messages import BaseAgentEvent, BaseChatMessage, StopMessage


def expression(messages: Sequence[BaseAgentEvent | BaseChatMessage]) -> bool:
    # Check if the last message is a stop message
    return isinstance(messages[-1], StopMessage)


termination = FunctionalTermination(expression)


async def run() -> None:
    messages = [
        StopMessage(source="agent1", content="Stop"),
    ]
    result = await termination(messages)
    print(result)


asyncio.run(run())
StopMessage(source="FunctionalTermination", content="Functional termination condition met")
property terminated: bool#

Prüft, ob die Abbruchbedingung erreicht wurde

async reset() None[source]#

Setzt die Abbruchbedingung zurück.