SuperAPI AI 工具集

opik-test

测试与质量

查看项目

更新于 10-15 20:14

技能介绍

用途:把一次失败的 Opik trace 或用户描述的失败,固化为可重复运行的回归测试项,而不是写 pytest 文件或散文式测试说明。完成标准是:Opik 中存在一条能复现该失败的测试项,携带失败输入(已知时含期望输出),并有一到两条在坏 trace 上会失败、在正确输出上会通过的二元断言;该项位于按项目命名的套件中,读回确认后可供 /opik-compare 运行。

主要能力:入口为 /opik-test <trace-id>、/opik-test <失败描述>,或紧接 /opik-explain 之后调用。可推断套件名(默认 <project>-regressions)、项目、期望输出与执行策略(间歇性失败时 runs_per_item: 3、pass_threshold: 2)。通过 SDK 读取 trace 内容与 span,取原始输入、实际输出和根 span 名(入口点);断言为 LLM 判官可判 pass/fail 的英文陈述,每个断言只对应一种失败模式,最多两条,优先正向表述,精确答案可放入 data.expected_output。写入时按 source_trace_id 去重,复用已有套件,不重复创建。

使用方式:需 Opik 可达(存在 ~/.opik.config 或设置 OPIK_API_KEY,否则提示先运行 opik configure)。SDK 路径示例:client = opik.Opik();trace = client.get_trace_content(tid);project = client.rest_client.projects.get_project_by_id(trace.project_id).name;spans = client.search_spans(project_name=project, trace_id=tid)。套件用 client.get_or_create_test_suite(name=..., project_name=..., tags=["regression"]),插入前用 suite.get_items(filter_string=f'data.source_trace_id = "{tid}"') 去重。写入后读回并记录套件版本。托管 MCP 连接时可用 test_suite.create 与 test_suite_item.upsert。

适用场景:把线上或评测中发现的失败案例沉淀为回归集,供修复后由 /opik-compare 验证。

限制:本技能只捕获,不运行套件(运行属 /opik-compare),也不修改应用代码;遇到真实阻塞(无配置、找不到 trace、trace 无输入、行为不明确)时停在最早阻塞点并只给一个下一步;不写 pytest/vitest 文件,不用笼统断言,不逐 trace 新建套件,不转述输入而应原样存储。若未安装 opik 技能,应说明并参考 https://www.comet.com/docs/opik/。