概述

此示例演示了如何使用 OpenInference 为您的 Agno Agent 添加代理,并将追踪信息发送到 LangSmith。

代码

import os

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
from openinference.instrumentation.agno import AgnoInstrumentor
from opentelemetry import trace as trace_api
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import SimpleSpanProcessor

# 设置 LangSmith 的端点和请求头
endpoint = "https://eu.api.smith.langchain.com/otel/v1/traces"
headers = {
    "x-api-key": os.getenv("LANGSMITH_API_KEY"),
    "Langsmith-Project": os.getenv("LANGSMITH_PROJECT"),
}

# 配置追踪提供程序
tracer_provider = TracerProvider()
tracer_provider.add_span_processor(
    SimpleSpanProcessor(OTLPSpanExporter(endpoint=endpoint, headers=headers))
)
trace_api.set_tracer_provider(tracer_provider=tracer_provider)

# 开始为 agno 添加代理
AgnoInstrumentor().instrument()

# 创建并配置代理
agent = Agent(
    name="Stock Market Agent",
    model=OpenAIChat(id="gpt-4o-mini"),
    tools=[DuckDuckGoTools()],
    markdown=True,
    debug_mode=True,
)

# 使用代理
agent.print_response("What is news on the stock market?")

用法

1

安装依赖项

pip install agno openai openinference-instrumentation-agno opentelemetry-sdk opentelemetry-exporter-otlp
2

设置环境变量

export LANGSMITH_API_KEY=<your-key>
export LANGSMITH_TRACING=true
export LANGSMITH_ENDPOINT=https://eu.api.smith.langchain.com  # or https://api.smith.langchain.com for US
export LANGSMITH_PROJECT=<your-project-name>
3

运行代理

python cookbook/observability/langsmith_via_openinference.py

注意事项

  • 数据区域: 根据您的数据区域选择合适的 LANGSMITH_ENDPOINT