Skip to content
🔗 分享本题
查看我的学习进度 →

23 模块 Q8 教学图:Agent 可观测性和传统微服务可观测性有什么区别?

🧠 图解记忆:传统微服务看请求,Agent 还要看规划、工具、状态和非确定性决策轨迹;点击图片可查看原图。

**核心区别:**
维度传统微服务Agent 可观测性
追踪对象HTTP 请求、数据库查询LLM 调用、工具调用、规划步骤
不确定性确定性逻辑,无幻觉LLM 输出不可预测,有幻觉风险
状态管理无状态或短状态多轮对话、长期记忆、上下文累积
性能指标延迟、QPS、错误率TTFT、Token 速率、循环检测
调试难度日志+链路追踪足够需理解 LLM 推理过程,需 Prompt 可视化
特殊需求标准 OpenTelemetryLLM 原生支持(采样/Hallucination 检测)

Agent 可观测性特殊挑战:

python
# 挑战1:LLM 输出不确定性 → 需要输出质量追踪
outputs = []
for run in runs:
    outputs.append({
        "output": run.output,
        "hallucination_score": detect_hallucination(run.output),
        "toxicity_score": detect_toxicity(run.output),
        "factual_recall": measure_factual_recall(run.output, run.expected)
    })

# 挑战2:上下文累积 → 需追踪上下文膨胀
token_trend = [
    sum(count_tokens(m) for m in run.messages)
    for run in runs
]
# 检测:随任务复杂度增长,上下文是否线性膨胀

# 挑战3:工具调用链路 → 需追踪工具调用树
tool_tree = build_tool_call_tree(run.tool_calls)
# 检测:是否有不必要的工具调用、调用顺序是否最优

面试话术:

"Agent 可观测性比微服务复杂在三点:1)LLM 输出不确定,同一个 Prompt 三次调用结果可能不同,必须追踪输出质量分布;2)上下文会累积,需要监控 Token 膨胀曲线;3)工具调用链路是树状结构,不是线性链路。我用 LangSmith 的 trace 串联所有步骤,每个 span 打上 step_type 和 tool_name 属性,出问题后从根节点一路点下去就能定位。"


📚 参考:OpenTelemetry:LLM 时代的可观测性标准