evaluation Skill:爲 Agent 系統搭建可復現的評估框架

前言

Agent 上線後,「改了一版 prompt / 換了個模型,到底變好了還是變差了」往往只能靠體感或零散試跑。傳統軟件有單元測試和 CI,但 Agent 決策路徑不固定、同題多次運行結果可能不同,也常常沒有唯一標準答案。下面介紹的 evaluation Skill,來自開源合集 Agent Skills for Context Engineering,專門指導如何構建面向 Agent 的評估體系:確定性檢查、迴歸套件、多維評分量表、質量門控,以及生產側的持續觀測與基線對比。

這是什麼

evaluation 是一份符合 Agent Skills 規範的 SKILL.md 指導文檔(Skill 元數據中版本爲 1.2.0,維護方爲 Agent Skills for Context Engineering Contributors)。它不負責替你寫評測代碼,而是在你設計或落地評估時,提供可覈對的方法論與操作順序。

與「先堆 LLM 當裁判」的常見做法不同,該 Skill 強調:先對可機器校驗的結構做確定性驗證,再在多維度量表穩定之後,才大規模使用模型評判;裁判提示設計、成對比較、校準與偏見緩解等,應交給同倉庫的 advanced-evaluation。

核心功能

以下能力均來自官方 SKILL.md 與合集 README 中的表述。

何時啓用

適合在以下場景激活該 Skill:

  • 系統化測試 Agent 表現
  • 驗證上下文工程(context engineering)改動是否達到預期
  • 度量隨時間的改進、上線前抓回歸
  • 爲 Agent 流水線建質量門控
  • 對比不同 Agent 配置
  • 對生產系統做持續評估

明確不要用本 Skill 覆蓋的工作:advanced-evaluation(裁判本身的設計)、harness-engineering(自主控制面與回滾邊界)、context-degradation(先定位具體上下文失效再度量)。

評估原則

  1. 看結果,不綁路徑:Agent 可能用不同工具鏈達到同一目標,評估應基於正確性、完整性、質量等結果標準,執行路徑僅作參考。
  2. 多維量表,避免單一總分:事實準確性、完整性、引用準確性、來源質量、工具效率等分維打分,再按業務加權;單一數字容易掩蓋某一維的嚴重失敗。
  3. 確定性優先於 LLM 評判:在產物具備可校驗結構時,先做 schema 有效性、重複鍵、量表計算、清單同步、檢索狀態、必需證據路徑等檢查,失敗則快速拒絕,避免浪費 token 或用主觀分「洗白」無效輸出。
  4. 評估預算要貼近生產:資料引用瀏覽 Agent 研究結論——token 用量、工具調用次數、模型選擇會顯著影響測得的表現方差;應在接近生產的 token 上限下評估,多 Agent 架構需與單 Agent 基線對比。

方法論要點

  • 測試集:早期可用 20–30 條用例;系統成熟後建議 50+ 條以獲得更穩定信號。按複雜度分層(simple / medium / complex / very_complex),並分別彙報各層分數。
  • 評分:各維映射到 0.0–1.0,加權彙總;一般場景通過線常取 0.7,高風險場景常取 0.9;須同時保留各維分數。
  • LLM-as-Judge:用於規模化時,提示中應包含任務說明、待測輸出、可用時的 ground truth、帶層級描述的評分尺度,以及結構化判斷與理由;評判模型宜與被測 Agent 不同模型族,以降低自我偏好。
  • 人工抽檢:邊界樣本、異常查詢、生產流量隨機樣本交人工,用於發現自動化漏檢的問題,並反哺評測標準。
  • 有狀態 Agent:對會改寫文件、數據庫或配置的 Agent,用終態斷言程序化校驗,而非規定中間步驟。
  • 持續評估:變更觸發自動跑評測、版本對比、關鍵指標回退則阻斷髮布;生產側抽樣評測,資料給出示例告警閾值——通過率低於 0.85 爲 warning、低於 0.70 爲 critical,並配合趨勢看板。

與其他 Skill 的分工

本 Skill 負責結果度量與質量門;advanced-evaluation、harness-engineering、context-degradation、context-optimization、multi-agent-patterns、tool-design、memory-systems 等分別覆蓋裁判設計、控制環、退化檢測、優化效果、協作與工具等專項評估場景。Skill 內還指向同目錄下的 references/metrics.md(設計具體指標與加權計算時可讀)。

安裝與啓用

Agent Skills 要求目錄結構,不能把單獨的 SKILL.md 平鋪成單文件,否則會破壞 references/ 等相對路徑。

Claude Code(插件市場)

在 Claude Code 中註冊插件源:

/plugin marketplace add muratcankoylan/Agent-Skills-for-Context-Engineering

安裝合集插件(包含 evaluation 等全部已發佈 Skill):

/plugin install context-engineering@context-engineering-marketplace

Skill 會根據任務上下文自動激活。

Cursor

  1. 從 Cursor Plugin Directory 的 context-engineering 條目 安裝,或克隆倉庫後將 Cursor 指向插件根目錄。
  2. Cursor 通過 Open Plugins 清單 .plugin/plugin.json 發現倉庫根目錄下的 skills/。
  3. 若只在當前項目手動安裝 evaluation,將 skills/evaluation 整目錄複製到項目內:
mkdir -p .cursor/skills
cp -R skills/evaluation .cursor/skills/

(需先在本機取得倉庫中的 skills/evaluation 目錄;用戶規則禁止在本文寫作流程中使用 git clone,請自行下載或複製該目錄。)

Codex 與通用 Agent Skills 目錄

  • Codex 項目級:複製到 .codex/skills/
  • 通用佈局:複製到 .agents/skills/
  • Claude Code 項目級:複製到 .claude/skills/

合集 README 說明:倉庫以 Open Plugins 形式分發,清單位於 .plugin/plugin.json。

典型用法

官方在 SKILL.md 中給出了可復現的僞代碼與配置片段,用於說明評估流水線形狀,而非綁定某一框架。

多維加權與通過判斷(簡化示例):

def evaluate_agent_response(response, expected):
    rubric = load_rubric()
    scores = {}
    for dimension, config in rubric.items():
        scores[dimension] = assess_dimension(response, expected, dimension)
    overall = weighted_average(scores, config["weights"])
    return {"passed": overall >= 0.7, "scores": scores}

按複雜度組織測試集(節選):

test_set = [
    {
        "name": "simple_lookup",
        "input": "What is the capital of France?",
        "expected": {"type": "fact", "answer": "Paris"},
        "complexity": "simple",
        "description": "Single tool call, factual lookup"
    },
    {
        "name": "medium_query",
        "input": "Compare the revenue of Apple and Microsoft last quarter",
        "complexity": "medium",
        "description": "Multiple tool calls, comparison logic"
    },
    # ... complex / very_complex 用例
]

先跑確定性門控,再跑質量評分:

def evaluate_pr_candidate(candidate):
    structure = run_validate_repo(candidate)
    if not structure.ok:
        return {"passed": False, "reason": "deterministic validation failed", "details": structure.errors}

    quality = run_rubric_eval(candidate)
    return {"passed": quality.overall >= 0.8, "scores": quality.dimensions}

質量門維度示例(YAML):

gate:
  deterministic:
    - schema_valid
    - required_files_present
    - no_duplicate_ids
  quality:
    factual_accuracy: min 0.85
    completeness: min 0.80
    source_traceability: min 0.90

建議的搭建順序(官方 Practical Guidance 摘要):先定義業務相關質量維 → 寫清量表層級 → 從真實用法與邊界用例建分層測試集 → 實現變更觸發的自動流水線 → 改前建立基線 → 持續追蹤趨勢並輔以人工複覈 → 將確定性失敗與質量判斷分開處理。

適用場景與注意

適合誰:正在把 Agent 從 demo 推向生產的團隊——需要回歸套件、上線門控,或要證明某次上下文/工具/多 Agent 改動確實提升了結果而非偶然。

常見坑(來自官方 Gotchas,擇要):

  • 評測過擬合到固定代碼路徑或表面模式,應對結果與語義寫標準,並定期輪換輸入。
  • 評判模型與被測模型同族導致分數偏高。
  • 評測集與訓練或 prompt 數據污染。
  • 只優化聚合分導致「分數好、體驗差」,需定期與人工判斷交叉驗證。
  • 評測集過小(官方建議至少約 50 條)或未按難度分層,容易被簡單題拉高總分。
  • 把評估當成一次性上線檢查;模型、工具與用法變化後應持續跑評測。

本 Skill 是平臺無關的原則文檔;合集 README 稱示例多爲 Python 僞代碼,便於跨環境理解,不強制安裝特定依賴。

結尾

Agent 能否「越改越好」,取決於你是否能量化結果、抓住迴歸,並在生產裏看見漂移。evaluation Skill 把這類工作拆成可執行的維度、門控與流水線步驟,並與同倉庫的其他 Skill 劃清邊界。完整內容與 references/ 見官方目錄:

https://github.com/muratcankoylan/Agent-Skills-for-Context-Engineering/tree/main/skills/evaluation

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜