跳到主要内容

299 篇博文 含有标签「observability」

查看所有标签

AI 事故复盘:当「模型导致的」成为根本原因

· 阅读需 11 分钟
Tian Pan
Software Engineer

一家航空公司的客服 AI 告诉一位旅客,他可以先购买全价机票,事后再申请丧亲优惠折扣。旅客信以为真,飞行后提交了申请,却遭到公司拒绝。仲裁庭最终判决公司须赔偿 650 美元——因为法律上并无区分人类员工与聊天机器人所给建议的规定。那个聊天机器人并未崩溃,没有任何告警触发,p99 延迟也未见异常。系统在「正常运行」。

这正是 AI 事故的典型特征:应用程序并未报错——它成功地、自信地、大规模地生成了错误输出。 而当你坐下来撰写事后分析报告时,经典的工具箱便彻底失灵了。

真正衡量AI产品用户满意度的行为信号

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数AI产品团队上线一个点赞/点踩组件,就称之为满意度度量系统。他们确实在度量某些东西——只是那不是满意度。

一个因为函数签名错误而对Copilot建议点踩的开发者,和一个因为建议虽然优秀但当前不适用而点踩的开发者,产生的是完全相同的信号。与此同时,那个悄悄重新生成了四次最终放弃的开发者,根本没有产生任何显式信号。而那个缺失的信号,比评分组件捕获的任何东西都更能预测用户流失。

用户在使用AI产品时留下的隐式行为记录,比他们自愿输入或点击的任何内容都更丰富、更真实、更可操作。本文介绍该收集哪些信号、为何这些信号优于显式反馈,以及防止AI专项遥测污染通用产品分析的埋点方案。

AI 系统的数据血缘:从数据源到响应的全链路追踪

· 阅读需 12 分钟
Tian Pan
Software Engineer

某用户提交了一个支持工单:"你们的 AI 助手告诉我合同续签截止日期是 3 月 15 日,实际上是 2 月 28 日,我们因此错过了截止日期。"你调出日志,响应已生成,模型没有报错,所有指标都是绿色。但你根本不知道它检索了哪份文档、模型读取了什么内容,也不知道那个日期究竟来自上下文还是完全被幻觉出来的。

这就是数据血缘的缺失。这不是监控问题,而是从一开始就埋下的架构问题。

为什么你的 LLM 告警总是迟到两周

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数团队发现其 LLM 性能下降通常是在两周后,当时有人在 Slack 上发消息问:“嘿,有人注意到最近 AI 的输出似乎不太对劲吗?”到那时,损害已经造成:用户已经形成了负面印象,支持工单不断累积,而最初推动该功能的业务负责人也正在悄悄失去信心。

令人沮丧的是,你的基础设施在这段时间内一直非常健康。HTTP 200 状态码、180 毫秒的 p50 延迟、每次请求 0.04 美元的成本——仪表盘上的一切都显示为绿色。模型只是变得更安静、更模糊、更简短且更犹豫,而这些表现是基础设施监控无法察觉的。

这不是通过增加 Datadog 仪表盘就能弥补的监控漏洞。它需要一套完全不同类别的指标。

复合 AI 系统中的流水线归因:在薄弱环节找到你之前先找到它

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的检索精度提升了。重排分数改善了。生成器的忠实度指标比上个季度更好。然而用户却在抱怨系统越来越差。

这是生产级 AI 工程中最令人困惑的故障模式之一,而且发生频率远超团队预期。当你构建一个复合 AI 系统——检索结果送入重排器,重排器送入生成器,生成器再送入验证器——你就继承了一个根本性的归因问题。端到端质量是唯一真正重要的指标,却也是最难付诸行动的。你无法修复"系统变差了"。你需要修复某个特定组件。而在一个四阶段流水线中,这件事出乎意料地困难。

提示缓存命中率:你的成本仪表盘缺失的生产指标

· 阅读需 11 分钟
Tian Pan
Software Engineer

当你的团队第一次启用提示缓存时,感觉就像凭空得到了钱。几小时之内,token成本下降了40–60%,延迟也随之缩短。工程师们欢欣鼓舞,然后继续前行。三个月后,有人注意到成本悄悄地爬回去了。从72%起步的缓存命中率现在只剩18%。没有人故意破坏它,没有人注意到。

这是生产LLM部署中最常见的轨迹:缓存只被启用一次,从不被监控,随着代码库的演进而悄然退化。缓存命中率是LLM技术栈中最具影响力的成本杠杆,但大多数团队把它当作一次性的设置任务,而非生产指标。

你的 Prompt 是一笔没有类型系统的负债

· 阅读需 11 分钟
Tian Pan
Software Engineer

三个词差点毁掉一个生产功能。一个团队在例行的文案优化中,向一个面向客户的 prompt 添加了"请简洁回答"。四小时内,结构化输出错误率急剧攀升,下游解析崩溃,创收工作流陷入停滞。修复方案很简单——回退变更。噩梦在于他们根本不知道是哪次变更导致了问题,因为这个 prompt 以硬编码字符串常量的形式存在,没有版本历史,没有测试,也没有回滚机制。这个事故本可以通过大多数团队至今仍未构建的基础设施来预防。

Prompt 现在是你系统中最重要、却治理最薄弱的代码。

当你的 AI 功能过时:生产环境中的知识切断与时间溯源

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 AI 功能在第三季度上线了。评估结果看起来不错。用户很满意。六个月后,满意度评分下降了 18 分,但你的仪表盘依然显示 99.9% 的可用性和低于 200 毫秒的延迟。没有任何地方看起来坏了。从传统意义上讲,也没有任何地方真的坏了。模型在响应,基础设施很健康。只是这个功能在悄无声息地出错。

这就是生产环境 AI 系统中“时间衰减”(temporal decay)的样子。它不会通过报错来提醒你。它以模型所知与现实世界现状之间的差距形式不断累积——等到你的支持队列反映出这一点时,损害已经持续数月之久。

AI功能维护悬崖:为何你的AI功能老化速度超乎想象

· 阅读需 10 分钟
Tian Pan
Software Engineer

你发布了一个AI功能,用户喜爱它,然后三个月后,支持收件箱里塞满了困惑的投诉。你的基础设施没有任何改动。代码一模一样。但这个功能悄无声息地变差了。

这就是AI功能维护悬崖:累积的无声退化变成可见故障的那一刻。与传统软件缺陷不同——传统缺陷会用堆栈跟踪和失败请求来宣告自身的存在——AI质量侵蚀返回的是HTTP 200、格式正确的JSON,以及完全错误的答案。你的监控面板是绿色的。你的功能已经坏掉了。

一项涵盖四个行业32个数据集的跨机构研究发现,91%的机器学习模型会在没有主动干预的情况下随时间退化。这不是尾部风险——这是你发布并撒手不管的每一个AI功能的预期结果。

你从未闭合的反馈回路:将用户行为转化为 AI 真值

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数构建 AI 产品的团队会花费数周时间设计评分组件、星级点击、点赞/点踩按钮。然而六个月后,他们查看数据时发现响应率仅为 2% —— 数据偏向于极端体验,被那些带有强烈偏好的人主导,而且在区分 7/10 和 9/10 的输出方面几乎毫无用处。

与此同时,每一个用户会话都在产生源源不断的真实、明确的行为信号。接受代码建议并继续操作的用户是满意的。立即按下 Ctrl+Z 的用户则不满意。连续四次重新组织问题的用户正在告诉你一些显式评分永远无法捕捉到的信息:前三次回答都失败了。无论你是否收集,这些信号都存在。问题在于你是否正在闭合这个反馈回路。

为何"修改提示词"是根因谬误:为 AI 系统打造无责事后复盘

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 LLM 功能开始返回胡言乱语。值班工程师呼叫 ML 团队。他们看了看输出,和提示词本应产生的结果对比了一下,不到一小时就关闭了工单:"提示词有问题——已调整并重新部署。"事件关闭,事后复盘完成,行动项:改进提示词工程流程。

两周后,同类故障再次发生。不同的提示词,不同的功能——但是同样隐性的根因。

"修提示词"的反射动作,是 AI 工程领域版本的"甩锅给最后一个碰过这个文件的开发者"。它给事后复盘一个干净的结局,却无需任何人真正理解到底是什么出了问题。而与传统软件不同——那里这种反射动作只是懒散——在 AI 系统中,它在结构上是危险的:因为非确定性系统的失败方式,是提示词修改无法解决的。

长程智能体的航位推算:无需中断即可掌握智能体运行状态

· 阅读需 13 分钟
Tian Pan
Software Engineer

在 GPS 出现之前,水手们使用推算定位法(dead reckoning):取你最后一个确认的位置,记录你的速度和航向,然后向前推算。这种方法一直有效,直到累积的误差复合成不可逆转的后果——你没预料到的礁石。

!["https://opengraph-image.blockeden.xyz/api/og-tianpan-co?title=%E9%95%BF%E6%97%B6%E9%97%B4%E8%BF%90%E8%A1%8C%20Agent%20%E7%9A%84%E6%8E%A8%E7%AE%97%E5%AE%9A%E4%BD%8D%E6%B3%95%EF%BC%9A%E6%97%A0%E9%9C%80%E5%81%9C%E6%AD%A2%E5%8D%B3%E5%8F%AF%E4%BA%86%E8%A7%A3%20Agent%20%E7%9A%84%E4%BD%8D%E7%BD%AE"]

长时间运行的 AI Agent 正面临着完全相同的问题。当一个 Agent 花费两个小时协调 API 调用、编写文档并执行多步骤计划时,运行它的人通常并不比没有仪器的水手拥有更好的能见度。Agent 要么完成了,要么没完成。失败模式并不是崩溃——而是看似在工作却静默循环并烧掉 30 美元 token 的情况,或者是 Agent “成功”完成了错误的任务,因为它的世界模型在执行一小时后发生了偏移。

生产数据让这一点变得具体:据记录,未被发现的循环 Agent 在人工干预前曾重复相同的工具调用 58 次。按照前沿模型的费率,一个失控运行两小时的 Agent 在被察觉之前会耗费 15–40 美元。而最严重的失败并不是报错退出的那些——而是那 12–18% “成功”运行却返回看似合理实则错误答案的情况。