跟踪 OpenAI 召集

警告

OpenAI Swarm 集成已被弃用,因为库正被新的 OpenAI 代理 SDK 取代。 请考虑迁移到新 SDK 以获取最新功能和支持。

通过自动日志进行 OpenAI 跟踪

MLflow 跟踪OpenAI Swarm 提供了自动跟踪功能,这是 OpenAI 开发的多代理框架。 通过调用 mlflow.openai.autolog 函数为 OpenAI 启用自动跟踪,MLflow 将捕获嵌套跟踪,并在调用 OpenAI SDK 时将其记录到活动的 MLflow 试验中。

import mlflow

mlflow.openai.autolog()

除了对 OpenAI 进行基本的 LLM 调用跟踪外,MLflow 还会捕获召集代理执行的中间步骤,以及该代理进行的所有工具调用。

先决条件

若要将 MLflow 跟踪与 OpenAI Swarm 配合使用,需要安装 MLflow、OpenAI SDK 和 openai-swarm 库。

开发

对于开发环境,请安装带有“Databricks Extras”的完整 MLflow 包,openai以及openai-swarm

pip install --upgrade "mlflow[databricks]>=3.1" openai openai-swarm

完整 mlflow[databricks] 包包括用于 Databricks 的本地开发和试验的所有功能。

生产

对于生产部署,请安装mlflow-tracingopenaiopenai-swarm

pip install --upgrade mlflow-tracing openai openai-swarm

mlflow-tracing 已针对生产用途进行优化。

注释

强烈建议使用 MLflow 3。 请注意,OpenAI 召集本身已被弃用,而改用 OpenAI 代理 SDK。

在运行示例之前,需要配置环境:

对于不使用 Databricks 笔记本的用户:设置 Databricks 环境变量:

export DATABRICKS_HOST="https://your-workspace.cloud.databricks.com"
export DATABRICKS_TOKEN="your-personal-access-token"

对于 Databricks 笔记本中的用户:这些凭据会自动为您设置。

API 密钥:确保已配置 OpenAI API 密钥。 对于生产环境,请使用 马赛克 AI 网关或 Databricks 机密,而不要使用硬编码的值,以便更安全地管理 API 密钥。

export OPENAI_API_KEY="your-openai-api-key"

基本示例

import mlflow
from swarm import Swarm, Agent
import os

# Ensure your OPENAI_API_KEY is set in your environment
# os.environ["OPENAI_API_KEY"] = "your-openai-api-key" # Uncomment and set if not globally configured

# Calling the autolog API will enable trace logging by default.
mlflow.openai.autolog()

# Set up MLflow tracking to Databricks
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/openai-swarm-demo")

# Define a simple multi-agent workflow using OpenAI Swarm
client = Swarm()

def transfer_to_agent_b():
    return agent_b

agent_a = Agent(
    name="Agent A",
    instructions="You are a helpful agent.",
    functions=[transfer_to_agent_b],
)

agent_b = Agent(
    name="Agent B",
    instructions="Only speak in Haikus.",
)

response = client.run(
    agent=agent_a,
    messages=[{"role": "user", "content": "I want to talk to agent B."}],
)

警告

对于生产环境,请使用 马赛克 AI 网关或 Databricks 机密,而不要使用硬编码的值,以便更安全地管理 API 密钥。

禁用自动跟踪

可以通过调用 mlflow.openai.autolog(disable=True)mlflow.autolog(disable=True)调用来全局禁用 OpenAI Swarm 的自动跟踪。

后续步骤