Skip to content

BuiltinToolResultEvent

autogen.beta.events.tool_events.BuiltinToolResultEvent #

BuiltinToolResultEvent(*args, **kwargs)

Bases: ToolResultEvent

Represents a successful builtin tool execution result.

Source code in autogen/beta/events/base.py
def __init__(self, *args: Any, **kwargs: Any) -> None:
    # MRO walk: map positional args and collect defaults.
    positional_names: list[str] = []
    defaults: dict[str, Any] = {}
    seen: set[str] = set()

    for klass in reversed(type(self).__mro__):
        for name, f in getattr(klass, "_event_fields_", {}).items():
            if name not in seen:
                if not f.kw_only:
                    positional_names.append(name)
                if name not in kwargs:
                    default = f.get_default()
                    if default is not Ellipsis:
                        defaults[name] = default
            seen.add(name)

    if args:
        if len(args) > len(positional_names):
            raise TypeError(
                f"{type(self).__name__}() takes {len(positional_names)} "
                f"positional argument(s) but {len(args)} were given"
            )
        for name, value in zip(positional_names, args):
            if name in kwargs:
                raise TypeError(f"{type(self).__name__}() got multiple values for argument '{name}'")
            kwargs[name] = value
            defaults.pop(name, None)

    # Apply defaults first, then user-provided kwargs so that
    # property setters (e.g. content -> _content) aren't overwritten
    # by a field default applied afterwards.
    for key, value in defaults.items():
        setattr(self, key, value)
    for key, value in kwargs.items():
        setattr(self, key, value)

parent_id instance-attribute #

parent_id

name instance-attribute #

name

result instance-attribute #

result

content property writable #

content

from_call classmethod #

from_call(call, result)
Source code in autogen/beta/events/tool_events.py
@classmethod
def from_call(cls, call: ToolCallEvent, result: ResultT) -> "ToolResultEvent[ResultT]":
    return cls(
        parent_id=call.id,
        name=call.name,
        result=ToolResult.ensure_result(result),
    )

to_api #

to_api()
Source code in autogen/beta/events/tool_events.py
def to_api(self) -> dict[str, Any]:
    return {
        "role": "tool",
        "tool_call_id": self.parent_id,
        "content": self.content,
    }