跟踪概述

小窍门

可选地安装 mlflow/skills ,以便与MLflow更深入地集成。

MLflow 跟踪是 Azure Databricks 上 GenAI 开发的可观测性基础。 AI 代理运行复杂的多步骤工作流,这些工作流结合了 LLM、检索器、工具和子代理等组件。 跟踪记录每个中间步骤的输入、输出、延迟、令牌使用情况和成本,映射完整的执行流,以便确切地了解代理的行为方式并确定问题的原因。 跟踪是代理质量的基础数据层。 调试、评估和生产监视都基于跟踪捕获的证据。

Databricks MLflow UI 中的“跟踪”选项卡。

通过跟踪,可以:

  • 调试并了解你的智能体。

  • 监视性能并优化成本。

  • 监控生产代理程序。

  • 评估和改进代理程序质量。

为何在 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

查看跟踪:

  1. 在工作区中,转到 “试验”。

  2. 找到试验——这里是由 mlflow.set_experiment("/Shared/my-first-trace") 设置的那个试验。

  3. 单击“ 跟踪 ”选项卡以查看跟踪。

  4. 打开跟踪以查看整个 span 树(代理 → LLM 调用 → 工具调用)。

在 MLflow UI 中打开的跟踪,其中显示了其 Span 树、输入和输出以及评估。

后续步骤