# Skill/CLI eval harness 14 题 teable 操作 eval + 6 题 plugin eval + 逐次尝试统计。单源真值在本目录, 运行产物默认落 `/root/eval-rerun`(可用 `EVAL_ROOT` 覆盖)。 ## 目录 - `teable-evals.json` / `plugin-evals.json` — 题目(prompt 模板,支持 {TAG}/{WFID}/{TBL5}/{ORD}/{TBL}) - `run_evals4.py` — 启动器。支持配置: `with_skill=:`, `old_skill=...`, `auto_skill=NONE:`(触发模式:不给技能路径,靠用户级技能自动发现);`EVAL_MODEL` 换模型 - `grade_evals4.py` / `grade_plugin_evals.py` — 判分(按最终状态优先)。重判历史轮次须冻结该轮 env(`EVAL_ENV`) - `run_multiturn.py` + `grade_multiturn.py` — 两轮修正式对话 eval(pi `--session-id` 续接;判分认 recordCondition 或 recordUpdated+门控两种正确形状) - `analyze_attempts.py ROOT...` — 尝试次数分布(第几次成功/never;`EVAL_CFG` 选配置目录) - `analyze_trajectories.py` — 轨迹解析公用库(失败签名分类器) ## 一次完整 A/B ```bash EVAL_ROOT=/root/eval-rerun python3 evals/run_evals4.py iteration-X A1 \ "with_skill=/path/skill-new:/path/bin,old_skill=/path/skill-old:/path/bin-old" python3 evals/grade_evals4.py iteration-X A1 python3 evals/analyze_attempts.py /root/eval-rerun/iteration-X ``` ## 环境要求 - pi(opencode-go 凭据)+ 隔离 HOME(无用户级技能,除 auto_skill 模式用带技能副本) - 每轮独立沙箱 base;判分后清理。**一切建库仅在 agent-playground 专用空间**。 - eval-12 需低权限 PAT(sandbox-env.json 的 LOWPERM_TOKEN)