为什么必须埋点
"感觉最近效果变差了"是无法行动的。AI 功能的埋点要能回答四个问题:
谁在用、用得怎么样、错在哪里、花了多少钱。
该记录的字段
基础
- 时间戳、会话/请求 id、用户或租户 id(注意合规:能不用个人标识就不用);
- 功能入口(哪个页面、哪个按钮)、设备与语言。
调用
- 模型与版本、提示词版本、参数(温度、上限);
- 输入长度、输出长度、耗时(首字延迟与总时长分开记);
- 是否命中缓存、是否走了降级、用了哪条通道。
质量
- 校验是否通过、失败原因分类(格式错/字段缺/业务规则不符);
- 用户反馈(点赞/点踩/改写/放弃);
- 是否触发人工介入。
成本
- 输入/输出 token 数或调用次数,折算成金额;
- 按功能、按租户聚合,能看出"谁在烧钱"。
三张必备看板
- 健康度:成功率、校验失败率、降级率、P95 延迟;
- 质量:负反馈率、人工介入率、按失败类型分布;
- 成本:每日花费、单次调用均价、花费 Top 功能与 Top 租户。
常见做法上的坑
- 只记成功:失败与超时才是最有信息量的;
- 不记版本:出问题时无法归因到具体模型/提示词版本;
- 记了不聚合:明细一大堆,却答不出"哪个功能在恶化";
- 把个人敏感信息原样入库:埋点也要按最小必要原则脱敏。
落地顺序
- 先加"请求 id + 版本 + 耗时 + 成败"这四样(改动最小、信息量最大);
- 再加校验失败原因与用户反馈;
- 最后接成本折算与看板;
- 定一个每周复盘动作:看失败类型分布的变化,而不是只看总量。