Source code for autogen_agentchat.tools._team

from autogen_core import Component, ComponentModel
from pydantic import BaseModel
from typing_extensions import Self

from autogen_agentchat.teams import BaseGroupChat

from ._task_runner_tool import TaskRunnerTool


class TeamToolConfig(BaseModel):
    """Configuration for the TeamTool."""

    name: str
    description: str
    team: ComponentModel


[docs] class TeamTool(TaskRunnerTool, Component[TeamToolConfig]): """Tool that can be used to run a task. The tool returns the result of the task execution as a :class:`~autogen_agentchat.base.TaskResult` object. Args: team (BaseGroupChat): The team to be used for running the task. name (str): The name of the tool. description (str): The description of the tool. """ component_config_schema = TeamToolConfig component_provider_override = "autogen_agentchat.tools.TeamTool" def __init__(self, team: BaseGroupChat, name: str, description: str) -> None: self._team = team super().__init__(team, name, description)
[docs] def _to_config(self) -> TeamToolConfig: return TeamToolConfig( name=self._name, description=self._description, team=self._team.dump_component(), )
[docs] @classmethod def _from_config(cls, config: TeamToolConfig) -> Self: return cls(BaseGroupChat.load_component(config.team), config.name, config.description)