iT邦幫忙

2025 iThome 鐵人賽

DAY 27
0
自我挑戰組

從讀書筆記到可落地 AI:LangChain、LangSmith 與 Agent 工具 30 講系列 第 27

Day 27|Agent Design - Agent Service Evaluation - 用LangSmith實現

  • 分享至 

  • xImage
  •  

目標先講清楚:

  1. 針對 Day 26 Hamel提供AI服務評估的方法論,這邊改使用LangSmith實現
  2. 但就算有以下的工具,驗證案例跟資料收集還是需要人工

LangSmith 建立自動化Evaluation流程

https://ithelp.ithome.com.tw/upload/images/20251012/20178568lthwJY9mg3.png

當你已有測試案例與資料、希望快速對 Agent(或任意 LLM 應用)做系統化評估時,LangSmith 提供了開箱即用的 UI 與可觀測能力,能把「資料集 → 批次執行 → 評估器 → 指標與報表 → 追蹤回寫」串成一條龍。

LangSmith 的優點

https://ithelp.ithome.com.tw/upload/images/20251012/20178568JRNUZjNwSw.png

  1. 與 Prompt Hub 整合:可直接調整 LLM-as-judge 的評估 Prompt,快速迭代評估標準。
  2. 清楚的 UI:可在介面中檢視每一次 run、對話上下文、工具調用、評分與失敗案例,方便 Debug 與回歸分析。

LangSmith 的限制/考量

  1. 方案與額度:Developer(開發者)方案有免費額度,但仍需留意配額管理與成本。
  2. 資料存留:若合規要求測試與評估結果需回存公司資料庫,就不適合使用LangSmith。
  3. UI 設定複雜度:在介面上配置多種 Evaluator(含自訂判準)需要一點熟悉成本。

實務上可結合LangChain開源框架(如 openevalsevals-agent),把評估邏輯維持在程式碼層。


LangSmith + LangChain開源框架 適用情境

可以達成:

  1. 用 LangSmith 內建 Evaluator 直接評分輸出
  2. LangSmith+AgentEvals:驗證 Agent 是否「照流程用對工具」
  3. LangSmith+OpenEvals:評估多輪對話成效
  4. 校準 LLM-as-Judge 與專家期望(需要人工標註

適用情境 1|用 LangSmith 內建 Evaluator 直接評分輸出

重點

  • 不寫程式就能讓 LLM-as-judge 依評分規範給分。
    1. 修改在langSmith上pre-built的評估器(evaluator) - LLM-as-a-judge 的提示詞
    1. 評估器設定中包含的其他要素
    • 在設定評估器時,必須配置數據流的輸入和輸出,可以來自資料集
    • 可以不提供參考輸出(Reference outputs)

適用情境 2|LangSmith+AgentEvals:驗證 Agent 是否「照流程用對工具」

為什麼要看「軌跡」

  • 最終答案對 ≠ 流程正確。Agent 可能 沒調用應該用的工具,或走了低效路徑(甚至 幻覺 工具結果)。
  • 因此需評估 訊息+工具調用序列(trajectory),而不只看最終輸出。

AgentEvals提供的評估方式
1:軌跡匹配(Trajectory Match)- create_trajectory_match_evaluator

模式 匹配標準 適用情境
Strict 工具集合+順序均需完全相同 嚴格 SOP(如先查政策再動作)
Unorder 工具集合相同,順序不拘 動作彼此獨立,順序不影響
Superset 實際輸出是參考的超集 允許額外調用,但關鍵工具必須出現
Subset 實際輸出是參考的子集 強調效率,避免多餘工具

2:LLM-as-Judge - create_trajectory_llm_as_judge

  • 讓 LLM 依「邏輯連貫、有效進展、步驟效率」等準則評斷流程品質。
  • 適用於工具之外的「推理步驟」與「對話內容」評閱。

最後再把結果傳回langSmith


適用情境 3|LangSmith+OpenEvals:評估多輪對話成效

為什麼需要多輪模擬

  • 大多數 LLM 應用採 聊天互動。只看單輪答覆無法覆蓋追問、改變目標、澄清等情境。

模擬所需要素

  • 應用程式介面:接受訊息與 thread id,回傳回覆(可是 LangChain 或自研)。
  • 模擬使用者(Sim User):使用create_multiturn_simulator,以 Persona 提示(例:不滿、要求退款的顧客)模擬使用者的回覆。
  • 評估器:如 使用者滿意度 / 問題解決 / 對話語氣(可用 create_llm_as_judge)。
  • 停止條件:最大輪數或 可呼叫函式 判定(例如「確認無其他可協助事項」)。

最後再把結果傳回langSmith


適用情境 4|校準 LLM-as-Judge 與專家期望(需要人工標註)

目的

  • 人類標記資料 建立/校準評估器,追蹤建立的評估器與專家標籤的一致性。

操作步驟

  1. 收集樣本+定義標準:例「食譜標題不可含多餘形容詞」→ 18 個樣本。
  2. 建立回饋鍵&標記:新增 “no superfluous adjectives”,逐筆標記符合/不符。
  3. 設計評審提示:在 evaluator playground 撰寫系統提示與格式。
  4. 校準(Start alignment):計算初始一致性(例:72%)。
  5. 迭代提示:加入排除條件與範例,觀察一致性變化(56% → 78%)。
  6. 換更強評審模型:如改用 O4 Mini,一致性提升(例:89%)。
  7. 儲存評估器:成為可重用之「LM-as-judge」。

接下來要做什麼

回到context的部分,透過Drew Breunig 在 Databricks 大會分享DSPy的用法,評估DSPy可以怎麼用在system prompt


參考資源

1.langchain-ai - openevals
2.langChain-Evaluation
3.Improve LLM-as-judge evaluators using human feedback
4.How to evaluate agent trajectories with AgentEvals
5.Simulating & Evaluating Multi turn Conversations
6.No Code LangSmith Evaluations


上一篇
Day 26|Agent Design - Agent Service Evaluation - LLM as a Judge
系列文
從讀書筆記到可落地 AI:LangChain、LangSmith 與 Agent 工具 30 講27
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言