SuperAPI AI 工具集

automated-structural-testing-llm-based

智能体与模型

查看项目

更新于 10-16 06:50

技能介绍

用途:为 LLM 智能体编写结构化测试,而非只做端到端验收测试。它把智能体执行过程记录为轨迹(trace),对内部工具调用、参数与中间输出做断言,并借助模拟 LLM 实现确定性重放,从而快速定位回归与根因,避免昂贵的实时模型调用。

主要能力:轨迹记录(兼容 OpenTelemetry)记录调用了哪些工具、输入输出、LLM 轮次、token 数与延迟;模拟(Mock)用预设响应序列替代实时 LLM,保证测试路径稳定;断言 API 校验工具是否被调用、调用顺序、输出内容与自定义校验。方法按测试金字塔分层:底层单元测试模拟 LLM 并断言单个工具调用,中层集成测试验证多步工具链与多轮对话,顶层验收测试使用实时 LLM 与语义相似度指标。

使用方式:先梳理智能体的工具面(工具、参数、返回类型),再用 Case(user_inputs=[...]) 定义多轮用例,用 MockBedrockConverse 等构造模拟客户端并注册工具,运行用例收集 traces,最后用 Expect(traces).tool_invocations.to_include(...) 等做断言。可用 Permute 跨系统提示与模型变体测试,把通过的轨迹存为回归基线,并在 CI 中运行模拟测试。安装:pip install "generative-ai-toolkit[all]"。

适用场景:为带工具的智能体做 TDD、验证工具选择与参数、调试选错工具、构建低成本 CI 回归、测试多轮对话与工具链。

限制:参考实现面向 Amazon Bedrock Converse API,换用其他提供商需自写 mock 与轨迹收集器;模拟测试无法发现仅在真实推理中出现的涌现行为;轨迹断言更适合工具型智能体,纯对话智能体更适合语义相似度;Permute 组合会爆炸,建议限制维度;自定义轨迹属性需在生产工具中埋点。论文与代码见原文引用。