Files
2026-07-13 13:22:34 +08:00

38 lines
1.0 KiB
Python

import logging
from typing import TYPE_CHECKING, Union
from opentelemetry.sdk.trace import Span
from mlflow.tracing.utils import set_span_chat_tools
from mlflow.types.chat import ChatTool
if TYPE_CHECKING:
from autogen_core.tools import BaseTool, ToolSchema
_logger = logging.getLogger(__name__)
def log_tools(span: Span, tools: list[Union["BaseTool", "ToolSchema"]]):
"""
Log Autogen tool definitions into the passed in span.
Ref: https://microsoft.github.io/autogen/stable/user-guide/core-user-guide/components/tools.html
Args:
span: The span to log the tools into.
tools: A list of Autogen BaseTool.
"""
from autogen_core.tools import BaseTool
try:
tools = [
ChatTool(
type="function",
function=tool.schema if isinstance(tool, BaseTool) else tool,
)
for tool in tools
]
set_span_chat_tools(span, tools)
except Exception:
_logger.debug(f"Failed to log tools to Span {span}.", exc_info=True)