警告
OpenAI Swarm 集成已被弃用,因为库正被新的 OpenAI 代理 SDK 取代。 请考虑迁移到新 SDK 以获取最新功能和支持。
MLflow 跟踪 为 OpenAI Swarm 提供了自动跟踪功能,这是 OpenAI 开发的多代理框架。 通过调用 mlflow.openai.autolog 函数为 OpenAI 启用自动跟踪,MLflow 将捕获嵌套跟踪,并在调用 OpenAI SDK 时将其记录到活动的 MLflow 试验中。
import mlflow
mlflow.openai.autolog()
注释
在无服务器计算群集上,不会自动启用 genAI 跟踪框架的自动记录。 必须通过为要跟踪的特定集成调用适当的 mlflow.<library>.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-tracing、openai和openai-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 的自动跟踪。
后续步骤
- 了解跟踪概念 - 了解 MLflow 如何收集和管理多代理跟踪数据
- 调试和观察应用 - 使用跟踪 UI 分析多代理应用程序的行为
- 评估应用的质量 - 为基于代理的应用程序设置质量评估