使用 WandB 的 Weave 进行智能体可观测性¶
Weights & Biases (WandB) 的 Weave 提供了一个强大的平台,用于记录和可视化模型调用。通过将 Google ADK 与 Weave 集成,你可以使用 OpenTelemetry (OTEL) 跟踪来跟踪和分析你的智能体的性能和行为。
先决条件¶
-
在 WandB 注册账户。
-
从 WandB Authorize 获取你的 API 密钥。
-
使用所需的 API 密钥配置你的环境:
安装依赖项¶
确保你已安装必要的包:
向 Weave 发送跟踪¶
此示例演示如何配置 OpenTelemetry 以将 Google ADK 跟踪发送到 Weave。
# math_agent/agent.py
import base64
import os
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk import trace as trace_sdk
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
from opentelemetry import trace
from google.adk.agents import LlmAgent
from google.adk.tools import FunctionTool
from dotenv import load_dotenv
load_dotenv()
# 配置 Weave 端点和身份验证
WANDB_BASE_URL = "https://trace.wandb.ai"
PROJECT_ID = "your-entity/your-project" # 例如,"teamid/projectid"
OTEL_EXPORTER_OTLP_ENDPOINT = f"{WANDB_BASE_URL}/otel/v1/traces"
# 设置身份验证
WANDB_API_KEY = os.getenv("WANDB_API_KEY")
AUTH = base64.b64encode(f"api:{WANDB_API_KEY}".encode()).decode()
OTEL_EXPORTER_OTLP_HEADERS = {
"Authorization": f"Basic {AUTH}",
"project_id": PROJECT_ID,
}
# 创建带有端点和头的 OTLP span 导出器
exporter = OTLPSpanExporter(
endpoint=OTEL_EXPORTER_OTLP_ENDPOINT,
headers=OTEL_EXPORTER_OTLP_HEADERS,
)
# 创建跟踪器提供程序并添加导出器
tracer_provider = trace_sdk.TracerProvider()
tracer_provider.add_span_processor(SimpleSpanProcessor(exporter))
# 在导入/使用 ADK 之前设置全局跟踪器提供程序
trace.set_tracer_provider(tracer_provider)
# 定义一个简单的工具进行演示
def calculator(a: float, b: float) -> str:
"""将两个数字相加并返回结果。
Args:
a: 第一个数字
b: 第二个数字
Returns:
a 和 b 的和
"""
return str(a + b)
calculator_tool = FunctionTool(func=calculator)
# 创建一个 LLM 智能体
root_agent = LlmAgent(
name="MathAgent",
model="gemini-2.0-flash-exp",
instruction=(
"你是一个可以做数学的有帮助的助手。"
"当被问到数学问题时,使用计算器工具来解决它。"
),
tools=[calculator_tool],
)
在 Weave 仪表板中查看跟踪¶
一旦智能体运行,其所有跟踪都会记录到 Weave 仪表板 上的相应项目中。
你可以查看你的 ADK 智能体在执行期间进行的调用的时间线 -
注意事项¶
- 环境变量:确保你的环境变量正确设置为 WandB 和 Google API 密钥。
- 项目配置:将
<your-entity>/<your-project>
替换为你实际的 WandB 实体和项目名称。 - 实体名称:你可以通过访问你的 WandB 仪表板 并检查左侧边栏中的团队字段来找到你的实体名称。
- 跟踪器提供程序:在使用任何 ADK 组件之前设置全局跟踪器提供程序对于确保正确的跟踪至关重要。
通过遵循这些步骤,你可以有效地将 Google ADK 与 Weave 集成,实现对 AI 智能体的模型调用、工具调用和推理过程的全面记录和可视化。
资源¶
-
向 Weave 发送 OpenTelemetry 跟踪 - 关于配置 Weave 的 OTEL 的综合指南,包括身份验证和高级配置选项。
-
导航跟踪视图 - 学习如何在 Weave UI 中有效分析和调试你的跟踪,包括理解跟踪层次结构和 span 详细信息。
-
Weave 集成 - 探索其他框架集成,了解 Weave 如何与你的整个 AI 堆栈协同工作。