跳到主要内容

30 篇博文 含有标签「testing」

查看所有标签

组合测试鸿沟:为什么你的智能体通过了每一项测试却在协作时失败

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的规划智能体(planner agent)在评估套件中的通过率为 94%。你的研究智能体(researcher agent)得分甚至更高。你的合成智能体(synthesizer agent)完美通过了你投喂的每一个基准测试。你将它们组合成一个流水线,部署到生产环境,然后眼睁睁地看着它产生自信的错误答案——而任何单个智能体都不可能独立生成这些错误。

这就是组合测试鸿沟(composition testing gap)——这是一个系统的盲点,即经过独立验证的智能体会以单智能体分析无法预测的方式失败。对多智能体 LLM 系统(multi-agent LLM systems)的研究表明,67% 的生产故障源于智能体之间的交互,而非单个智能体的缺陷。你测试的是原子,但交付的是分子,而分子的行为并非原子属性的简单叠加。

如何在 CI 中对 AI Agent 工作流进行集成测试,而无需完全 Mock 模型

· 阅读需 13 分钟
Tian Pan
Software Engineer

大多数构建 AI Agent 的团队在经历第一次生产事故后,都会发现同一个测试陷阱。你有两个明显的选择:在 CI 中进行实时的 API 调用(缓慢、昂贵、且具有非确定性),或者将 LLM 完全 Mock 掉(快速、廉价、但内容空洞)。这两种方法都会以不同但可预见的方式失败,而第二种方法的失败模式更糟糕,因为它是隐形的。

Mock 掉 LLM 的团队可能会跑六个月的全绿 CI,发布到生产环境后,才发现代码库中一直潜伏着一个 bug:在 8 步循环的第 6 步,Agent 处理畸形工具响应的方式有问题。那个总是返回 "Agent response here" 的 Mock 根本没有触及编排层。实际的工具分发、重试逻辑、状态累积和兜底路由代码从未被测试过。

好消息是还有第三条路。它与其说是一种单一的技术,不如说是一个由三层测试组成的架构,每一层都旨在捕获不同类别的失败,且无需承担其他方法的成本。

代理系统的非确定性 CI:为什么二进制的通过/失败模式会失效,以及取而代之的是什么

· 阅读需 11 分钟
Tian Pan
Software Engineer

你的 CI 流水线假设了一件自你加入 LLM 调用以来就不再成立的事情:运行相同的代码两次会产生相同的结果。传统的 CI 是为确定性软件构建的 —— 编译、运行测试、获得绿灯或红灯。传统的 ML 评估是为固定的输入输出映射构建的 —— 对测试集进行推理、计算准确率。Agent AI 同时打破了这两个假设,其结果是一个要么对你撒谎,要么因误报而阻塞每次合并的 CI 系统。

核心问题不在于 Agent 难以测试,而在于你现有的测试基础设施是为一个“非确定性是 Bug 而非特性”的世界设计的。当你的 Agent 在连续运行中通过不同的工具调用路径得到相同的正确答案时,确定性断言就会失败。当它产生语义等效但词汇不同的响应时,字符串比较会将其标记为回归。测试框架本身变成了噪音的来源。

LLM 应用的测试驱动开发:类比成立与失效之处

· 阅读需 12 分钟
Tian Pan
Software Engineer

一个团队使用 Claude 构建了一个 AI 研究助手。他们对 Prompt 进行了三周的迭代,向利益相关者演示了该助手,并满怀信心肠发布了它。两个月后,他们发现该助手在大约 30% 的输出中悄悄地产生虚假引用(幻觉)—— 这种失败模式之前没有人测试过,因为评估套件是在 Prompt 在演示中“感觉对了”之后才建立的。

这种模式是常态,而非例外。LLM 开发行业在很大程度上采用了测试驱动开发(TDD)的词汇 —— 评估(Evals)、回归套件、黄金数据集、LLM-as-judge —— 却忽略了 TDD 建立的最重要规则:在实现之前编写测试,而不是在实现之后。

以下是如何正确执行此操作的方法,以及 TDD 类比在哪些地方失效得非常严重,以至于字面上照搬它会让你的系统变得更糟。

评估 AI Agent:为什么只看结果会误导你

· 阅读需 12 分钟
Tian Pan
Software Engineer

你构建的一个智能体在最终输出评估中获得了 82% 的分数。你发布了它。两周后,你的支持队列里塞满了用户的投诉,抱怨智能体获取了错误的数据,使用了错误的参数调用 API,并且在错误的中期工作基础上生成了听起来很自信的回复。你回头查看追踪记录(traces)—— 发现智能体在 40% 的查询中路由都是错误的。最终输出评估从未捕捉到这一点,因为智能体往往还是误打误撞地得到了正确答案。

这是智能体评估中的核心陷阱:仅衡量最后输出的结果,无法告诉你智能体是如何到达那里的,而“到达那里”的过程正是大多数失败发生的地方。

你的 AI 产品需要评估系统

· 阅读需 9 分钟
Tian Pan
Software Engineer

每次 AI 产品演示看起来都很棒。模型生成了一些貌似合理的内容,利益相关者频频点头,每个人都带着乐观的情绪离开会议。然后产品发布了,真实用户出现了,事情开始以没人预料到的方式走向下坡路。团队手忙脚乱地修复一个故障模式,却无意中制造了另一个,经过数周的“打地鼠”后,提示词已经变成了一个 2000 个 token 的庞然大物,没人再能完全理解它了。

根本原因几乎总是相同的:没有评估系统。那些发布可靠 AI 产品的团队很早就构建了评估系统,并将其视为基础设施,而不是事后才考虑的事情。那些停滞不前的团队则将评估视为“等产品更成熟了”才需要担心的事情。到那时,他们已经陷入困境。