跳到主要内容

159 篇博文 含有标签「reliability」

查看所有标签

优雅的工具调用失败:你的 Agent UI 缺失的错误契约

· 阅读需 12 分钟
Tian Pan
Software Engineer

你见过的每一个 Agent 演示都以干净的结果收尾。工具调用返回了模型预期的数据,响应在两秒内到达,最终答案清晰准确。那是演示。生产环境则是另一回事。

在生产环境中,工具会超时。API 会返回 403,因为某个服务账户上周二被轮换了。第三方数据丰富端点返回 200,但响应体写着 {"status": "degraded", "data": null}。OAuth 令牌在周六凌晨 3 点过期。这些不是边缘案例——这是任何与真实世界交互的 Agent 的正常运行状态。失败模式是可预见的。问题在于,大多数 Agent 架构将它们视为事后补救,而大多数 Agent UI 根本没有向用户传达这些失败的词汇。

定义真正有效的人机交接升级标准

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数AI团队能告诉你他们的遏制率——AI在不转交给人工的情况下处理的交互比例。但很少有团队能告诉你这个数字是否合理。

升级标准是AI增强团队中最重要的设计文档,而大多数团队根本没有这份文档。他们有一个埋藏在YAML文件中的阈值,以及一个隐含的假设:AI知道自己什么时候卡住了。这个假设在两个方向上都是错误的:阈值过高,人工就要花时间返工AI的工作;阈值过低,用户在没有任何补救措施的情况下承受AI的错误。两种失败都是隐性的,直到它们积累成大问题。

LLM 流水线中,幂等性是必选项

· 阅读需 12 分钟
Tian Pan
Software Engineer

一个批量推理任务在六分钟后完成。网络在返回响应时发生了抖动。你的重试逻辑开始介入。两分钟后,任务再次完成——而你的账单也翻了一倍。这只是将传统的幂等性思维应用于 LLM 流水线而不根据随机系统进行调整时,所发生的最温和的情况。

大多数生产团队都是通过惨痛的教训才发现这个问题的:本意是为了从瞬时错误中恢复的重试,却触发了第二次付款、发送了重复的电子邮件,或者在数据库中写入了相互矛盾的记录。解决方案不是更好的重试逻辑,而是一个全新的心智模型——当你的核心组件是概率性的时,幂等性究竟意味着什么。

最后一公里可靠性问题:为何 95% 的准确率往往意味着 0% 的可用性

· 阅读需 10 分钟
Tian Pan
Software Engineer

你构建了一个 AI 功能。你跑了评估。你在测试集上看到了 95% 的准确率。你上线了。六周后,用户对它深恶痛绝,你的团队正在悄悄计划回滚。

这就是最后一公里可靠性问题,它很可能是当今生产环境中 AI 功能失败最常见的原因。这与你的模型不好无关,而与平均准确率指标如何掩盖失败分布有关——以及某些失败无论其统计频率如何都会带来高昂代价。

模型最确定的时候往往最容易出错:生产中的LLM置信度校准

· 阅读需 10 分钟
Tian Pan
Software Engineer

有一种故障模式会在团队解决了幻觉过滤、输出解析、重试逻辑等较容易的问题之后反复出现:模型给出听起来很自信的错误答案,基于置信度的路由逻辑信任了这些错误答案,系统在生产中悄无声息地出现异常,而评估仪表板看起来一切正常。

这不是提示词问题,而是校准问题,它根植于现代LLM的训练方式之中。

模型迁移类比数据库迁移:如何在不破坏生产环境的情况下安全切换 LLM 供应商

· 阅读需 12 分钟
Tian Pan
Software Engineer

当你的团队决定从 Claude 3.5 Sonnet 升级到 Claude 3.7,或者从 OpenAI 迁移到自托管的 Llama 部署时,直觉通常是将其视为一次库升级:更改 API 密钥,更新模型名称字符串,进行快速的健全性检查,然后发布。这种直觉是错误的,那些遵循这一做法的团队会在第二周的凌晨 2 点发现原因——当时客服代理开始以完全不同的格式生成响应:技术上有效,语义上却是灾难性的。

切换 LLM 提供商或模型版本在结构上与数据库模式迁移(database schema migration)完全相同。两者都涉及更改系统中应用其余部分具有隐式契约的行为。两者可能在第一天看起来没问题,但在第十天发生灾难性的失败。两者都需要双重运行(dual-running)、金丝雀发布(canary deployment)、回滚标准和迁移方案(migration playbook)——而不是修改配置后发一条 Slack 消息。

当你的模型偶尔出错时,99.9% 的可用性意味着什么

· 阅读需 11 分钟
Tian Pan
Software Engineer

一家电信公司发布了一款 AI 客服聊天机器人,拥有 99.99% 的可用性和低于 200ms 的响应时间 —— 每一个传统的 SLA 指标都显示为绿色。然而,在 35% 的账单查询中,它的回答都是错误的。没有任何合同条款涵盖这一点。没有任何警报触发。客户只是悄然流失。

这就是 AI 的“西瓜效应”:系统表面看起来很健康,内部却在悄悄腐烂。传统的可靠性 SLA —— 可用性、错误率、延迟 —— 是为确定性系统构建的。它们衡量的是你的服务是否回答了问题,而不是回答得好不好。在传统的 SLA 下发布 AI 功能,就像保证你的支持团队发送的每封邮件都能送达,却不对回复内容是否合理做任何承诺。

生产环境中的结构化输出可靠性:为什么 JSON 模式并非契约

· 阅读需 9 分钟
Tian Pan
Software Engineer

一个团队发布了一个文档提取流水线。它使用了 JSON 模式。QA 通过了。监控显示解析错误接近于零。六周后,一个隐蔽的失败浮出水面:语料库中的每一份风险评估都被标记为 “低” —— JSON 格式有效,字段名称正确,但答案是错的。该流水线已经在以符合架构(Schema)的格式自信地撒谎了好几周。

这是将 JSON 模式视为可靠性保证的核心问题。结构一致性(Structural conformance)和语义正确性(Semantic correctness)是系统的不同属性,混淆两者是生产级 AI 工程中最代价高昂的错误之一。

工作流引擎何时优于LLM智能体:确定性编排的决策框架

· 阅读需 10 分钟
Tian Pan
Software Engineer

Gartner预测,到2027年底,超过40%的智能体AI项目将被取消——主要原因是成本不断攀升、业务价值不明确以及风险管控不足。行业调查显示,自主AI智能体的生产成功率介于5%至11%之间。这些数字揭示了一个重要事实:在团队交给智能体处理的大量任务中,确定性工作流引擎本可以更快、更便宜、更可靠地完成工作。

这不是反AI的论点,而是架构层面的思考。问题不在于LLM是否有能力——而在于自主的开放式推理是否是你所构建任务的正确执行模型。对于相当大一类结构化业务流程而言,答案是否定的。

级联问题:为什么 Agent 副作用在大规模运行时会呈爆炸式增长

· 阅读需 15 分钟
Tian Pan
Software Engineer

一个团队交付了一个文档处理智能体(agent)。它在开发环境中表现完美:读取文件、提取数据、将结果写入数据库,并发送确认 webhook。他们运行了 50 个测试用例,全部通过。

部署两周后,在 100 个并发智能体实例运行时,数据库中出现了 40,000 条重复记录,三个下游服务收到了数千个虚假的 webhook,一个共享配置文件被两个同时运行的智能体各覆盖了一半。

智能体本身没有出错。系统崩溃是因为没有任何一个独立的智能体测试曾被要求与其他智能体共同处于同一个运行环境中。

智能体规范差距:为什么你的智能体忽略你写的内容

· 阅读需 14 分钟
Tian Pan
Software Engineer

你写了一份详尽的规范。你描述了任务,列出了约束条件,并给出了示例。Agent 运行了——但做了一些与你预期完全不同的事情。

这就是规范差距 (specification gap):你写的指令与 Agent 理解的任务之间的距离。这不是模型能力的问题,而是规范的问题。2025 年发布的关于多 Agent 系统失败的研究发现,与规范相关的议题占所有失败的 41.77%,而 79% 的生产环境故障可以追溯到任务是如何规范化的,而不是模型能做什么。

大多数编写 Agent 规范的团队都在犯同一类错误:像给一个称职的同事写邮件一样写指令,然后期望一个没有任何共享上下文的自主系统在数千次运行中正确执行这些指令。

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

· 阅读需 12 分钟
Tian Pan
Software Engineer

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

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