Skip to content

Releases: m2dumpling/pawbot

Pawbot v0.8.1 - 委派权限与运行可靠性修复

Choose a tag to compare

@m2dumpling m2dumpling released this 18 Oct 06:38
7d69e35

本补丁修复委派任务的权限和审批继承、停止后的旧结果处理,以及 MCP 旧版 HTTP 会话过期后的重连。现有配置可以继续使用。

修复

  • 同步和后台子 Agent 继承发起回合的能力限制、审批范围与恢复确认。批准委派后,子任务写入等操作仍按配置独立审批。
  • 停止会话后使未消费的子任务结果失效,覆盖已排入消息总线和等待会话锁的结果;有效结果只消费一次,各会话保持隔离。
  • 精确识别 MCP SDK v2 的 -32600 / Session not found 并重连,不将普通工具错误或参数错误当作会话失效。

验证

  • 新增 29 项委派专项回归;真实 WebUI/TUI 客户端分别连接 Gateway,覆盖每客户端 8 条批准、拒绝、停止与恢复流程,已纳入 CI。
  • 固定条件的前后对比:委派权限 3/9 → 9/9,停止后旧结果 0/2 → 2/2,MCP 空闲过期重连失败 → 通过。
  • 发布准备 PR 通过完整 CI,包含跨平台 Python、WebUI、TUI、质量门禁、离线评测、Replay、打包及三平台安装器。干净安装 wheel 后的 Gateway/WebUI/设置链路冒烟通过。
  • 发布验收中修正一项 Windows stdin 测试:明确等待进程退出并确保清理,保留 payload、EOF 和退出码断言。修正经 PR #22 的 11 项 CI 验证。

以上是脚本 Provider 驱动真实运行链路的工程回归,未新增真实模型评测,不推导生产任务准确率或成本下降。停止不能撤销已经发生的外部写入。

升级

uv tool install --force --upgrade pawbot-ai
pawbot --version

确认版本为 0.8.1。原生 TUI 使用本 Release 的对应平台归档;每个归档均提供 SHA-256 校验文件。

完整发布说明 · 可复现修复案例

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

Choose a tag to compare

@m2dumpling m2dumpling released this 03 Oct 15:02
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 包。
发布后验证公开安装渠道,最后更新安装链接。
完整步骤见发布指南及
发布打包约定。

pawbot v0.7.3

Choose a tag to compare

@m2dumpling m2dumpling released this 28 Sep 02:37

pawbot v0.7.3

This patch release fixes two WebUI reliability issues in the v0.7.2 task
evaluation and long-running task controls.

Fixed

  • Custom task evaluation cases can now be removed from the WebUI. The delete
    action is registered and routed through the authenticated WebUI mutation
    dispatcher.
  • Stopping a long-running WebUI task now terminates child execution before the
    active turn is joined. The WebUI also ignores late events from the stopped
    turn, so repeated clicks no longer race with stale streaming state.

Verification

  • Local Python: 6,999 passed, 54 skipped, 82.89% coverage.
  • Local WebUI: 1,134 passed.
  • Ruff, basedpyright, frontend lint, and production build passed.
  • GitHub Actions passed Python 3.11/Linux, Python 3.13/Windows, WebUI,
    native TUI, Record & Replay, package smoke, installer smoke, and quality
    gates.

pawbot v0.7.2

Choose a tag to compare

@m2dumpling m2dumpling released this 27 Sep 17:11
ca0a92f

pawbot v0.7.2

This release adds DeepSeek-focused model and output handling, safer recovery
from truncated tool calls, and WebUI controls for turning saved regression
samples into task evaluation cases.

Changes

  • DeepSeek Flash and DeepSeek V4 Pro are included in the capability catalogue;
    legacy DeepSeek V4 Flash identifiers remain compatible aliases.
  • New DeepSeek model configurations default to a 65,536-token output budget;
    other providers keep their existing defaults.
  • Truncated tool-call arguments are rejected before execution. The Agent gets
    one strategy-changing recovery attempt, then receives a structured error if
    the same output limit is hit again.
  • Repeated safe-to-retry tool failures are stopped with a structured
    no-progress error instead of consuming the rest of the turn budget.
  • WebUI candidate runs display conversation summaries, and saved regression
    samples can be added to or removed from the Agent task evaluation set.

Provider compatibility

DeepSeek is the most thoroughly validated provider path in this repository.
Other providers continue to use the shared adapter. Provider-specific tuning,
tests, issues, and pull requests are welcome, especially with sanitized
reproductions.

Verification

The release candidate passed the complete GitHub Actions matrix and local
Python, WebUI, type-checking, build, package, and provider-free evaluation
checks.

pawbot v0.7.1

Choose a tag to compare

@m2dumpling m2dumpling released this 27 Sep 11:50
b64fef8

pawbot v0.7.1

提升了 Agent 的回复与响应速度,长任务不再阻塞其他各种选项和设置的点开加载。

修复内容

  • 将 Gateway 事件日志与回合上下文的磁盘工作移出事件循环,避免流式输出拖慢 WebUI 控制面。
  • 限制 WebSocket 事件日志保留量,同时保留有序断线恢复能力。
  • 优化 Windows 下 CLI Apps 目录加载,避免对每个目录项重复扫描 PATH,同时保留已安装应用的最终可用性校验。
  • 同一回合复用用于 token 预算的系统提示词,保证估算内容与实际请求内容一致。

验证

  • Python 3.11/Linux、Python 3.13/Windows、WebUI、原生 TUI、包构建、Record & Replay、三平台安装冒烟测试和质量门禁全部通过。
  • 本地 100 秒 WebUI 实测完成 5 个真实 Agent 回合,包括 exec 工具调用;设置页请求没有超时。

pawbot v0.7.0

Choose a tag to compare

@m2dumpling m2dumpling released this 23 Sep 13:10
e1718e1

Pawbot v0.7.0 adds live Agent evaluation, optional OpenTelemetry OTLP export, and MCP SDK v2 compatibility.

Highlights

  • Run a versioned 20-case synthetic incident-triage suite with pawbot eval live list/run/compare. Live provider calls require an explicit spend cap.
  • Inspect task outcome, tool trajectory, safety, token/cost estimates, latency, and per-trial traces.
  • Enable optional OTLP spans and low-cardinality metrics; the exporter remains off by default and local Trace/replay remain available.
  • MCP uses SDK v2 discovery with a narrow legacy fallback, HTTPX2 transport, and OAuth issuer validation.
  • Trace now identifies the source used for prompt-token estimates. Tool adapters can receive operation context when they implement idempotency support.

WebUI

The existing chat, Trace, Record & Replay, and MCP management screens remain in place. This release adds no new WebUI page for live evaluation or OTLP configuration; those are operated through the CLI and configuration.

Verification

  • Final main commit e1718e1 passed the complete GitHub Actions matrix.
  • Python 3.11/Linux: 7,010 passed, 15 skipped, 82.83% coverage. Python 3.13/Windows: 6,979 passed, 46 skipped, 82.82% coverage.
  • WebUI, native TUI, wheel/package smoke, Record & Replay, Linux/macOS/Windows installer checks, and quality gate passed.
  • Wheel and sdist installed in clean Python 3.11 environments. WebUI chat, Trace, offline replay (1/1 consistent), and Microsoft Learn MCP connection smoke checks passed.
  • The manual TUI release workflow built all five platform archives and checksum files. Every archive was checked for outer and internal SHA-256, executable, third-party notices, Bun 1.3.13 license, LGPL texts, source archive, relinking instructions, and source-offer file.

Evaluation limits

The bundled cases are synthetic. The saved DeepSeek responses were regraded offline after correcting keyword false negatives, using the same responses that helped calibrate the v3 oracle. Both 60-trial reports pass against that calibrated oracle; this does not establish production task quality or an improvement in general Agent capability. The optional Judge has no independent human labels or holdout set.

Checkpoint recovery cannot undo remote side effects. Unknown write outcomes still require reconciliation or explicit approval before retry.

v0.6.7

Choose a tag to compare

@m2dumpling m2dumpling released this 22 Sep 17:43

Full Changelog: v0.6.6...v0.6.7

v0.6.6

Choose a tag to compare

@m2dumpling m2dumpling released this 22 Sep 16:31

What's Changed

  • docs: clarify cross-client session continuation by @m2dumpling in #2
  • feat: add WebUI TUI continuation command by @m2dumpling in #3

New Contributors

Full Changelog: v0.6.5...v0.6.6

v0.6.5

Choose a tag to compare

@m2dumpling m2dumpling released this 21 Sep 15:12

Highlights

  • 移除 Langfuse exporter、配置、CLI、WebUI 设置和依赖,避免外部观测网络调用阻塞 Agent 主链路。
  • 保留本地 Trace、滚动回放、Record & Replay、Task Eval、Harness、个性化和记忆能力。
  • 更新中英文 README 与 usage 文档,重新构建并发布匹配的 WebUI bundle。
  • 修复 Windows exec session 关闭 stdin 后的 CI 时序误报。

Verification

  • Python: 6556 passed, 61 skipped
  • WebUI: 1126 passed
  • GitHub Actions CI: all jobs passed
  • WebUI 长任务实测:Trace、执行与回归页面正常加载,无 20 秒超时

See CHANGELOG.md for details.

v0.6.4

Choose a tag to compare

@m2dumpling m2dumpling released this 21 Sep 11:53

修复

  • 修复长任务期间 Trace、执行记录、回归样本和 Token 诊断读取阻塞 Gateway 事件循环的问题。
  • 将状态、Token 估算、录制详情、滚动候选、评测集和 Trace 详情读取移出 WebSocket 控制面。
  • 补齐 rolling replay candidate 与 Task Eval 的 WebUI 路由。
  • 执行与回归页面改为分块加载,单个慢请求不会让整页全部空白。

验证

  • Python:6930 passed,54 skipped
  • WebUI:1126 passed
  • WebSocket/WebUI 相关:614 passed,2 skipped
  • Ruff、basedpyright、WebUI 生产构建和 GitHub Actions 全部通过