可观测正文要按环境分级放开

**观测平台默认只记元数据(模型名、token、费用、延迟、成败、工具调用链、workflow 类型与状态),正文(用户输入、prompt、模型输出、工具参数与结果)默认不上报;要放开也只按环境分级放开,不要为了调试把生产全量打开。**

为什么不直接全开

blast radius(隐私影响半径)太大:一次打开,生产用户的原文与模型输出全部进入第三方平台。隐私是默认值问题,不是事后过滤问题。

分级方案

  • development:记录脱敏 + 截断后的 Input/Output。
  • production:默认关闭;只对失败请求或极低比例请求采样。
  • Prompt、正文、输出都设最大长度上限。
  • 上报前移除邮箱、Token、Cookie、URL 参数等可能的个人数据。
  • 评测(eval)用人工准备的数据集,不依赖生产原文。

副作用:本地调试看不到正文,所以要留开关

脱敏逻辑若写死,本地调 prompt 时平台上只能看到「调了几次模型、用了哪些工具、花了多少 token」,看不到模型到底说了什么——而这恰恰是调 prompt 最想看的。

⇒ 正确形态是一个开关:本地可关、线上强制不可关。既不是全局关掉脱敏,也不是把逻辑写死。

分层:采集标准 vs 展示平台

  • OpenTelemetry:埋点与运输标准,负责收集 Trace(调用链)/ Metric / Log,并记录模型调用与工具执行之间的父子关系(Span)。
  • Langfuse:AI 可观测平台,负责展示与分析模型请求、Tool Call、Token、成本与错误,底层通过 OTel Span 接入。

所以「平台上能不能看到正文」由自己的上报代码决定,不是平台能力问题;排查时先看上报层,而不是怀疑平台。

相关