跳到主要内容

182 篇博文 含有标签「reliability」

查看所有标签

Schema 熵:为什么你的工具定义正在生产环境中腐烂

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的 Agent 在 1 月份时运行良好。到了 3 月,它开始在 15% 的工具调用中失败。到了 5 月,它在另外 20% 的情况下会静默地产生错误输出。你的部署日志没有任何变化。没有人动过 Agent 的代码。工具定义看起来和六个月前一模一样——而这恰恰就是问题所在。

工具 Schema 并不需要被修改才会出错。它们所描述的服务在底层发生了变化。Enum(枚举)值增加了。后端重构使必填字段变成了可选字段。以前接受字符串的参数现在需要 ISO 8601 时间戳。Schema 文档保持冻结,而底层的 API 却在不断演进,你的 Agent 仍在自信地调用它,完全不知道契约(contract)已经发生了变化。

这就是 Schema 熵(Schema entropy):你的 Agent 接受训练时所使用的工具定义与生产环境服务实际表现出的行为之间逐渐产生的差异。它是生产环境 AI 系统中最被低估的可靠性问题之一,研究表明,工具版本控制问题约占生产环境 Agent 故障的 60%。

语义验证层:为什么 JSON Schema 不足以应对生产环境中的 LLM 输出

· 阅读需 12 分钟
Tian Pan
Software Engineer

到 2025 年,每家主流 LLM 服务商都已推出结构化输出的受约束解码功能。OpenAI、Anthropic、Gemini、Mistral——它们都允许你向模型传入一个 JSON Schema,并保证返回结果在结构上完整无误。各个团队纷纷采用这一功能,长舒一口气:解析错误消失了,重试循环缩短了,监控面板一片绿色。

然后,微妙的故障开始出现。

一个情感分类器在两周内对每个输入——包括乱码——都锁定在 0.99 的置信度,无人察觉。一个信贷风险智能体返回了合法的 JSON,批准了一笔本应被拒绝的贷款申请,风险分数高出了五十分。一条金融数据管道将 "$500,000"(字符串,技术上符合 Schema)强制转换为整数字段中的零,破坏了六周的风险计算数据。这些故障全部通过了 Schema 验证。

教训是:结构有效性是必要条件,但并不充分。你需要一个语义验证层,而大多数团队并没有这一层。

异步 Agent 的静默失败:为何你的 AI 任务悄然终止却无人察觉

· 阅读需 9 分钟
Tian Pan
Software Engineer

异步 AI 任务有一个传统后台 Worker 没有的问题:它们会静默而自信地失败。一个文档处理 Agent 返回 HTTP 200,输出格式规整的结果,然后继续执行——而实际输出却悄悄出错了:可能不完整,可能建立在三步前幻觉出的事实上。你的仪表盘依然绿色,值班工程师照常入睡,客户最终才发现异常。

这不是边缘情况,而是未经可观测性设计的异步 AI 系统的默认行为。让传统分布式系统中后台作业队列保持可靠的工具——死信队列、幂等键、Saga 日志——同样适用于 AI Agent。但失败模式足够不同,需要做一些"翻译"。

AI 回滚仪式:当损害是行为性而非二元性时的事故后恢复

· 阅读需 13 分钟
Tian Pan
Software Engineer

2025 年 4 月,OpenAI 对 GPT-4o 进行了更新。API 版本号没有变化,变更日志(changelog)里也没有任何提示。几天之内,已经稳定运行数月的企业级应用开始产生细微且隐蔽的错误输出——不是崩溃,也没有报错,只是在面对糟糕的提议时极力附和用户。一个经过校准和测试的模型,现在却正以一种极其自信且得体的方式验证着有害的决策。OpenAI 在三天后撤回了这次更新。但那时,一些应用已经将这些输出发送给了真实用户。

这种故障模式是传统 SRE 实践中没有模板可循的。没有可以撤销的部署,没有可以检查的差异(diff)。没有任何测试失败,因为行为退化(behavioral regressions)不会导致测试报错——它们会在分布中悄无声息地恶化,直到有人察觉到“感觉不对劲”。

集成测试的幻象:为什么模拟工具输出会隐藏智能体的真实失败模式

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的智能体通过了每一项测试。CI 流水线显示绿色。你发布了它。

一周后,一位用户报告说他们的批量导出任务悄无声息地只返回了 200 条记录,而不是 14,000 条。智能体访问了分页 API 的第一页,得到了一个干净的响应,以为没有更多内容了,然后就继续下一步了。你的模拟(Mock)一次性返回了全部 200 个条目。而真实的 API 从未告诉智能体还有另外 70 页。

这不是模型的失败。模型的推理是正确的。这是测试基础设施的失败 —— 这种现象在团队构建和测试智能体系统(agentic systems)时非常普遍。

过度宣称陷阱:当“歪打正着”摧毁 AI 产品信任

· 阅读需 12 分钟
Tian Pan
Software Engineer

大多数 AI 产品复盘都聚焦于同一个故事:模型错了,用户发现了,信任瓦解了。修复方法显而易见——提高准确率。但有一种更隐蔽的失败模式,复盘很少能捕捉到,因为标准的准确率指标无法反映它:模型是正确的,但原因却是错误的,而那些检查了推理逻辑的高级用户再也没有回来。

称之为“过度声明陷阱”(overclaiming trap)。在这种失败模式下,正确的最终答案是由捏造的、事后修补的或结构不合理的推理链支撑的。它比普通的错误更危险,因为它看起来像是成功,直到你最专业的用户开始悄悄离开。

!["https://opengraph-image.blockeden.xyz/api/og-tianpan-co?title=%E8%BF%87%E5%BA%A6%E5%A3%B0%E6%98%8E%E9%99%B7%E9%98%B1%EF%BC%9A%E5%BD%93%E2%80%9C%E5%9B%A0%E9%94%99%E7%9A%84%E5%8E%9F%E5%9B%A0%E8%80%8C%E6%AD%A3%E7%A1%AE%E2%80%9D%E6%91%AC%E6%AF%81%20AI%20%E4%BA%A7%E5%93%81%E4%BF%A1%E4%BB%BB"]"

AI Agent 的 CAP 定理:为何你的 Agent 在本该优雅降级时却彻底崩溃

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 AI Agent 运行得一切正常,直到某一刻它彻底不行了。某个工具宕机——也许是搜索 API 触发了限流,也许是数据库响应迟缓,也许是代码执行沙箱超时——整个 Agent 随之崩溃。不是部分答案,不是降级响应,而是彻底失败。要么一片空白,要么满是幻觉。

这不是一个 Bug,而是一个设计选择——而且几乎没有人是刻意做出这个选择的。我们今天所构建的 Agent 架构隐式地选择了"彻底失败",原因只有一个:没有人设计过部分可用路径。如果你有分布式系统的经验,这个模式应该让你感到似曾相识。这正是 CAP 定理,以一副新的面孔出现了。

级联上下文污染:为何一个错误事实就能毁掉整个 Agent 运行

· 阅读需 9 分钟
Tian Pan
Software Engineer

你的 Agent 完成了一个 25 步的研究任务。最终报告看起来很精美,引用也能对上,推理链条看似连贯。但 Agent 在第 3 步幻觉了一家公司的创立年份,而后续的每一个推断——市场时机分析、竞争定位、增长轨迹——都建立在那个错误的日期上。输出结果自信地、系统性地错了,而你的流水线中没有任何环节捕捉到这个问题。

这就是级联上下文污染:一个错误的中间结论通过后续的推理步骤和工具调用不断传播,最终演变成系统级故障。这是长时运行 Agent 中最危险的失败模式,因为它看起来像是成功的。

幽灵工具调用:当AI智能体调用不存在的工具

· 阅读需 9 分钟
Tian Pan
Software Engineer

你的智能体通过了所有单元测试,完美处理了正常路径,然后在某个周二下午,它试图调用 get_user_preferences_v2——一个在你的代码库中从未存在过的函数。这个调用在语法上看起来完全正确。参数也很合理。唯一的问题是,你的智能体凭空捏造了这一切。

这就是幽灵工具调用:一种不表现为错误文本而表现为错误操作的幻觉。与人类可能在审查中发现的事实幻觉不同,幽灵工具调用会直接命中你的运行时,抛出一个晦涩的 ToolNotFoundError,并使原本运行正常的多步骤工作流脱轨。

利益相关者提示冲突:当平台、业务与用户指令在推理时相互竞争

· 阅读需 12 分钟
Tian Pan
Software Engineer

2024年,加拿大航空的聊天机器人凭空发明了一项并不存在的丧亲票价退款政策。法院裁定该公司须对机器人的言论负责。根本原因并非传统意义上的模型幻觉——而是优先级反转。系统提示写着"乐于助人",实际政策写着"遵循已记录的规则"。当用户询问赔偿问题时,模型悄悄地将"高效解决问题"置于"升级投诉"之上,而没有人在这一判断影响公司之前对其进行审计。

这就是利益相关者提示冲突问题。每个生产级LLM系统都至少有三个指令来源:平台层(安全约束和基础模型行为)、业务层(运营商定义的规则、合规要求、品牌声音)以及用户层(实际请求)。当这些层相互矛盾时——它们终将矛盾——模型会选出一个胜者。问题在于,这个选择是由你的工程团队有意为之,还是模型在无人察觉的情况下自行决定的。

拟人化税:为什么把 Agent 当同事对待会搞坏生产系统

· 阅读需 11 分钟
Tian Pan
Software Engineer

一支工程团队构建了一个处理客户请求的 Agent。演示效果非常好。他们将其部署上线。三周后,这个 Agent 悄无声息地以十足的自信向用户传达错误信息,在上下文变长时跳过步骤,还会在模糊输入上偶尔陷入死循环。事后复盘发现,团队从未构建重试逻辑,从未验证输出,也从未定义 Agent 在不确定时该怎么做。当被问及原因,答案耐人寻味:"我们以为它会自己处理那些边缘情况。"

"我们以为它会自己处理那些边缘情况"——这句话将拟人化税表露无遗。团队设计这个系统的方式,就像管理一名初级开发者:简要说明任务,信任其判断,等它举手求助时再纠正。但 LLM Agent 不会举手。它们只是生成下一个 token。

上下文窗口悬崖:当你的智能体在任务中触及上限时究竟会发生什么

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的智能体完美地完成了第一步到第六步。第七步与第二步相矛盾。第八步幻觉出了一个并不存在的工具。第九步自信地提交了垃圾内容。没有程序崩溃,没有抛出错误。智能体只是忘记了它正在做什么 —— 并且无论如何都在继续。

这就是上下文窗口悬崖(context window cliff):即 AI 智能体积聚的上下文超过其有效推理能力的时刻。它不会优雅地失败,也不会寻求帮助。它会基于部分信息做出自信但错误的决策,而你直到损失造成才会察觉。