Skip to content

使用 Galileo 进行智能体可观测性和评估

Galileo 是一个 AI 评估和可观测性平台,为 AI 应用提供端到端的追踪、评估和监控。Galileo 支持从 ADK 直接导入 OpenTelemetry (OTel) 追踪数据,包括智能体运行、工具调用和模型请求。

有关更多信息,请参阅 Galileo 官方提供的 Google ADK 集成 文档。

前置条件

安装依赖

pip install google-adk openinference-instrumentation-google-adk python-dotenv galileo

或者,使用完整示例中的 requirements.txt

设置环境变量

配置环境变量:

my_agent/.env
# Gemini 环境变量
GOOGLE_GENAI_USE_ENTERPRISE=0
GOOGLE_API_KEY="YOUR_API_KEY"

# Galileo 环境变量
GALILEO_API_KEY="YOUR_API_KEY"
GALILEO_PROJECT="YOUR_PROJECT"
GALILEO_LOG_STREAM="YOUR_LOG_STREAM"

配置 OpenTelemetry(必需){: #configure-opentelemetry-required }

在使用任何 ADK 组件之前,你必须配置 OTLP 导出器并设置全局追踪提供者,以便将 span 发送到 Galileo。

# my_agent/agent.py

from dotenv import load_dotenv

load_dotenv()

# OpenTelemetry 导入
from opentelemetry.sdk import trace as trace_sdk

# Galileo span 处理器(从环境变量自动配置 OTLP 头信息和端点)
from galileo import otel

# OpenInference ADK 插桩
from openinference.instrumentation.google_adk import GoogleADKInstrumentor

# 创建追踪提供者并注册 Galileo span 处理器
tracer_provider = trace_sdk.TracerProvider()
galileo_span_processor = otel.GalileoSpanProcessor()
tracer_provider.add_span_processor(galileo_span_processor)

# 使用 OpenInference 对 Google ADK 进行插桩(捕获输入/输出)
GoogleADKInstrumentor().instrument(tracer_provider=tracer_provider)

示例:追踪 ADK 智能体

在设置好 OTLP 导出器和追踪提供者的代码之后,你可以添加一个简单的当前时间智能体的代码:

# my_agent/agent.py

from google.adk.agents import Agent

def get_current_time(city: str) -> dict:
    """返回指定城市的当前时间。"""
    return {"status": "success", "city": city, "time": "10:30 AM"}


root_agent = Agent(
    model="gemini-flash-latest",
    name="root_agent",
    description="获取指定城市的当前时间。",
    instruction=(
        "你是一个能够提供城市当前时间的助手。"
        "请使用 'get_current_time' 工具来完成此任务。"
    ),
    tools=[get_current_time],
)

使用以下命令运行智能体:

adk run my_agent

然后向它提问:

What time is it in London?
[root_agent]: The current time in London is 10:30 AM.

查看完整的 Google ADK + OpenTelemetry 示例项目 了解完整示例。

在 Galileo 中查看追踪数据

选择你的项目,检查日志流 (Log Stream) 中的追踪和 span 数据。

Galileo Traces

资源