跳到主要内容

182 篇博文 含有标签「reliability」

查看所有标签

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

· 阅读需 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)中,如果每个阶段都无条件地信任前一个阶段的输出,会发生什么。第一阶段中一个虚构的事实不仅会持续存在,还会成为后续每一次推理的承重前提。到第四阶段,工作流会给出一个自信且逻辑自洽的答案,但结果却是完全错误的。

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

智能体的死信:当没有智能体能完成任务时该怎么办

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个正在构建多智能体研究工具的团队在一次失控任务运行到第 11 天时发现,他们的两个智能体在整个过程中一直在循环交叉引用彼此的输出。账单金额:47,000 美元。没有人类看到过结果。没有触发任何警报。系统只是在持续运行,并确信自己正在取得进展,因为架构中没有任何环节提出这样一个问题:当一个任务确实无法完成时会发生什么?

消息队列在几十年前就通过死信队列 (DLQ) 解决了这个问题。一条超过投递重试限制的消息会被路由到一个暂存区,操作员可以在那里检查它、修复根本原因,并在系统准备就绪时重新播放。这种模式简单、经过实战检验,但在当今的生产级智能体系统中几乎完全缺失。

智能体链中的认知信任:不确定性如何在多步委托中累积

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数构建多智能体系统的团队,把大量时间花在授权信任上:智能体 B 被允许执行哪些操作、可以调用哪些工具、能访问哪些数据。这是一个重要的问题。但还有第二个信任问题同样关键,却鲜少得到足够重视——而正是它在实际生产系统中造成严重故障。

这个问题是认知层面的:当智能体 A 将任务委托给智能体 B 并收到答案时,A 应该在多大程度上相信 B 返回的内容?

这不是 B 是否被授权回答的问题,而是 B 是否真的有能力回答的问题。

AI 系统中的功能交互故障:当两个正常运行的组件结合时发生崩溃

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的流式传输正常工作。你的重试逻辑正常工作。你的安全过滤器正常工作。你的个性化功能也正常工作。但当你将它们部署在一起时,奇怪的事情发生了:流式传输中途出现的速率限制错误导致用户看到的是一段被截断的响应,而系统却将其记录为成功。重试机制触发了,但流式传输已经结束。个性化层提供了一个定制化的响应,而安全过滤器本应拦截这个响应——除非过滤器看到的是 Prompt 的脱敏版本,而不是个性化层所处理的那个版本。

每一个功能都通过了你编写的各项测试。然而系统还是让用户失望了。

这就是功能交互故障(feature interaction failure),它是当今 AI 系统中最容易被误诊的生产环境 Bug。

幽灵上下文:矛盾信念如何破坏长期运行智能体的记忆

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的智能体已经与同一个用户对话了400次。六个月前她说她更喜欢Python。三个月前她的团队迁移到了Go。上周她提到了一个新的TypeScript项目。这三个事实现在都存储在你的向量数据库中——语义相似、时间顺序混乱、权重相同。下次她请求代码帮助时,你的智能体会同时检索到这三条信息,将这团矛盾的内容递给模型,然后自信地为TypeScript场景生成带有Go风格的Python代码。

这就是幽灵上下文:那些永不消亡的过时信念,与其替代版本一同被检索,悄然腐蚀智能体的推理。

这个问题之所以被低估,是因为它不会产生可见错误。智能体不会崩溃,不会拒绝响应,而是生成流畅自信的输出——只是微妙地、代价高昂地出错了。

多模型共识:当单个 LLM 不足以进行最终签核时

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的 AI 功能发布时准确率为 85%。领导层非常兴奋。但随后一项合规审计发现,那 15% 的错误答案集中在特定的监管解读上——而你所使用的供应商家族中的每个模型都以同样的方式犯了错。你调用了一个模型,它失败了。因为你从未将其与其他模型进行对比,你完全没有意识到这种失败是系统性的。

多模型共识架构(Multi-model consensus architecture)是解决这一问题的结构化方案。与其信任单个大语言模型(LLM),不如将请求分发给来自不同供应商家族的多个模型,汇总它们的响应,并根据一致性进行路由。不一致的模式本身就成为了系统中的一等信号,而不仅仅是一个调试产物。

这种方法的每次推理成本要高出 2 到 4 倍。对于大多数用例来说,这显然不值得。但对于特定类别的输出——法律摘要、医疗分诊路由、金融风险标记、安全评估——错误答案的代价远超额外推理的成本,以至于计算逻辑几乎立即发生反转。

超时感知的智能体设计:如何返回部分结果而非静默失败

· 阅读需 11 分钟
Tian Pan
Software Engineer

一个智能体成功创建了 GitHub Issue、开启了 Jira 工单,并更新了共享表格。然后在发送 Slack 通知之前超时了。框架将此次运行记录为"已交付"。用户从未收到通知。副作用存在于三个系统中,而对人类真正重要的结果却没有送达。

这是生产智能体系统中最常见的超时失败模式,但几乎从来不是团队预先准备好的那种。大多数智能体实现把超时当作普通异常处理:捕获、记录、返回错误。即使智能体完成了 90% 的工作,用户也什么都得不到。问题不在于是否设置超时——每个生产系统都需要超时。问题在于当时钟走完时,智能体该如何应对。

AI 降级设计是架构问题,不是事后补丁

· 阅读需 9 分钟
Tian Pan
Software Engineer

当麦当劳在三年运营后关停其 AI 得来速系统时,失败的原因并不是模型识别订单能力不足。失败的根源在于架构:没有明确的升级路径交给人工收银员,没有触发重试的置信度阈值,也没有定义系统困惑时该如何处理。AI 只是不停地尝试。顾客不断地抓狂。顺利路径设计得很好,其他一切都没有。

几乎每一个失败的 AI 部署都重复着这个模式。模型在演示中运行良好,在生产中出现故障。而事后分析揭示了同样的根本原因:降级设计从来不是架构的一部分,而是某人打算"之后再加"的东西。

隐形的交接:为什么生产环境中的 AI 故障集中在组件边界上

· 阅读需 10 分钟
Tian Pan
Software Engineer

当你的 AI 功能输出错误答案时,第一个问题总是:“是模型的问题吗?”大多数工程师会进行模型评估,运行几个测试提示词,并得出模型看起来没问题的结论。他们通常是对的。模型没问题。故障发生在其他地方——在你的组件相互通信的那些无形接缝处。

这一结论的证据是一致的。对生产环境 RAG 部署的分析显示,73% 的故障是检索故障,而不是生成故障。在多智能体系统中,最常见的故障模式是消息顺序冲突、状态同步间隙和 schema 不匹配——这些都不会出现在任何单组件健康检查中。GPT-4 在处理复杂的提取任务时,产生无效响应的比例接近 12%,这不是因为模型坏了,而是因为模型与下游解析器之间的输出格式契约从未被强制执行。

模型背了锅,边界才是元凶。