零温度并非确定性:复现那些你无法重新运行的事故
将温度设置为零会强制执行贪婪解码,但这并不能使 LLM 推理具有可复现性。导致 Token 发生跳变的并不是采样器,而是与 Batch 相关的 GPU 数值计算 —— 本文将介绍如何为你无法重新运行的实例构建事故后分析。
多模态追踪:当各种模态必须共享一个 ID
当语音、视觉和 LLM 各自打开自己的根 span 时,多模态 Agent 就让 span 树支离破碎。修复办法是:一个轮次 ID、附着的工件,以及一个对接合层负责的所有者。
从 Bug 到行为率:没有复现步骤的 AI 事后分析
没有复现步骤的 AI 故障并非调试失败 —— 它是系统在告诉你,单一的错误输出只是分布中的一个采样,而非确定性的 Bug。事后分析的形式必须随之改变。
那些由于模型选择了不同的 Token 而无法复现的 Bug
重现一个 LLM bug 时看到它通过了,并不意味着 bug 消失了 —— 而是意味着你抽取到了不同的样本。当你的工具假设一切都是确定性的,该如何调试一个采样器。
难以调试的庞大 Agent 追踪:当记录了一切却读不懂任何内容时
记录完整的 Agent 追踪会让故障信息变得完整,但却难以阅读。真正的可观测性瓶颈在于:在事故冷却前,人类是否能找到那步至关重要的操作。
没有复现步骤的故障工单:可复现性是工程化的结果
一个智能体删除了错误的记录,而事后剖析报告中却找不到原因。AI 智能体的可复现性并非技术栈自带的属性——它是你需要有意识地去捕获、进行版本控制并回放的东西。
在智能体交接处中断的分布式链路追踪
你的 Span 树在智能体相互调用之前一直非常清晰 —— 但就在 Bug 发生的地方,追踪突然中断了。本文将探讨为什么智能体交接会破坏链路上下文,以及如何确保上下文在交接中得以延续。
Agent 调试器没有断点:为什么追踪优先工作流正在取代单步执行
当输入具有随机性时,单步调试就会失效。替代方案是基于追踪和重放的工作流,它具有四种功能——时间轴拖动、分支对比、扰动重放以及每一步的意图恢复——这些功能与 IDE 的调试工具栏完全不同。
重跑反模式:为什么再次运行并不能发现 Bug
重跑失败的 AI 提示词(prompt)感觉像是在进行方差探测,但实际效果却如同幸存者偏差 —— 在消耗预算外 token 的同时掩盖了确定性的 Bug。取而代之的应该是追踪优先调试和 N-of-K 准则。
多维 Agent 二分查找:当回归出现在交互中时
当 Agent 的回归源于新模型与新工具描述之间的交互时,单轴回滚会产生明显的假阴性。解决方案是对模型、Prompt、工具目录、检索索引和采样配置的笛卡尔积进行二分查找——并以命名的版本信封作为回滚的最小单元。
智能体状态差异对比 (Agent State Diff):为什么肉眼对比两条追踪路径无法规模化
同一个提示词的两次智能体运行几乎从未产生过完全相同的输出。仅在文本层面进行 Diff 会掩盖问题的真正原因。本文将探讨结构化 Diff 的必要条件以及如何构建此类系统。
解读智能体堆栈跟踪:在模型、工具与 Harness 之间定位故障
大多数智能体漏洞存在于模型、工具与 Harness 的结合部——单层日志无法识别它们。构建统一追踪、OpenTelemetry GenAI span 表面、因果假设面板以及复现包络,像对待分布式系统一样调试你的智能体。