Skip to content

ClientTool

autogen.beta.tools.final.client_tool.ClientTool #

ClientTool(schema)

Bases: Tool

Source code in autogen/beta/tools/final/client_tool.py
def __init__(self, schema: dict[str, Any]) -> None:
    self.schema = FunctionToolSchema.from_dict(schema)
    self.name = self.schema.function.name

schema instance-attribute #

schema = from_dict(schema)

name instance-attribute #

name = name

schemas async #

schemas(context)
Source code in autogen/beta/tools/final/client_tool.py
async def schemas(self, context: "Context") -> list[FunctionToolSchema]:
    return [self.schema]

register #

register(stack, context, *, middleware=())
Source code in autogen/beta/tools/final/client_tool.py
def register(
    self,
    stack: "ExitStack",
    context: "Context",
    *,
    middleware: Iterable["BaseMiddleware"] = (),
) -> None:
    execution: ToolExecution = self
    for mw in middleware:
        execution = partial(mw.on_tool_execution, execution)

    async def execute(event: "ToolCallEvent", context: "Context") -> None:
        result = await execution(event, context)
        await context.send(result)

    stack.enter_context(
        context.stream.where(ToolCallEvent.name == self.schema.function.name).sub_scope(execute),
    )

set_provider #

set_provider(provider)
Source code in autogen/beta/tools/tool.py
def set_provider(self, provider: Provider) -> None:
    pass