跳到主要内容

233 篇博文 含有标签「observability」

查看所有标签

你的 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% “成功”运行却返回看似合理实则错误答案的情况。

智能体系统中的决策溯源:真正有效的审计追踪

· 阅读需 15 分钟
Tian Pan
Software Engineer

你的生产系统中有一个智能体删除了 10,000 条数据库记录。这次删除符合有效的业务逻辑 —— 这些记录被正确标记了。但三个月后,监管机构提出了一个简单的问题:谁授权了这个操作,智能体是根据什么依据做出决定的?你打开日志,找到了 SQL 语句,找到了时间戳,但什么都找不到了。

这就是决策溯源问题。你可以证明你的智能体采取了行动;但你无法证明它为什么这样做,或者这个行动是否曾经得到了一个真正理解自己在批准什么的人的授权。随着自主智能体开始执行跨越数小时、数十次工具调用、且决策具有真实世界影响的工作流,"我们有日志"与"我们有问责机制"之间的鸿沟已经在运营上变得危险。

跨 Agent 服务边界的分布式追踪:上下文传播的断裂

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数分布式追踪方案在引入 Agent 之前都运作良好。一旦系统中出现 Agent A 跨微服务边界调用 Agent B——Agent B 调用工具服务器、工具服务器再查询向量数据库——原本连贯的端到端视图就会碎片化为互不相连的片段。追踪后端展示的是一个个孤立的操作,而你失去的是因果链:为什么某件事发生了,哪个用户请求触发了它,以及那 800 毫秒究竟消耗在了哪里

这不是监控配置问题,而是上下文传播架构问题。它有着特定的技术形态,大多数团队都是在付出代价后才意识到这一点。

幻觉并非根本原因:生产环境 AI 的调试方法论

· 阅读需 12 分钟
Tian Pan
Software Engineer

当一名律师在联邦备案文件中引用不存在的法庭案例时,这一事件被广泛报道为“ChatGPT 产生了幻觉”。当一家咨询公司的政府报告中包含虚假脚注时,复盘报告写道“AI 伪造引文”。当一个医疗转录工具在医疗笔记中插入暴力语言时,解释仅仅是“模型产生了幻觉”。在每一个案例中,代价昂贵的失败都被归结为一个由三个词组成的根本原因,这使得修复变得不可能。

“模型产生了幻觉”在 AI 领域等同于在堆栈跟踪中写下“未知错误”。它描述了发生了什么,却没告诉你为什么发生或如何修复。每一次幻觉都有一个可诊断的原因——通常属于四个类别之一——且每个类别都需要不同的工程响应。理解这种区别的团队能够交付可以优雅降级的 AI 系统。而不理解的团队则在不断地通过提示词玩“打地鼠”游戏。

为什么幻觉率不是衡量生产级 LLM 系统的核心指标

· 阅读需 9 分钟
Tian Pan
Software Engineer

你的 LLM 幻觉率是 3%。但你的用户仍然讨厌它。这并不矛盾 —— 而是衡量标准错误的症状。

幻觉率已成为 LLM 质量的默认头条指标,因为它很容易向利益相关者解释,且在基准测试(benchmark)中计算起来非常简单。但在生产环境中,它与用户真正关心的东西相关性很低:任务是否完成、结果是否值得信赖并足以据此行动、以及系统是否为他们节省了时间?

隐形模型漂移:供应商静默更新如何破坏生产 AI

· 阅读需 11 分钟
Tian Pan
Software Engineer

周一你的提示词还运行正常。周三,用户开始抱怨响应感觉不对劲——答案变短了,下游的 JSON 解析时不时崩溃,原本准确率 94% 的分类器现在徘徊在 79% 左右。你没有部署任何新代码,配置文件里调用的模型名称还是那个。但某些东西变了。

这就是隐形模型漂移:LLM 供应商在不作任何公告的情况下推送静默的、未记录的行为变更。这是 AI 工程中讨论最少的运营风险之一,它会打击那些"做了所有正确事情"的团队——有评估集、有监控、有稳定的提示词工程。模型就在他们脚下悄悄地变了。

随机系统的值班响应:为何你的 AI 运行手册需要重写

· 阅读需 12 分钟
Tian Pan
Software Engineer

凌晨两点,你被告警叫醒。延迟上升,错误率飙升。你 SSH 进去,查看日志——什么都没有。没有指向错误部署的堆栈跟踪,没有第 247 行的空指针异常。只有一串模型输出,这些输出在细微之处、以不可预测的方式出了问题——只有当你连续读了 50 条之后,才能意识到这一点。

这就是 LLM 驱动系统中故障的样子。而传统的"告警-分类-修复"循环根本不是为此而生的。

标准值班手册有三个前提假设:故障是确定性的(相同输入,相同的错误输出)、根因是可定位的(某段代码改了,某项资源耗尽了)、回滚是直接的(还原部署,搞定)。这三点在随机 AI 系统中都不成立。同一个提示词会产生不同的输出。根因通常是一个概率分布,而不是某行代码。而且,你根本无法"回滚"一个第三方提供商昨晚悄悄更新的模型。