autogen_agentchat.tools#

class AgentTool(agent: BaseChatAgent, return_value_as_last_message: bool = False)[Quelle]#

Bases: TaskRunnerTool, Component[AgentToolConfig]

Tool, das verwendet werden kann, um eine Aufgabe mit einem Agenten auszuführen.

Das Tool gibt das Ergebnis der Aufgabenausführung als TaskResult-Objekt zurück.

Wichtig

Bei Verwendung von AgentTool müssen Sie parallele Tool-Aufrufe in der Konfiguration des Modellclients deaktivieren, um Nebenläufigkeitsprobleme zu vermeiden. Agenten können nicht gleichzeitig ausgeführt werden, da sie einen internen Zustand beibehalten, der mit paralleler Ausführung in Konflikt geraten würde. Setzen Sie beispielsweise parallel_tool_calls=False für OpenAIChatCompletionClient und AzureOpenAIChatCompletionClient.

Parameter:
  • agent (BaseChatAgent) – Der Agent, der zur Ausführung der Aufgabe verwendet wird.

  • return_value_as_last_message (bool) – Ob der Inhalt der letzten Nachricht des Aufgabenergebnisses als Rückgabewert des Tools in return_value_as_string() verwendet werden soll. Wenn auf True gesetzt, wird der Inhalt der letzten Nachricht als String zurückgegeben. Wenn auf False gesetzt, gibt das Tool alle Nachrichten im Aufgabenergebnis als verketteten String zurück, wobei jeder Nachricht eine Quelle vorangestellt ist (z. B. „writer: …“, „assistant: …“).

Beispiel

import asyncio

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.tools import AgentTool
from autogen_agentchat.ui import Console
from autogen_ext.models.openai import OpenAIChatCompletionClient


async def main() -> None:
    model_client = OpenAIChatCompletionClient(model="gpt-4.1")
    writer = AssistantAgent(
        name="writer",
        description="A writer agent for generating text.",
        model_client=model_client,
        system_message="Write well.",
    )
    writer_tool = AgentTool(agent=writer)

    # Create model client with parallel tool calls disabled for the main agent
    main_model_client = OpenAIChatCompletionClient(model="gpt-4.1", parallel_tool_calls=False)
    assistant = AssistantAgent(
        name="assistant",
        model_client=main_model_client,
        tools=[writer_tool],
        system_message="You are a helpful assistant.",
    )
    await Console(assistant.run_stream(task="Write a poem about the sea."))


asyncio.run(main())
component_config_schema#

alias von AgentToolConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.tools.AgentTool'#

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

_to_config() AgentToolConfig[Quelle]#

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: AgentToolConfig) Self[Quelle]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.

class TeamTool(team: BaseGroupChat, name: str, description: str, return_value_as_last_message: bool = False)[Quelle]#

Bases: TaskRunnerTool, Component[TeamToolConfig]

Tool, das verwendet werden kann, um eine Aufgabe auszuführen.

Das Tool gibt das Ergebnis der Aufgabenausführung als TaskResult-Objekt zurück.

Wichtig

Bei Verwendung von TeamTool müssen Sie parallele Tool-Aufrufe in der Konfiguration des Modellclients deaktivieren, um Nebenläufigkeitsprobleme zu vermeiden. Teams können nicht gleichzeitig ausgeführt werden, da sie einen internen Zustand beibehalten, der mit paralleler Ausführung in Konflikt geraten würde. Setzen Sie beispielsweise parallel_tool_calls=False für OpenAIChatCompletionClient und AzureOpenAIChatCompletionClient.

Parameter:
  • team (BaseGroupChat) – Das Team, das zur Ausführung der Aufgabe verwendet wird.

  • name (str) – Der Name des Tools.

  • description (str) – Die Beschreibung des Tools.

  • return_value_as_last_message (bool) – Ob der Inhalt der letzten Nachricht des Aufgabenergebnisses als Rückgabewert des Tools in return_value_as_string() verwendet werden soll. Wenn auf True gesetzt, wird der Inhalt der letzten Nachricht als String zurückgegeben. Wenn auf False gesetzt, gibt das Tool alle Nachrichten im Aufgabenergebnis als verketteten String zurück, wobei jeder Nachricht eine Quelle vorangestellt ist (z. B. „writer: …“, „assistant: …“).

Beispiel

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.conditions import SourceMatchTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.tools import TeamTool
from autogen_agentchat.ui import Console
from autogen_ext.models.openai import OpenAIChatCompletionClient


async def main() -> None:
    # Disable parallel tool calls when using TeamTool
    model_client = OpenAIChatCompletionClient(model="gpt-4.1")

    writer = AssistantAgent(name="writer", model_client=model_client, system_message="You are a helpful assistant.")
    reviewer = AssistantAgent(
        name="reviewer", model_client=model_client, system_message="You are a critical reviewer."
    )
    summarizer = AssistantAgent(
        name="summarizer",
        model_client=model_client,
        system_message="You combine the review and produce a revised response.",
    )
    team = RoundRobinGroupChat(
        [writer, reviewer, summarizer], termination_condition=SourceMatchTermination(sources=["summarizer"])
    )

    # Create a TeamTool that uses the team to run tasks, returning the last message as the result.
    tool = TeamTool(
        team=team,
        name="writing_team",
        description="A tool for writing tasks.",
        return_value_as_last_message=True,
    )

    # Create model client with parallel tool calls disabled for the main agent
    main_model_client = OpenAIChatCompletionClient(model="gpt-4.1", parallel_tool_calls=False)
    main_agent = AssistantAgent(
        name="main_agent",
        model_client=main_model_client,
        system_message="You are a helpful assistant that can use the writing tool.",
        tools=[tool],
    )
    # For handling each events manually.
    # async for message in main_agent.run_stream(
    #     task="Write a short story about a robot learning to love.",
    # ):
    #     print(message)
    # Use Console to display the messages in a more readable format.
    await Console(
        main_agent.run_stream(
            task="Write a short story about a robot learning to love.",
        )
    )


if __name__ == "__main__":
    import asyncio

    asyncio.run(main())
component_config_schema#

alias von TeamToolConfig

component_provider_override: ClassVar[str | None] = 'autogen_agentchat.tools.TeamTool'#

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

_to_config() TeamToolConfig[Quelle]#

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: TeamToolConfig) Self[Quelle]#

Erstelle eine neue Instanz der Komponente aus einem Konfigurationsobjekt.

Parameter:

config (T) – Das Konfigurationsobjekt.

Gibt zurück:

Self – Die neue Instanz der Komponente.