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
BaseAgentEventin die Nachrichtenzählung einbezogen. Andernfalls werden nurBaseChatMessageeinbezogen. 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.
- 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.
- 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.
- 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.
- class HandoffTermination(target: str)[source]#
Bases:
TerminationCondition,Component[HandoffTerminationConfig]Beendet die Konversation, wenn eine
HandoffMessagemit 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.
- 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.
- 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.
- 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.
- class TextMessageTermination(source: str | None = None)[source]#
Bases:
TerminationCondition,Component[TextMessageTerminationConfig]Beendet die Konversation, wenn eine
TextMessageempfangen 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.
- class FunctionCallTermination(function_name: str)[source]#
Bases:
TerminationCondition,Component[FunctionCallTerminationConfig]Beendet die Konversation, wenn ein
FunctionExecutionResultmit 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.
- class FunctionalTermination(func: Callable[[Sequence[BaseAgentEvent | BaseChatMessage]], bool] | Callable[[Sequence[BaseAgentEvent | BaseChatMessage]], Awaitable[bool]])[source]#
Bases:
TerminationConditionBeendet 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")