快速開始
用一道有標準答案的題目走完整條路:寫需求與驗收測資、讓 AI 助手做、看閘門怎麼裁決、讀懂那張收據上的每一欄包含什麼,以及鏈驗證抓不到哪三件事。
#你需要準備兩樣東西
閘門是執行你的測資,不是問一個模型「這看起來對不對」。所以:
- 一段需求 — 說清楚要什麼。
- 一份能跑的驗收測資 — 輸入是什麼、期望輸出是什麼。
#一道題長什麼樣
驗收測資切成兩半:
| 誰看得到 | 用途 | |
|---|---|---|
| 可見 V | 代理可以讀 | 系統以它決定放行或拒交;修訂流程也只拿得到它的失敗訊息 |
| 隱藏 GT | 只有事後評分看得到 | 不得進入生成、選擇、修訂提示或停止條件 |
一份程式通過可見、卻沒通過隱藏,就是一次假交付。這是「產出看起來像需求,但不是需求」這個問題的可操作形式。
# suitespec.py — 驗收套件是「資料」,不是程式
# 套件只包含:方言、進入點名稱、輸入—期望值的字面值清單
# 執行器只跑自己的確定性渲染器從這份資料產生測試碼
為什麼「V ⊆ GT」讓「無損」這個詞失效 這裡有個我們自己踩到的坑,值得先知道:在我們用過的兩個題庫裡,隱藏測資都是可見測資的超集,所以「隱藏會過但可見不過」在構造上不可能發生。這個發現推翻了我們自己預註冊裡的一條前提。
#走一遍
# 1) 起中介,指向你的模型(LM Studio / Ollama / 雲端 API 都行)
vacant run --agent opencode --base http://localhost:1234 --model your-model
# 2) 代理跑完、行程結束 → 這就是交付點
# 系統在凍結的工作區快照上跑可見驗收
# 3) 看裁決
# 0 = 交付 20 = 拒交 22 = 基礎設施失敗
過程中你會拿到兩層東西:
行動票(每題一張) — 需求、AI 說了什麼、跑了哪幾條驗收、裁決是什麼。
收據(每次嘗試一筆 + 每題一筆裁決) — 見下。
#閱讀一張收據
收據上每一格都簽名,並鎖住前一格的雜湊。所以:
- 改一個字 → 鏈就斷在那一格。
- 任何持有公鑰的人都可以離線重算,不需要相信我們。
驗證方式:
vacant audit <name> # 重驗某個 logbook 的簽章鏈(PASS/FAIL)
我們自己保存的離線單檔檢視器(exhibit/receipts/receipt_viewer.html,0.3 MB;多方版 4.5 MB)把收據內嵌在檔案裡,零外部資源、零網路請求,存下來以 file:// 直接開也跑得完全鏈驗證。
#五種代理的實測結果
在真模型上,20 格全部符合事先寫好的判準(20 條收據鏈 / 40 筆):
| 代理 | 版本 |
|---|---|
| pi | 0.85.1 |
| OpenCode | 1.18.31 |
| Claude Code | 2.1.278 |
| Codex | 0.147.0 |
| Hermes | 0.19.0 |
#接下來
- 閘門的完整規則:驗收閘門 CONFORM
- 想看它替掉了什麼:委員會式設計在等預算下輸給多數決
- 想自己重跑:重跑方式

