Agent Testing Patterns 是一套用于测试 AI 智能体系统的模式集合,适用于那些会使用工具、做出决策并产生非确定性输出的智能体。
一、测试挑战与应对策略 资料列出了智能体测试中的主要挑战及对应策略:
- 非确定性输出:由 LLM 随机性导致,策略是断言结构而非精确文本。
- 工具使用序列:由智能体自主性导致,策略是验证工具调用而非调用顺序。
- 多轮状态:由对话上下文导致,策略是基于快照的断言。
- 成本:由 API 调用导致,策略是在单元测试中 Mock LLM。
- 延迟:由 API 往返导致,策略是并行执行测试。
- 不稳定性:由模型更新导致,策略是语义断言而非字符串匹配。
二、智能体测试金字塔 资料给出三层结构:
- 单元测试(底层,数量最多):测试工具实现、解析器、校验器,不调用 LLM。
- 集成测试(中层,数量适中):测试工具执行、状态管理,使用 Mock LLM。
- E2E 智能体测试(顶层,数量少、成本高):使用真实 LLM 运行完整智能体循环。
三、单元测试(不调用 LLM) 包括工具实现测试与响应解析器测试。示例使用 pytest,测试文件读取工具的正常执行、文件缺失、输入校验,以及工具调用解析的正常与畸形输入。
四、集成测试(Mock LLM) 提供 MockLLMClient 类,记录调用并依次返回预设响应。示例测试智能体先搜索再回答的工具执行序列,以及会话上下文保持的状态管理测试。
五、E2E 测试(真实 LLM) 采用结构化断言(如验证文件被创建、内容包含 print、可编译)与语义断言(如长度范围、包含相关术语),避免精确字符串匹配。
六、评估指标 定义 AgentEvalResult 数据类,包含任务是否完成、工具调用次数、token 使用量、延迟毫秒、错误恢复次数,并提供 evaluate_agent 函数对测试用例批量评估。
七、回归测试 包括黄金文件测试(确保工具调用格式未变)与基准套件(对预设用例断言使用的工具集合与 token 上限)。
八、反模式 资料列出六类反模式:断言精确 LLM 输出、单元测试不 Mock、只测正常路径、不追踪成本、忽略非确定性、测试智能体内部状态。
该资料以代码示例为主,未提供安装命令、收费信息或具体平台支持说明。