feat: 角色包評估的固定情境與重跑腳本 (#10)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-15 02:23:56 +00:00
co-authored by Claude Sonnet 5.5
parent db2735d9c8
commit 98d3f54f45
6 changed files with 337 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
# 角色包評估(W9)
固定情境加重跑腳本:每次改角色包(SKILL.md、規則段落、對白索引、分類提示)後重跑,輸出各版本並排的表,供人工打分。
## 重跑
```bash
python3 -I tools/eval/run_eval.py # 預設:不注入對白
python3 -I tools/eval/run_eval.py --index-dir ~/.claude/anime-companion # 連同索引檢索的對白一起評
python3 -I tools/eval/run_eval.py --model opus --out eval-out/before.md
```
需要可用的 `claude` CLI。輸出預設在 `eval-out/<時間>.md`(不入版本控制)。回覆是不給工具、在空目錄產生的純文字。
## 檔案
| 檔案 | 說明 |
| --- | --- |
| `scenarios.json` | 7 個固定情境:報錯、拒絕請求、完成任務、危險操作確認、承認錯誤、打招呼、說明計畫。含預期的功能標籤與人工打分的檢查重點 |
| `variants.json` | 要並排比較的版本(角色 × 強度);加版本就在這裡加一行 |
| `run_eval.py` | 重跑腳本 |
| `test_run_eval.py` | 測試;也檢查移植的規則字串仍與 TypeScript 一致 |
## 輸出
1. Haiku 分類對照表:每個情境預期與實際的功能標籤,列出誤判。
2. 每個情境一張表:各版本的回覆並排,附「分數(1~5)」「備註」兩欄留白。
## 流程
1. 改動前先跑一次存成 `before.md`,改動後再跑。
2. 人工打分,把結果與結論貼到對應議題的留言。
3. Haiku 分類誤判多時,在議題記錄誤判的情境,並提出改進(調整分類提示、標籤定義或補範例)。
規則段落、分類提示與檢索邏輯是 `plugins/anime-companion/hooks` 的移植;改動 `rules.ts`、`classify.ts`、`retrieval.ts` 時要同步 `run_eval.py`。
## 測試
```bash
cd tools/eval && python3 -I -m unittest discover
```