跳到主要内容

238 篇博文 含有标签「reliability」

查看所有标签

API 文档即可靠性基础设施:文档如何决定智能体的成功率

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数工程团队将 API 文档视为开发者体验关注点——一种为了减少支持工单和入职时间而进行的改进。当你的主要消费者是在浏览器中阅读文档的人类时,这种思维方式是有道理的。但现在,这已经不再足够。

当 AI 智能体通过工具调用访问你的 API 时,你的文档就不再仅仅是指南,而是变成了运行时行为。模糊的参数描述不再是 UX 上的不便,而是对模型产生幻觉值的直接指令。缺失的错误代码不再是参考文档中的空白,而是一个模糊信号,可能导致智能体陷入没有退出条件的重试循环。你三年前为人类读者编写的文档,现在正被一个无状态的语言模型解析,无论它是否理解正确,都会自信地执行。

跨用户一致性问题:当你的 AI 对同一问题给出不同答案时

· 阅读需 11 分钟
Tian Pan
Software Engineer

同一家公司的两位分析师都问了你的 AI 助手同一个问题:"我们 Q3 的客户流失率是多少?"一个人得到的是 4.2%,另一个人得到的是 4.8%。两个答案都没有错——他们只是在不同的时间、不同的会话上下文中进行了查询,检索索引对略有不同的数据块进行了排名。AI 自信地回答了两个问题,没有任何保留,没有标记任何差异。两位分析师带着不同的数字走进了同一个会议,而你的工具刚刚变成了一个负担。

这就是跨用户一致性问题,也是企业 AI 部署悄然失去信任最常见的原因之一。这种失败并非经典意义上的幻觉——没有编造任何事实。失败在于:你的系统在规模上是非确定性的,而这种非确定性在两个用户互相对比结果之前是不可见的。

人工接管作为一等功能:设计能够优雅降级至人工控制的 AI 系统

· 阅读需 11 分钟
Tian Pan
Software Engineer

当一个 AI 驱动的客服智能体无法解决问题并将工单升级给人工时,接下来会发生什么?在大多数系统中:客户被冷转接,没有任何上下文,不得不从头开始重新解释所有情况。人工客服完全不知道 AI 尝试了什么、收集了哪些信息,以及为什么发生了交接。

这是人工接管失败最常见的形式——不是戏剧性的 AI 崩溃,而是自动化与人工处理衔接处悄然发生的 UX 崩塌。究其根本,是工程师精心设计了 AI 处理路径,却将人工接管作为事后补丁——一个出问题时的回退方案。结果是,接管体验像系统报错,而非经过设计的操作模式。

那些做得好的工程团队,从第一天起就将人工接管视为一等功能。以下是其在实践中的具体体现。

你的负载测试在撒谎:生产环境中的 LLM 供应商容量争用

· 阅读需 13 分钟
Tian Pan
Software Engineer

你运行了一个负载测试。你的 p95 延迟是 450ms。你对此感觉良好,上线了该功能,然后两周后你的轮值告警响了,因为用户在周二上午 9 点看到了 25 秒的响应时间。

你的代码没有发生任何变化。没有部署,没有配置更改。供应商的状态页面显示“正常运行 (operational)”。然而,你的应用在业务高峰时段持续 20 分钟无法使用。

这就是 LLM 容量争用问题,也是工程师在被坑之前最常忽视的故障模式之一。

SLA 的幻象:为什么 99.9% 的可用性对 AI 功能毫无意义

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的仪表板显示全绿。延迟处于正常水平。错误率为 0.2%。本月正常运行时间为 99.97%。然而,你的 AI 助手正自信地向用户提供错误的信息,格式不对,长度是预期的两倍——而且这种情况已经持续了 11 天。

这就是 SLA 幻觉:基础设施合同保障的是管道,而不是其中流过的水。对于 AI 驱动的功能,“它是否有响应?”与“它的响应是否准确?”之间的差距,正是产品质量悄然崩塌的地方。

自动化悬崖:当部分 AI 自动化比完全不自动化更糟糕时

· 阅读需 12 分钟
Tian Pan
Software Engineer

当一个团队第一次将 70% 的手动流程自动化,却交付了比以前更差的结果时,诊断几乎总是从错误的地方开始。工程师们会检查自动化部分:也许是模型准确率不对,也许是流水线有 Bug。他们很少检查的是,自动化本身的存在——仅仅因为它的存在——是否使得剩余 30% 的人工工作在结构上变得无法做好。

这就是自动化悬崖。这不是自动化组件的失败,而是自动化与手动之间衔接处的失败。

当 AI 听起来正确但事实并非如此:技术与科学领域中的 LLM 虚构现象

· 阅读需 10 分钟
Tian Pan
Software Engineer

在技术领域,LLM 虚构(confabulation)的阴险之处不在于模型会给出明显的错误答案。而在于它会生成结构优美、语气自信、技术上看似合理的答案,但其中的细微错误只有领域专家才能发现——而且往往是在造成损失之后。

一个 Monte Carlo 物理模拟,它初始化正确,但在每一步都从头重新采样粒子位置,而不是进行增量更新。一个符合命名规范但氧化态错误的化学公式。一份引用了正确标准、参考了正确单位,但载荷系数完全错误的设计规范。每个输出看起来都是正确的。每个听起来都极具权威。但每一个都是错误的,且这些错误只有在有人运行实验、对组件进行压力测试或仔细阅读推导过程时才会浮现。

智能体记忆污染:一次错误工具响应如何毒害整个会话

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的智能体正确完成了一项多步研究任务的 80%,然后自信地给出了一个完全错误的结论。你翻查日志,在第三步找到了罪魁祸首:一次工具调用返回了过时数据,智能体将其作为事实整合,之后的每个推理步骤都建立在这个被毒化的前提之上。到会话结束时,智能体对一切都是正确的——除了最关键的那件事。

这就是智能体记忆污染——它是生产智能体系统中最隐蔽的可靠性故障之一。与崩溃或超时不同,它产生的是自信的错误答案。可观测工具记录的是一次成功运行,用户带着错误信息离开。

智能体系统就是分布式系统:在遭遇惨痛教训前应用微服务经验

· 阅读需 16 分钟
Tian Pan
Software Engineer

多智能体 AI 系统在生产环境中的失败率令人汗颜。一项分析了七个流行框架、超过 1,600 条执行追踪的地标性研究发现,失败率在 41% 到 87% 之间。卡内基梅隆大学的研究人员指出,在多步基准测试中,领先的智能体系统的任务完成率仅为 30–35%。Gartner 预测,到 2027 年底,40% 的智能体 AI 项目将被取消。

这就是令人不安的事实:这些并不是 AI 问题。它们是工程师在 2010 年至 2018 年间已经解决的分布式系统问题,这些解决方案详尽地记录在博客文章、会议演讲以及 Martin Kleppmann 的《数据密集型应用系统设计》(Designing Data-Intensive Applications)中。今天能够交付可靠智能体系统的团队并没有施展什么魔法——他们应用的是熔断器(circuit breakers)、舱壁隔离(bulkheads)、事件溯源(event sourcing)和幂等键(idempotency keys)。那些失败的团队则将智能体视为一种全新的范式,而实际上,它们只是旧模式的新部署目标。

AI 模型 API 是你看不见、固定不了、也追踪不到的软件依赖

· 阅读需 10 分钟
Tian Pan
Software Engineer

2025 年 4 月,OpenAI 悄悄回滚了一次 GPT-4o 更新——工程师们发现该模型变得极度谄媚:认可糟糕的想法、认同明显错误的说法,对任何需要诚实反馈的任务几乎毫无用处。大多数受影响的团队是通过 Reddit 和 Hacker News 才得知此事的。他们的 package.json 没有任何变化,锁文件完全相同,部署流水线也没有标记出任何依赖更新。从标准软件供应链的角度来看,什么都没有发生。

这就是那个你看不见的依赖:你应用背后的基础模型。

构建信任修复流程:当你的 AI 犯下显而易见的错误后该怎么办

· 阅读需 11 分钟
Tian Pan
Software Engineer

当 Google 的 AI Overview 建议用户在披萨酱中加胶水,并为了消化健康而吃石头时,这不仅仅是让产品团队蒙羞——它暴露了我们在思考 AI 可靠性方面的系统性鸿沟。失败的原因不仅在于模型错了。失败的原因在于模型在高度受关注的情境下“自信地”犯错,而且没有为被误导的用户提供任何补救路径。

对 AI 系统的信任并非逐渐流失。研究表明,它遵循一种“悬崖式”崩塌模式:一个明显的错误就能导致信任度大幅下降,并产生可衡量的影响。只有 29% 的开发者表示他们信任 AI 工具——尽管采用率攀升至 84%,但这一比例比前一年下降了 11 个百分点。我们正在构建人们虽然在使用但并不信任的系统。当你的产品发布了代表用户行动的智能体 (agentic) 功能时,这种差距就显得至关重要。

本篇文章讨论的是工程师和产品构建者在错误发生“之后”应该做什么——而不仅仅是如何预防错误。

复合幻觉问题:多阶段 AI 流水线如何放大错误

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数关于幻觉的研究都集中在单次模型调用的输出上。这种框架忽略了一个更可怕的问题:在四阶段的工作流(pipeline)中,如果每个阶段都无条件地信任前一个阶段的输出,会发生什么。第一阶段中一个虚构的事实不仅会持续存在,还会成为后续每一次推理的承重前提。到第四阶段,工作流会给出一个自信且逻辑自洽的答案,但结果却是完全错误的。

这不是一个可以通过更强大的模型来解决的能力问题。这是一个系统架构问题,需要从系统层面进行修复。