Skip to content

Pawbot v0.8.0 - Promptfoo 评测接入与安装可靠性改进

Choose a tag to compare

@m2dumpling m2dumpling released this 03 Oct 15:02
· 0 commits to f30bba49ec3826eabf13fc9309d8c574f74df0f7 since this release
3ace931

Pawbot v0.8.0:Promptfoo 评测接入与安装可靠性改进

已发布:GitHub Release、
PyPI pawbot-ai 0.8.0。
发布 tag 指向 main 提交 3ace931,五个平台 TUI 归档及对应 SHA-256 文件均已上传。

本版将真实模型评测迁移到固定版本 Promptfoo,移除重复的自研评测管理层,
保留 Agent 的运行时验证、工具安全边界及 Trace/Replay。同时补齐 WebUI
资源打包与安装后检查,并修复自定义端口下打开本地 WebUI 的链接。

新增与改进

  • 接入 Promptfoo 0.123.1,提供 10 个边界明确的脱敏/合成诊断用例,
    默认每个运行 3 次,支持 JSON、HTML 和本地浏览器报告。
  • 每个 Trial 独立创建 Provider、工具注册表、临时目录和 Trace。
    Python 适配器直接驱动真实 AgentRunner,工具执行使用固定本地 Fixture,
    不执行真实 shell 命令或写入用户工作区。
  • 公共确定性评分检查执行健康度、工具取证与最终结构化事实。
    可选 LLM Judge 提供解释质量软分,不能覆盖硬断言。
  • 报告摘要分开统计执行错误与质量失败、Agent 与 Judge Token,
    并校验 baseline/candidate 的用例、评分器和模型参数是否可比。
  • WebUI 的哈希资源纳入正常 Git 提交,构建及 wheel/sdist 检查校验本地资源引用。
    增加从干净安装包启动真实 Gateway 的资源、鉴权、设置和会话恢复检查。
  • Channels → WebSocket 的 Open local WebUI 链接使用当前浏览器地址,
    支持自定义端口和 HTTPS,避免跳到写死的 localhost 端口。
  • 稳定完整测试中的 Markdown 初始化与运行时 checkpoint 等待。

使用方式变化与迁移

旧自研评测工作台、管理 API、pawbot eval live、旧 catalog 与专用导出路径已移除。
需要使用这些入口的脚本应改为源码仓库中的 evals/promptfoo。

TaskContract、工具沙箱与审批边界、Trace、Record & Replay、
pawbot harness run 和 pawbot eval run 保留。现有本地录制与报告不删除,
也不会把旧回答或草稿自动转为新用例的正确答案。日常对话仍使用 Pawbot WebUI。

Promptfoo 是开发者工具,不随 pip install pawbot-ai 安装。
需要 Python 3.11+、uv 和 Node.js 22.22.0+,无需下载 Promptfoo 源码或启动 Gateway。
从源码仓库根目录开始,在 Windows PowerShell 中执行:

uv sync --dev
cd evals/promptfoo
$env:PROMPTFOO_PYTHON = (Resolve-Path ../../.venv/Scripts/python.exe).Path
npm ci
npm test
npm run validate

上述检查不请求模型。配置好 Pawbot 模型后,先执行一个真实用例、一次 Trial:

npm run eval -- --filter-first-n 1 --repeat 1 --no-table
npm run view

浏览器访问 http://127.0.0.1:15500/eval,选择报告、筛选 Case、打开详情查看
评分理由、工具观察和 Transcript 路径。完整套件使用 npm run eval -- --no-table;
真实评测会消耗模型额度。macOS/Linux 的 Python 路径、Judge、版本对比和
新增 Bad Case 操作见使用指南及
评测目录 README。

已完成的验证

以下是版本准备之前已合并实现的验证记录,并非本说明编辑时重新执行的全量测试:

  • 本地 Python 全量:7,011 通过、54 跳过,覆盖率 83.03%;
    WebUI 1,134 通过,TUI 164 通过;lint、严格类型检查和构建通过。
  • 干净安装 wheel 后,3 项真实 Gateway 冒烟通过;
    浏览器点验模型配置新增、修改、删除、设置保存和自定义端口导航通过。
  • 固定诊断套件真实模型运行 30/30 Trial 通过,执行错误为 0;
    后续安装验收的单用例、单 Trial 真实评测也通过。
  • 合并后 main 提交 3a65821 的
    11 项 GitHub Actions CI 全绿。

最终发布前,PR #18 通过了
11 项 CI。
五个平台 TUI 构建与上传及
Python 包构建与 PyPI 发布均成功。
本说明保留上述历史验证记录;发布源码以 v0.8.0 tag 为准。

评测边界

该套件验证固定证据下的诊断决策、取证与事实诚实性,
不代表完整 AgentLoop 的端到端成功率、生产准确率或行业 Benchmark 成绩。
自然语言解释的语义质量需结合 Judge 与原始 Transcript 审阅;
Judge 尚无独立人工校准,不应把软分称为准确率。

CI 只运行无需模型 API Key 的适配冒烟和断言测试;真实模型评测需手动运行。
更换用例、验收标准或模型后不能直接宣称版本质量提升;
源码未变化时的两份报告只是重复测量。

发布顺序

两条发布 workflow 都按精确 tag 手动触发,创建 GitHub Release 不会自动发布。
先为精确 tag 构建并上传五个平台同版本 TUI 归档及校验文件,
再发布 GitHub Release 和 Python 包。
发布后验证公开安装渠道,最后更新安装链接。
完整步骤见发布指南及
发布打包约定。