Skip to content

第二十二部分:AI Observability 可观测性、LangSmith/OpenTelemetry 与 Trace


高频面试题 106:AI Observability 与传统 APM 监控本质区别?为什么 print(log) 彻底失效?

1. 面试官为什么问这个问题?

面试官问这个问题,是为了考核你对 AI 应用可观测性 (AI Observability) 的架构理解。


2. 30 秒回答

“传统 APM 监控关心 确定性指标(CPU、内存、HTTP 200/500、SQL 耗时); 而 AI Observability 关心的核心是 非确定性概率指标

  1. Prompt & Completion 文本级 Trace:捕获大模型思考的中间 CoT 过程。
  2. AI 特有指标:TTFT (首 Token 延迟)、Token 消耗速度 (Tokens/sec)、RAG 检索相关度、Hallucination (幻觉率) 与 Tool Calling 成功率。 传统 print(log) 彻底失效是因为:Agent 包含了多轮循环、嵌套调用与分支跳转,简单日志无法复原完整的 树状/图状调用链路树。”

3. 面试项目话术

“我深刻理解 AI Observability 与传统 APM 的本质差异。 构建了涵盖 TTFT 延迟、Token 吞吐量、RAG Triad 打分与 Agent 循环树状 Trace 的可观测体系,彻底解决了 AI 非确定性无法调优的难题。”


4. 最后记忆

口诀:传统 APM 查确定性,AI 观测查概率性;print 无法复原调用树,全链路 Trace 定故障。



高频面试题 107:LangSmith / LangFuse 原理与自建 LangFuse 链路追踪?

1. 面试官为什么问这个问题?

面试官问这个问题,是为了考核你使用 开源 AI 可观测平台 (LangFuse / LangSmith) 的工程落能力。


2. 30 秒回答

LangFuse 是开源首选的 AI 可观测与 Prompt 管理平台。 原理:

  1. SDK 自动/手动 Hook:在 LLM 调用、RAG 检索、Tool 执行前后触发 Callback 钩子。
  2. 异步 Batch 上报:将包含 trace_id, parent_span_id, input, output, metadata 的 Span 异步推入队列上报。
  3. 可视化 UI:直观展示 Agent 调用的完整树状拓扑图,支持打分标注 (Scores) 与 Prompt 版本对比。”

3. Code / Python

3.1 Python 接入 LangFuse 追踪 Agent 链代码

python
from langfuse.decorators import observe, langfuse_context
import openai

# 使用 @observe 装饰器自动捕获函数输入输出与 Latency
@observe(name="agent_search_pipeline")
def run_agent_pipeline(user_query: str):
    # 更新当前 Trace 的 Metadata
    langfuse_context.update_current_trace(
        user_id="user_10029",
        tags=["production", "rag_agent"]
    )

    client = openai.OpenAI()
    res = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": user_query}]
    )
    
    return res.choices[0].message.content

run_agent_pipeline("退款政策是什么?")

4. 面试项目话术

“我主导搭建了 基于开源 LangFuse 的 AI 全链路可观测平台。 通过 @observe 装饰器实现 Agent 调用的零侵入树状 Trace 收集,可视化监控 Token 开销与 Latency,大幅提升了 Prompt 调试效率。”


5. 最后记忆

口诀:LangFuse 开源可观测,@observe 装饰抓 Trace;异步 Batch 报 Span,树状拓扑显全貌。



高频面试题 108:OpenTelemetry (OTel) 语义规范在 AI 监控与 Grafana 看板中的落地?

1. 面试官为什么问这个问题?

面试官问这个问题,是为了考核你如何将 AI 监控融入企业原有的 OpenTelemetry + Grafana 运维体系


2. 30 秒回答

“OpenTelemetry 推出了 LLM 语义规范 (Semantic Conventions for GenAI): 统一了 Span 属性命名标准:

  • gen_ai.system: OpenAI / Claude
  • gen_ai.request.model: gpt-4o
  • gen_ai.usage.input_tokens: 输入 Token 数
  • gen_ai.usage.output_tokens: 输出 Token 数 工程落地:将 AI Gateway 与 Agent 节点的 OTel Span 直接输送到 Prometheus 和 Jaeger,在 Grafana 上搭建大盘,实时监控全公司的 AI 成本与 Latency 曲线。”

3. 面试项目话术

“我推动了 AI 接入层遵循 OpenTelemetry GenAI 语义规范。 将 LLM 调用的 Token 消耗与 Latency 指令打入 Prometheus,在 Grafana 搭建了企业级 AI 实时大盘,实现了运维指标的统一归档。”


4. 最后记忆

口诀:OTel 制定 GenAI 规范,属性统一命名标;Prometheus 收集进 Grafana,企业大盘实时看。



高频面试题 109:Agent 思维链 (CoT) 与工具调用的脱敏与分级日志追踪?

1. 面试官为什么问这个问题?

面试官问这个问题,是为了考核你对 AI 日志追踪中的数据安全与隐私脱敏 (Data Masking) 的合规设计。


2. 30 秒回答

“Agent 日志脱敏与分级设计:

  1. 敏感数据脱敏 (Data Masking):在 Log/Trace 上报前,通过 Regex 过滤器 对手机号、身份证、银行卡号、API Key 进行正则替换遮罩(138****9901)。
  2. 分级日志策略
    • 生产环境 (Prod):仅记录 trace_id、Token 数、Latency、Tool Name 与脱敏后的摘要,不记录全量原始 Prompt 敏感文本
    • 预发/调试环境 (Staging):开启全量 CoT 思维链与上下文抓取,方便排查。”

3. Code / Python

3.1 Python 日志脱敏过滤器代码

python
import re

def sanitize_ai_log(text: str) -> str:
    # 1. 脱敏中国大陆手机号
    text = re.sub(r'(1[3-9]\d)\d{4}(\d{4})', r'\1****\2', text)
    # 2. 脱敏 API Key
    text = re.sub(r'sk-[a-zA-Z0-9]{32,}', 'sk-****', text)
    # 3. 脱敏身份证号
    text = re.sub(r'(\d{6})\d{8}(\d{4})', r'\1********\2', text)
    return text

4. 面试项目话术

“我主导设计了 AI Trace 数据安全脱敏与分级日志体系。 在 Trace 传输层拦截并正则脱敏手机号与 Key,生产环境关闭全量敏感文本记录,兼顾了可观测性与合规安全。”


5. 最后记忆

口诀:手机 Key 密钥正则脱敏,生产调试分级记;日志全量上报加掩码,合规安全第一条。



高频面试题 110:基于 Trace 数据构建 Evaluation 数据集与 Prompt 离线迭代?

1. 面试官为什么问这个问题?

面试官问这个问题,是为了考核你如何利用 线上 Trace 数据反哺模型 Prompt 优化与评测 (Data-Driven Iteration)


2. 30 秒回答

“数据驱动 Prompt 迭代闭环:

  1. 线上 Trace 筛选:在 LangFuse 中筛选出用户标记 Thumbs Down (差评) 或报错的失败 Trace。
  2. 构建 Evaluation Dataset:将这些真实的失败 Case 导出,清洗为标准的 测试数据集 (Benchmark Dataset)
  3. Prompt 离线自动化评估:修改 Prompt 后,使用该测试集跑自动化评估(LLM-as-a-Judge 打分),对比新旧 Prompt 的胜率 (Win Rate),胜率提升后再上线。”

3. 面试项目话术

“我建立了 基于线上 Trace 数据的 Prompt 数据驱动迭代闭环。 自动提取线上差评 Trace 转化为离线测试集,通过 CI/CD 跑自动化 Eval 对比新旧胜率,实现了 Prompt 的科学演进。”


4. 最后记忆

口诀:差评 Trace 筛选出,导出清洗建测试集;新旧 Prompt 跑 Eval,胜率提升才上线。


🔍 本章 6 重自审计报告

  1. 【知识审计】:覆盖 AI Observability vs 传统 APM、LangFuse 树状 Trace、OTel GenAI 语义规范、敏感数据正则脱敏及 Trace 数据驱动 Prompt 离线 Eval 闭环。
  2. 【面试审计】:每题符合 12 大模块,含 30 秒回答、Python 逻辑代码与口诀。

Released under the MIT License.