Skip to content
LangSmith 文档版本 跟随上游 源快照 c615e8ea 更新于 2026-10-18

追踪 PydanticAI 应用

LangSmith 可以使用 PydanticAI 内置的 OpenTelemetry instrumentation 捕获其生成的追踪。本指南展示如何自动捕获 PydanticAI 代理的追踪,并将其发送到 LangSmith 进行监控和分析。

安装

安装所需的包:

bash
pip install langsmith pydantic-ai opentelemetry-exporter-otlp
bash
uv add langsmith pydantic-ai opentelemetry-exporter-otlp

INFO

需要 LangSmith Python SDK 版本 langsmith>=0.4.26,以获得最佳的 OpenTelemetry 支持。

设置

1. 配置环境变量

设置你的 API key 和项目名称:

bash
export LANGSMITH_API_KEY=<your_langsmith_api_key>
export LANGSMITH_PROJECT=<your_project_name>
export OPENAI_API_KEY=<your_openai_api_key>

2. 配置 OpenTelemetry 集成

在你的 PydanticAI 应用中,配置 LangSmith OpenTelemetry 集成:

python
from langsmith.integrations.otel import configure
from pydantic_ai import Agent

# Configure LangSmith tracing
configure(project_name="pydantic-ai-demo")

# Instrument all PydanticAI agents
Agent.instrument_all()

NOTE

你无需设置任何 OpenTelemetry 环境变量,也无需手动配置 exporter——configure() 会自动处理一切。

3. 创建并运行你的 PydanticAI 代理

配置完成后,你的 PydanticAI 代理会自动将追踪发送到 LangSmith:

python
from langsmith.integrations.otel import configure
from pydantic_ai import Agent

# Configure LangSmith tracing
configure(project_name="pydantic-ai-demo")

# Instrument all PydanticAI agents
Agent.instrument_all()

# Create and run an agent
agent = Agent('openai:gpt-5.5')
result = agent.run_sync('What is the capital of France?')
print(result.output)
#> Paris

高级用法

自定义元数据和标签

你可以使用 OpenTelemetry span 属性为追踪添加自定义元数据:

python
from opentelemetry import trace
from pydantic_ai import Agent
from langsmith.integrations.otel import configure

configure(project_name="pydantic-ai-metadata")
Agent.instrument_all()

tracer = trace.get_tracer(__name__)

agent = Agent('openai:gpt-5.5')

with tracer.start_as_current_span("pydantic_ai_workflow") as span:
    span.set_attribute("langsmith.metadata.user_id", "user_123")
    span.set_attribute("langsmith.metadata.workflow_type", "question_answering")
    span.set_attribute("langsmith.span.tags", "pydantic-ai,production")

    result = agent.run_sync('Explain quantum computing in simple terms')
    print(result.output)

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。