Agent 的演练日:排演那些无法复现的故障
混沌工程假设故障是可重现的;但 Agent 系统的故障往往通过从不重复的随机路径发生。演练日(Game days)——包括工具故障注入、模型降级演练、上下文污染场景以及升级反馈消防演练——能建立运维人员的肌肉记忆,并暴露重现测试永远无法发现的追踪工具缺陷。
学习型系统的任意时间点恢复:那个没人做的备份
你的数据库有快照,代码有 git,但你的智能体大脑却分散在五个独立版本化的存储库中。为什么对于大多数智能体技术栈来说,“恢复到昨天下午 3 点”是一个无法定义的概念,以及存储工程中的一致性组(consistency-group)规范如何解决这一问题。
当硬件说谎时:静默数据损坏遇上随机性软件
大约每千个加速器中就有一个会静默地计算出错误答案,而 LLM 推理是第一个硬件故障与采样噪声看起来完全一致的大规模工作负载。本文将探讨位翻转如何隐藏在随机输出中,以及如何利用金丝雀通道和单机统计数据来捕捉说谎的 GPU。
崩溃是承重性的:大语言模型 (LLM) 的容错性如何掩盖了破碎的数据契约
流水线曾通过崩溃来强制执行数据契约。然而,作为消费者的 LLM 却能应对畸形的输入,从而将明显的故障转变为无声的质量下降 —— 本文将介绍如何通过验证门和金丝雀断言来恢复告警机制。
模型 API 现已成为 Tier 0 级别。在状态页变红之前,请先设计好降级模式
模型 API 位于请求路径中,与数据库同等重要,但大多数灾备 (DR) 计划仍将其视为“锦上添花”。这份实用指南涵盖了降级模式 —— 缓存、前置版本、队列和诚实的停机 —— 以及在下一次供应商故障发生前需要做出的业务决策。
无法回滚的回滚:提示词、工具和记忆必须同步版本化,否则满盘皆输
当工具和记忆持续演进时,单独回滚智能体的提示词并不能恢复到已知的良好状态 —— 这样做只会交付一个未经测试的“怪胎”。本文探讨了为什么智能体部署是一个三位一体的过程,解析了每种单一维度的回滚是如何失败的,并介绍了如何像使用 lockfile 一样锁定提示词、工具契约和记忆。
429 错误背后的惊群效应:速率限制是一个分布式系统问题
不带抖动的指数退避会组织你的重试集群而不是将其消解 —— 随之而来的是同步的 429 浪潮、重试放大和亚稳态故障。本文将探讨为什么 LLM 速率限制需要抖动、重试预算,以及你原本没打算构建的客户端调度器。
你的智能体需要的是监督者,而不是重试循环
当长时间运行的智能体失败时,重试循环回答了错误的问题。Erlang 的 OTP 监督树在三十年前就定义了真正的决策路径:是彻底重启、从检查点重启,还是升级给人工处理 —— 以及如何将这些策略映射到智能体流水线中。
护栏也是模型:那个没人放进仪表盘的隐藏依赖
置于 LLM 之前的审核分类器是关键路径上的第二个模型 —— 它同样存在延迟尾部、模型漂移和停机风险。本文将探讨如何规划其延迟预算,有意识地选择故障开启或故障关闭策略,并像监控核心模型一样监控这道关卡。
你的 Prompt 拥有外键
重命名一个列,编译器能捕捉到每一个调用方,唯独漏掉了你的系统 Prompt。嵌入在 Prompt 中的 Schema、工具签名和 Few-shot 示例都是未声明的依赖项 —— 本文将介绍如何为它们提供清单、实现部署时生成以及 CI 强制的引用完整性。
你的工具 Schema 验证的是类型,而非单位
一个接收“分”为单位的退款工具往往会收到以“元”为单位的数值,因为 JSON Schema 验证的是结构而非含义。本文探讨了单位混淆是如何绕过类型、Schema 和评估的,以及如何通过命名、边界断言和评估模式来防止产生 100 倍金额的账单。
在你的智能体能够自我重试之前,精确一次性处理(Exactly-Once)曾是一件难事
幂等键(Idempotency keys)假设调用者会逐字节重复其请求。而智能体(Agent)在重试时可能会转述自己的请求,这打破了该假设。本文将介绍如何构建工具级的去重机制,使其在调用者是语言模型的情况下依然有效。