用途:对比 MCP 工具在目标版本与基线版本间的行为差异,通过预置故事和自定义故事运行,结合 diff 分诊识别回归。
主要能力:解析 --baseline(必填)、--agents、--stories、--all-stories、--keep-container、--model 等参数;对 src/ha_mcp/ 做 git diff 并按工具模块、核心代码、工具类分类;从 tests/uat/stories/catalog/s*.yaml 选择预置故事,并至少设计 1 个自定义故事写入 /tmp/custom_c<NN>.yaml;分别在基线与目标版本运行故事,用 ha_query.py 逐条验证;读取会话文件做白盒工具调用分析;按评分矩阵给出 pass/partial/fail/unverified,并比较计费 token、工具调用数、时长等指标;最后更新 local/uat-results.jsonl 并输出报告。
使用方式:工作目录须为 worktree/uat-stories 工作树根(含 pyproject.toml)。示例:/bat-story-eval --baseline v6.6.1;/bat-story-eval --baseline v6.6.1 --agents gemini,claude;/bat-story-eval --baseline v6.6.1 --stories s01,s02;/bat-story-eval --baseline v6.6.1 --all-stories --agents claude --model haiku。运行故事用 uv run python tests/uat/stories/run_story.py,验证用 uv run python tests/uat/stories/scripts/ha_query.py,工具描述大小用 uv run python tests/uat/stories/scripts/measure_tools.py。
适用场景:MCP 工具版本升级前的回归评估、工具选择与错误恢复能力对比、token 成本变化排查。
限制:--baseline 必填;需先跑预置故事再跑自定义故事;每条故事运行后须立即验证;容器需复用;自定义 YAML 放 /tmp/;计费 token 等次要指标仅作参考,不单独判定失败;KV 缓存未命中属提供方行为,非代码回归。