智测 OpenQA

行业与实践方法与教程

先看一条轨迹,再给对话打分

智测团队 · OpenQA(openqa.cn)阅读约 3 分钟

GitHub 上的 Arize Phoenix 用来把一次模型调用拆开:输入、工具、检索和最终回答。适合已经有对话功能、但还不知道坏在哪一步的人。不打榜,也不代替 Promptfoo 的规则断言。

这条给刚从功能测试转过来、已经有一个会调模型的功能、但还不知道失败发生在哪一步的人。材料来自 GitHub 上的 Arize-ai/phoenix。它是本地可跑的追踪工具,不是榜单,也不给模型打分。仓库里有简体中文 README。许可以仓库里的 LICENSE 为准,不要当成可以随便搬进商业产品的一句「开源即可」。

它解决什么

功能测试习惯看最后一步:页面文案对不对、接口码对不对。对话或智能体的失败经常发生在中间。最终回答像对的,但它调错了工具、检索到了别的段落,或者把上一轮的限制忘了。没有轨迹,你只能对着最后一句话争论。Phoenix 先把这一次调用拆开:输入是什么、调了哪个工具、工具返回了什么、模型最后说了什么。打分是后面的事。

它不替你写用例,也不证明回答符合退货规则。那一步用已经发过的 Promptfoo 和 DeepEval。Phoenix 回答的是:这条失败,坏在链路的哪一截。

先把界面跑起来

下面两条命令来自仓库 README,2026 年 9 月核对过。

pip install arize-phoenix
phoenix serve

不想装进当前环境时:

uvx arize-phoenix serve

终端会打印本地打开地址。用它打印的地址,不要自己猜端口。浏览器里先是空的,这是正常的。空项目说明服务起来了,还没有一次调用被记下来。

把你们的应用接上

最快的接法也写在 README 里:在项目目录运行

npx @arizeai/phoenix-cli setup

装过 Phoenix 时也可以用 px setup。它会看你用的框架和模型供应商,装对应的 OpenInference 埋点,并把轨迹送到本地 Phoenix。框架各不相同,埋点代码不要从旧博客抄。接不上就打开官方 tracing 文档,按你实际的框架写,不要猜函数名。

密钥不要写进仓库。本地 Phoenix 默认是给你自己看轨迹,不是把生产用户对话公开到网上。

打开一条轨迹时看这四格

挑一条你知道结果不对的真实问题,跑一遍被测系统,再回 Phoenix 打开这一条。只看四格,不要先看总分。

  1. 输入。用户原话在不在。系统提示里的业务规则在不在。规则没送进模型,后面的回答错了,不是模型「笨」,是用例或拼装漏了。
  2. 检索或工具。知识库场景看拿回来的段落是不是该看的那几段。调接口的场景看工具名和参数。最终答案对、工具错,传统断言发现不了,轨迹能看见。
  3. 模型输出。对照你写在 Promptfoo 里的必须出现和绝不能出现的句子。对不上,就是产品问题,不是追踪工具的问题。
  4. 耗时和 token。只用来发现异常长的空转。不要把「更短」当成质量。

看完一条,用一句话写下坏在哪一格。写不出来,说明这条轨迹还没接到你关心的那一步,先补埋点,不要急着上裁判模型。

什么时候不要用它

  • 被测系统还是确定性接口,状态码和数据库就能断言。加追踪只是多一个界面。
  • 你还没有 10 条真实问题。先抄问题和手册句子,用 Promptfoo 看红绿。
  • 想用它代替代码评审或安全扫描。它记录的是这一次调用,不是仓库里的漏洞。

你现在可以做这三件事:跑起 phoenix serve,用一条已知的错误问题打出一条轨迹,在四格里圈出坏的那一格。圈得出来,再决定要不要加 DeepEval。

觉得有用,转给同事

微信扫码

用微信扫一扫,在手机上打开后即可转发。

用 RSS 订阅

提交勘误