指南
在候選之間選擇
oloproof select 在一個系統的多個版本中,選出滿足每項要求的最佳版本,並單獨說明它是否真的領先於下一個。比如你有三個代理、兩個提示詞或四種檢索設定,以及一組要求時,就可以用它。
為什麼不直接選數字最好的
選擇數字越過門檻的最便宜候選有兩個問題。在 90% 的門檻下測得 91%,只高出一個點,落在一千個案例的雜訊之內。而當你同時檢視多個候選時,靠運氣越過門檻的那個正是你會選中的。所以每個候選必須先獨立確立每條規則,並且因為檢視了多個候選而使用更嚴格的信賴水準:三個候選、95% 的政策時,每個候選以 98.33% (1 - 0.05/3) 判定。只有通過所有規則的候選才會排名,更便宜的候選永遠不能用成本換取一條安全規則。
宣告一次選擇
在專案旁邊寫一個選擇檔,並在專案的 release.yaml 下判定它:
select:
candidates:
agent_a: run_01JC8Q2X7D
agent_b: agent_b.yaml
agent_c: agent_c.yaml
objective:
metric: cost_per_task
direction: minimize候選可以是一個已儲存的執行 id,也可以是 oloproof select 會先執行的專案檔。可以重複使用的執行不會產生新成本。政策只能包含執行規則,且必須關閉提前停止。
oloproof select select.yaml
oloproof select select.yaml --save--save 也會把這次選擇寫入本機 workbench 的 Candidates 下。
解讀答案
有三種結果:
- 選出了一個候選,且它對第二名的領先已確立:兩者在目標上的配對比較為 PASS。
- 選出了一個候選,但它的領先未確立:根據這些證據,第二名同樣是站得住的選擇。
- 沒有候選合格:會列出每個候選的規則及其答案,讓你看到缺了什麼。
選出候選時命令以 0 結束,沒有候選合格時以 3 結束。
一個完整範例
三個代理必須達到至少 90% 的成功率和至多 1% 的違規率;目標是每項任務成本最低。
| 代理 | 成功率 | 違規率 | 每項任務成本 |
|---|---|---|---|
| A | 94% | 0.5% | $18 |
| B | 91% | 0.1% | $12 |
| C | 96% | 2% | $30 |
每個都以 98.33% 判定。在 1,000 個案例時沒有代理合格:A 的違規率尚未證明低於 1%,B 的 91% 離 90% 太近而無法確立,C 突破了違規上限。答案是「沒有候選合格」,並附上每個候選缺少的內容。在 3,000 個案例時,A 確立了兩條規則並被選中。B 比較便宜,但它的成功率仍未確立,所以從不參與排名:憑數字選 B,等於發布一項沒有人證明過的要求。
分享一個選擇
oloproof select select.yaml --save 為工作台保存選擇。oloproof push --selection ID 透過專案的 egress 政策,將它與每個候選的執行一起傳送到託管工作區;ID 是 .oloproof/bundles/ 下的資料夾名稱,或選擇的摘要。工作區在保存之前,會依據這些執行判定時所用的政策,從它持有的執行重新做一次選擇,只有結果相同時才保存:結果或文字被修改過的選擇、指向專案沒有的執行的選擇,或引擎從這些執行中不會做出的選擇,會被拒絕,且不保存任何內容。因此,推送之前請先按選擇的政策判定候選的執行。專案的 Candidates 頁面會列出它,它的頁面與本機工作台的呈現完全相同。
Owner 或 Admin 可以在選擇的頁面上為它建立證據頁面:結果、水準,以及每個候選的名稱、執行 id 和在校正水準下的規則,標示 "Reported by the developer",從不包含案例內容。