MLflow 跟踪是 Azure Databricks 上 GenAI 开发的可观测性基础。 AI 代理运行复杂的多步骤工作流,这些工作流结合了 LLM、检索器、工具和子代理等组件。 跟踪记录每个中间步骤的输入、输出、延迟、令牌使用情况和成本,映射完整的执行流,以便确切地了解代理的行为方式并确定问题的原因。 跟踪是代理质量的基础数据层。 调试、评估和生产监视都基于跟踪捕获的证据。
通过跟踪,可以:
调试并了解你的智能体。
监视性能并优化成本。
监控生产代理程序。
评估和改进代理程序质量。
为何在 Azure Databricks 上进行 MLflow 跟踪
- 同样的开源 MLflow,完全托管。 使用标准 MLflow SDK 和 OpenTelemetry——无需运行跟踪服务器,也无需自行维护版本。
- 一个平台,从开发到生产。 相同的跟踪可用于调试、评估和生产监控,并可接入 Lakehouse 的其他部分——AI/BI 仪表板、警报和 Lakeflow 管道。
获取第一个追踪
安装 MLflow 和用于该示例代理的库:
%pip install --upgrade "mlflow[databricks]>=3.1.0" "langgraph" "langchain-openai"
dbutils.library.restartPython()
设置一个 OPENAI_API_KEY 配置,以便代理可以调用模型,从而避免使用外部密钥:
import os
os.environ["OPENAI_API_KEY"] = "your-api-key"
运行此代理程序。 自动记录捕获包含每个步骤的 span 的跟踪:
import mlflow
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
mlflow.langchain.autolog() # LangGraph uses LangChain's autolog
mlflow.set_tracking_uri("databricks")
mlflow.set_experiment("/Shared/my-first-trace")
@tool
def get_weather(city: str):
"""Get weather for a city."""
return f"It might be cloudy in {city}"
agent = create_react_agent(ChatOpenAI(model="gpt-4o-mini"), [get_weather])
agent.invoke({"messages": [("user", "What is the weather in SF?")]})
# Trace appears in the MLflow UI automatically
查看跟踪:
在工作区中,转到 “试验”。
找到试验——这里是由
mlflow.set_experiment("/Shared/my-first-trace")设置的那个试验。单击“ 跟踪 ”选项卡以查看跟踪。
打开跟踪以查看整个 span 树(代理 → LLM 调用 → 工具调用)。
后续步骤
- 观察和查找问题 - 浏览跟踪、查找问题和查询跟踪数据。