Table of Contents
核心观点
认真做Agent的关键在于可观测性。必须实施埋点和trace追踪机制.
否则你将面临三大盲区:
- 不知道什么地方出了问题 - 缺乏故障定位能力
- 不了解成本开销 - 无法控制费用支出
- 不知道如何迭代优化 - 缺乏改进方向
两个关键技术概念
OpenTelemetry (OTel) - 通用可观测标准
定义: OpenTelemetry是一个厂商中立的开源标准,提供了一套完整的API、SDK和工具,用于生成、收集和导出软件的遥测数据。
核心价值:
- 解决了供应商锁定问题:在OpenTelemetry出现之前,每个监控厂商(如Datadog、New Relic、Dynatrace等)都有自己的数据收集方式,切换工具成本极高
- 提供统一的数据标准:就像应用程序可观测性数据的通用适配器
三大支柱: OpenTelemetry标准化了代码插桩方式,生成三种主要的观测数据类型:
- 链路追踪(Traces) - 请求在系统中的完整路径
- 指标数据(Metrics) - 系统性能和业务指标
- 日志数据(Logs) - 结构化的事件记录
OpenLIT - 专为GenAI设计的可观测工具
定义: OpenLIT是基于OpenTelemetry构建的专业化工具,专门为生成式AI应用提供开箱即用的可观测性解决方案。
核心特性:
- 自动为每个LLM调用创建OpenTelemetry兼容的追踪数据
- 监控工具调用和Agent执行的每个步骤
- 为GenAI应用量身定制的可观测性框架
关系总结: 如果说OpenTelemetry是通用软件的可观测性标准,那么OpenLIT就是专门为GenAI领域设计的可观测性工具。它提供了一种简单、标准化的方式来监控和分析LLM调用的行为。
实践建议
构建可观测的Agent系统时,建议:
- 从设计阶段就考虑可观测性 - 不要等到问题出现才补救
- 选择合适的工具栈 - 对于GenAI应用优先考虑OpenLIT
- 建立完整的监控体系 - 覆盖性能、成本和业务指标
- 定期分析数据并优化 - 让数据驱动Agent的持续改进
视频中的源码
import os
from agno.agent import Agent
from agno.models.openrouter import OpenRouter
from langfuse import get_client,observe
import openlit
os.environ["LANGFUSE_PUBLIC_KEY"] = "pk-lf-648d723f-266b-44a2-8f64-d8637c640e56"
os.environ["LANGFUSE_SECRET_KEY"] = "sk-lf-47059536-2cd5-4498-b41b-97b4cd8769b0"
os.environ["LANGFUSE_HOST"] = "http://localhost:3001"
langfuse = get_client()
openlit.init(tracer=langfuse._otel_tracer, disable_batch=True)
# Create and configure the agent
agent = Agent(
model=OpenRouter(id="deepseek/deepseek-chat-v3-0324"),
# tools=[DuckDuckGoTools()],
markdown=True,
user_id="assss",
session_id="xxxxx",
debug_mode=True,
)
agent.print_response("你好",stream=False)
大家一起来讨论