VIP 專屬 Agent 開發 實戰

Agent 的評測:任務完成率怎麼量

Agent 沒有標準答案可比對。這是一套可執行的任務級評測方法。

Agent 開發教程封面

單次問答可以比對標準答案,Agent 不行——完成同一個任務有很多條合法路徑。評測必須改成看最終狀態,而不是看過程。

核心概念:為每個測試任務定義「成功的可驗證條件」,讓程式判斷任務是否真的完成。

任務定義格式

{
  "id": "t_refund_01",
  "setup": {"fixtures": ["orders_seed.sql"], "user": "u_1001"},
  "task": "幫我取消訂單 ORD1000000123 並確認退款金額",
  "success": [
    {"type": "db",   "check": "SELECT status FROM orders WHERE no='ORD1000000123'",
     "expect": "cancelled"},
    {"type": "text", "contains_any": ["1,280", "1280"]},
    {"type": "no_side_effect", "tables": ["payments"]}
  ],
  "limits": {"max_steps": 8, "max_cost_usd": 0.05}
}

三類成功條件

  • 狀態條件:資料庫、檔案系統、外部系統的最終狀態。最可靠。
  • 輸出條件:回覆中是否包含關鍵資訊。次可靠,用寬鬆比對。
  • 負面條件:不該發生的事沒有發生——沒有多刪一筆、沒有寄出信。這一類最常被遺漏,卻最重要。

環境隔離

Agent 評測會真的改變狀態,所以每個測試任務都要在乾淨的環境跑。實務做法是每次測試前重建資料庫(用 fixture)並使用假的外部服務。

@contextmanager
def sandbox(fixtures):
    db = create_temp_db()
    load_fixtures(db, fixtures)
    mocks = start_mock_services()      # 假的訂單 API、寄信服務
    try:
        yield Ctx(db=db, services=mocks)
    finally:
        mocks.stop(); db.drop()

要記錄的指標

  1. 完成率:全部成功條件都通過的比例。主要指標。
  2. 部分完成率:通過一部分條件,反映「差一點就成功」。
  3. 平均步數平均成本:效率指標。
  4. 副作用違規率:負面條件被違反的比例。這一項應該是 0。
  5. 危險操作攔截率:需要確認的操作有沒有真的停下來等確認。

非決定性的處理

同一個任務跑三次可能有三種結果。單次執行的結果沒有意義,要跑多次取比例。實務上每個任務跑 3 到 5 次,用完成率而非「有沒有成功」來評估。

def eval_task(task, n=5):
    runs = [run_once(task) for _ in range(n)]
    return {
        'task': task['id'],
        'success_rate': sum(r.ok for r in runs) / n,
        'avg_steps': mean(r.steps for r in runs),
        'avg_cost': mean(r.cost for r in runs),
        'violations': sum(r.violations for r in runs),
    }

任務集的組成

  • 基本任務(40%):單一工具就能完成。
  • 組合任務(30%):需要多個工具依序使用。
  • 陷阱任務(20%):資訊不足、需要澄清、或該拒絕執行。
  • 攻擊任務(10%):含提示注入,測試 Agent 會不會被誘導。
陷阱任務的成功定義是「正確地不做事」——問清楚或明確拒絕。很多團隊的評測集只有正向任務,結果 Agent 學會了硬幹到底。
🔒

訂閱後繼續閱讀全文

本篇為訂閱者專屬內容。訂閱後可取得下列權限:

  • 解鎖全部內容權限
  • 閱讀不限篇數
  • 全站移除廣告
月卡
NT$240
開通 30 天
一次付清,開通 30 天
季卡
NT$620
開通 90 天
一次付清,開通 90 天,每天約 NT$7
年卡
NT$2,160
開通 365 天
一次付清,開通 365 天,每天約 NT$6

一次性付款,付款成功後立即開通,到期自動結束,不會再次扣款,也不需要取消訂閱。

立即訂閱

金額均為新臺幣(TWD),即實際扣款金額,不另收手續費
支援信用卡 · Apple Pay · Google Pay · WebATM · ATM 轉帳
購買須知與退款政策

延伸閱讀

更多Agent 開發 →