国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何評估智能體效果呢?LangChain 團隊的經驗總結

人工智能
LangSmith Assist 需要連接真實的 LangSmith API。對真實服務運行評估既慢又貴。更好的辦法是把 HTTP 請求記錄到文件系統,測試時重放它們。Python 可以用 vcr;JS 的話,可以通過 Hono app 代理 fetch 請求。

去一個月,LangChain 基于 Deep Agents 框架交付了四個應用:

  • DeepAgents CLI: 一個編碼 agent
  • LangSmith Assist: LangSmith 內置的智能助手
  • Personal Email Assistant: 能從用戶交互中學習的郵件助手
  • Agent Builder: 無代碼 agent 搭建平臺

在開發和部署這些 agent 的過程中,團隊為每個應用都配置了評估系統,積累了不少實戰經驗。這篇文章會深入探討評估深度 agent 的幾個關鍵模式:

  1. 深度 agent 需要為每個測試用例定制測試邏輯 —— 每個案例都有自己獨特的成功標準
  2. 單步運行 特別適合驗證特定場景下的決策(還能省 token)
  3. 完整輪次運行 適合測試 agent 的"最終狀態"
  4. 多輪對話測試 能模擬真實用戶交互,但需要保持測試可控
  5. 環境配置很關鍵 —— 深度 agent 需要干凈、可復現的測試環境

術語說明

先解釋幾個后文會用到的概念。

Agent 的運行方式:

  • 單步 (Single step): 限制核心 agent 循環只運行一輪,看它會采取什么行動
  • 完整輪次 (Full turn): 讓 agent 完整處理一次輸入,可能包含多次工具調用
  • 多輪對話 (Multiple turns): 讓 agent 完整運行多次,模擬用戶和 agent 之間的多次交互

圖片圖片

可以測試的內容:

  • 執行軌跡 (Trajectory): agent 調用了哪些工具,傳了什么參數
  • 最終響應 (Final response): agent 返回給用戶的最終回復
  • 其他狀態 (Other state): agent 運行過程中產生的其他內容(比如文件、制品等)

圖片圖片

智能體評估實戰

1.深度 Agent 的每個測試用例都需要定制化邏輯

傳統的 LLM 評估流程很直接:

  • 構建示例數據集
  • 寫一個評估器
  • 用應用處理數據集生成輸出,然后用評估器打分

每個數據點的處理方式完全一樣 —— 跑同樣的應用邏輯,用同樣的評估器打分。

圖片圖片

深度 Agent 打破了這個假設。除了最終消息,還需要測試更多內容。每個數據點的"成功標準"可能完全不同,需要針對 agent 的軌跡和狀態做特定的斷言。

看個例子:

圖片圖片

有個日歷調度 agent,能記住用戶偏好。用戶說"記住,不要在早上 9 點前安排會議"。需要驗證這個 agent 是否在文件系統中更新了自己的記憶。

為了測試這個場景,可能需要驗證:

  • agent 是否對 memories.md 文件調用了 edit_file
  • agent 是否在最終消息中告知用戶記憶已更新
  • memories.md 文件是否真的包含了不安排早會的信息??梢?

用正則表達式查找"9am"

或者用 LLM-as-judge 配合特定成功標準,做更全面的文件更新分析

LangSmith 的 Pytest 和 Vitest 集成支持這種定制化測試??梢葬槍γ總€測試用例,對 agent 的軌跡、最終消息和狀態做不同的斷言。

# 標記為 LangSmith 測試用例
@pytest.mark.langsmith
def test_remember_no_early_meetings() -> None:
    user_input = "I don't want any meetings scheduled before 9 AM ET"
    # 可以把 agent 的輸入記錄到 LangSmith
    t.log_inputs({"question": user_input})

    response = run_agent(user_input)
    # 可以把 agent 的輸出記錄到 LangSmith
    t.log_outputs({"outputs": response})

    agent_tool_calls = get_agent_tool_calls(response)

    # 斷言 agent 調用了 edit_file 工具來更新記憶
    assert any([tc["name"] == "edit_file"and tc["args"]["path"] == "memories.md"for tc in agent_tool_calls])

    # 用 LLM-as-judge 記錄反饋: 最終消息是否確認了記憶更新
    communicated_to_user = llm_as_judge_A(response)
    t.log_feedback(key="communicated_to_user", score=communicated_to_user)

    # 用 LLM-as-judge 記錄反饋: 記憶文件是否包含正確信息
    memory_updated = llm_as_judge_B(response)
    t.log_feedback(key="memory_updated", score=memory_updated)

關于如何使用 Pytest 的通用代碼示例,可以查看這份文檔:

這個 LangSmith 集成會自動把所有測試用例記錄到實驗中,這樣就能查看失敗用例的 trace(方便調試),還能跟蹤結果的變化趨勢。

2.單步評估很實用,效率也高

圖片圖片

在深度 Agent 的評估中,大約一半的測試用例都是單步評估,也就是說,在特定的輸入消息序列之后,LLM 會立即做什么決策?

這對驗證 agent 在特定場景下是否用正確的參數調用了正確的工具特別有用。常見的測試場景包括:

  • 是否調用了正確的工具來搜索會議時間?
  • 是否檢查了正確的目錄內容?
  • 是否更新了記憶?

回歸問題往往出現在單個決策點,而不是整個執行序列。如果用 LangGraph,它的流式能力可以在單次工具調用后中斷 agent 來檢查輸出 —— 這樣能在不跑完整個 agent 序列的情況下及早發現問題。

在下面的代碼中,手動在 tools 節點前設置了一個斷點,這樣就能輕松地讓 agent 只跑一步。然后就可以檢查單步之后的狀態并做斷言。

@pytest.mark.langsmith
def test_single_step() -> None:
 state_before_tool_execution = await agent.ainvoke(
     inputs,
     # interrupt_before 指定要在哪些節點前停止
     # 在 tool 節點前中斷,就能檢查工具調用參數
     interrupt_before=["tools"]
 )
 # 可以看到 agent 的消息歷史,包括最新的工具調用
 print(state_before_tool_execution["messages"])

3.完整輪次運行能看到全貌

圖片

把單步評估當作"單元測試",確保 agent 在特定場景下采取預期行動。而完整輪次運行也很有價值 —— 能看到 agent 端到端執行的完整畫面。

完整輪次運行可以從多個角度測試 agent 行為:

1) 執行軌跡: 評估完整軌跡的一個常見方法是確保某個特定工具在執行過程中的某個時刻被調用了,但不關心具體時機。在日歷調度的例子中,調度器可能需要多次工具調用才能找到適合所有參與者的時間段。

圖片圖片

2) 最終響應: 有時候最終輸出的質量比 agent 走的具體路徑更重要。在編碼和研究這類開放式任務中,這種情況更常見。

圖片圖片

3) 其他狀態: 評估其他狀態和評估 agent 的最終響應很相似。有些 agent 不是以聊天格式回復用戶,而是創建制品。在 LangGraph 中檢查 agent 的狀態,就能輕松查看和測試這些制品。

  • 對于編碼 agent → 讀取并測試 agent 寫的文件
  • 對于研究 agent → 斷言 agent 找到了正確的鏈接或來源

完整輪次運行能看到 agent 執行的全貌。LangSmith 把完整的 agent 輪次以 trace 的形式展示,既能看到延遲和 token 使用量這些高層指標,也能分析每次模型調用或工具調用的具體步驟。

4.多輪對話測試模擬真實用戶交互

圖片圖片

有些場景需要測試 agent 在多輪對話中的表現,也就是多個連續的用戶輸入。挑戰在于,如果直接硬編碼一系列輸入,一旦 agent 偏離了預期路徑,后續硬編碼的用戶輸入可能就不合理了。

團隊的解決方案是在 Pytest 和 Vitest 測試中加入條件邏輯。比如:

  • 運行第一輪,然后檢查 agent 輸出

a.如果輸出符合預期,繼續下一輪

b.如果不符合預期,提前讓測試失敗(因為可以靈活地在每步之后加檢查,這個方案可行)

這種方法可以運行多輪評估,而不用對 agent 的每個可能分支都建模。如果想單獨測試第二輪或第三輪,只需從那個點開始設置測試,配上合適的初始狀態就行。

5.搭建合適的評估環境很重要

深度 Agent 是有狀態的,專門用來處理復雜的長時任務 —— 通常需要更復雜的環境來做評估。

不像簡單的 LLM 評估,環境通常只包含幾個無狀態工具,深度 Agent 需要為每次評估運行提供一個全新、干凈的環境,才能保證結果可復現。

編碼 agent 就是個典型例子。Harbor 為 TerminalBench 提供了一個在專用 Docker 容器或沙箱中運行的評估環境。對于 DeepAgents CLI,團隊用了更輕量的方案: 為每個測試用例創建一個臨時目錄,在里面運行 agent。

總結一下: 深度 Agent 評估需要每個測試都能重置的環境 -- 否則評估會變得不穩定,難以復現。

小技巧: Mock API 請求

LangSmith Assist 需要連接真實的 LangSmith API。對真實服務運行評估既慢又貴。更好的辦法是把 HTTP 請求記錄到文件系統,測試時重放它們。Python 可以用 vcr;JS 的話,可以通過 Hono app 代理 fetch 請求。

Mock 或重放 API 請求能讓深度 Agent 評估更快、更容易調試,特別是當 agent 嚴重依賴外部系統狀態時。 (這個很重要,Mock假接口可以幫我快速打通流程,驗證輸入和輸出有效性,這個也是筆者經常調試的一個手段)

責任編輯:武曉燕 來源: ChallengeHub
相關推薦

2022-03-14 10:20:15

人工智能學習高效

2025-12-08 09:15:32

2009-10-15 09:27:00

2011-07-21 13:40:17

java

2009-09-16 17:13:54

學習Linq

2009-09-29 16:32:11

OJB Hiberna

2009-08-19 09:24:43

AJAX引擎經驗總結

2010-03-23 11:39:49

云計算

2010-03-25 13:42:14

云計算

2010-05-19 17:24:55

MySQL編碼

2010-04-21 14:53:46

Oracle游標

2011-07-08 13:15:52

JSP

2009-09-08 10:57:55

LINQ查詢操作

2010-06-12 17:37:18

UML實踐指南

2009-11-17 11:24:00

PHP應用技巧

2009-09-08 16:02:47

Linq使用Group

2009-09-16 17:44:54

LINQ to SQL

2009-09-11 13:29:31

LINQ查詢操作

2009-10-22 15:07:12

綜合布線工程

2009-08-20 17:35:47

Servlet和JSP
點贊
收藏

51CTO技術棧公眾號

伊人天天综合| 亚洲欧洲另类精品久久综合| 日韩一区精品字幕| 又黄又爽又色视频| 欧美精品乱码久久久久久| 亚洲视频精选| 少妇特黄a一区二区三区 | 日本中文字幕一区二区视频| 欧美自拍小视频| 精品欧美一区二区久久| 日韩一区二区在线| 青青草原av在线播放| 日韩精品自拍偷拍| 欧美在线视屏| 日韩av片网站| 亚洲欧美综合图区| 免费日韩一区二区| 亚洲s色大片在线观看| 欧美丰满少妇xxxxx| 麻豆精品视频在线观看| 岛国最新视频免费在线观看| 欧美一级视频免费在线观看| 92精品国产成人观看免费| 视频在线这里都是精品| 亚洲自拍av在线| 亚洲欧洲www| 国产精品无码免费专区午夜| 91成人在线播放| 久久亚洲不卡| 无线免费在线视频| 久久久在线视频| 国产一区二区福利| 久草中文在线| 成人性生交大片免费看小说| 国产精品毛片久久久久久久| 欧美极度另类| 免费h精品视频在线播放| 午夜精品久久久久久| 好吊妞国产欧美日韩免费观看网站| 国产又爽又黄ai换脸| 欧美一卡二卡在线| 精品福利av| 免费在线视频一级不卡| 国产精品igao视频| 亚洲人一二三区| 久久久伦理片| 中文字幕第80页| 伦理中文字幕亚洲| 成人avav影音| 国产综合av| 91麻豆天美传媒在线| 亚洲国产97在线精品一区| 男女精品视频| 视频在线观看入口黄最新永久免费国产 | 国产精品欧美久久久久一区二区| 成人国产激情| 日本黄色片一级片| 亚洲欧美制服第一页| 国产一区二区h| 日韩中文视频| 日韩免费毛片视频| 日韩视频免费看| 国产欧美视频一区二区| 国产精品麻豆| 婷婷免费在线观看| 97色在线视频观看| 中文字幕中文在线不卡住| 欧美黄色影院| 国产女王在线**视频| 亚洲专区中文字幕| 欧美日本一区二区| 喷水一区二区三区| 日韩大片欧美大片| 欧美女人性生活视频| 国内伊人久久久久久网站视频| 一区二区在线观看视频| 亚洲欧美日韩高清在线| 香蕉视频在线看| 亚洲精品第一区二区三区| 在线播放国产一区中文字幕剧情欧美 | 91av视频导航| 午夜成人免费视频| 亚洲欧美高清| 亚洲欧美在线成人| 天堂网在线免费观看| 日本精品久久中文字幕佐佐木| 亚洲综合免费观看高清完整版在线 | 午夜久久久影院| 国产精品s色| 18video性欧美19sex高清| 一本久道高清无码视频| 88国产精品欧美一区二区三区| 狠狠色狠狠色综合日日五| 日韩精品三区四区| 伊人亚洲精品| 一二三区在线视频| 亚洲精美视频| 久久久久久12| 在线免费av一区| 国产综合色视频| 美女视频免费精品| 91社区在线高清| 黄黄视频在线观看| 欧美影院在线播放| 欧美精品v日韩精品v韩国精品v| 国产精品亚洲午夜一区二区三区 | 日韩久久精品| 欧美少妇精品| 免费在线黄色av| 色综合久久88色综合天天提莫| 日韩一区二区久久久| 亚洲不卡在线观看| 久久99国产精品尤物| 日韩电影在线观看完整免费观看| 午夜在线小视频| 丁香婷婷激情网| 国产一区高清视频| 欧美精品免费看| 欧美午夜宅男影院| 91美女片黄在线观看91美女| 欧美久久久久| 国产成人久久精品一区二区三区| 国产资源在线播放| 99精品在线免费视频| 国产精品大全| 欧美激情成人在线视频| 欧美一级在线视频| 亚洲视频综合在线| 狠狠色伊人亚洲综合成人| 日本久久综合| 日韩精品影院| 精品乱码一区二区三四区视频 | 桃乃木かなav在线播放| 女人帮男人橹视频播放| 99热在线播放| 欧美激情极品视频| 日韩免费高清视频| 婷婷综合久久一区二区三区| 成人一区二区三区| 国产精品蜜月aⅴ在线| 日韩毛片网站| 在线中文av| 又粗又黑又大的吊av| 91黄色精品| 欧美激情2020午夜免费观看| 午夜精品久久久久久久99樱桃 | 亚洲一二区在线| 第一福利永久视频精品 | 夜夜爽夜夜爽精品视频| 欧美性xxxx极品高清hd直播| 91网站在线看| 1区2区3区在线观看| 波多野结衣亚洲| 精品资源在线| 欧美主播一区二区三区美女| 国产精品久久久久久久久婷婷| 你懂的在线播放| 欧美6一10sex性hd| 欧美一区二区三| 亚洲成a天堂v人片| 蜜桃成人在线| 国产一区不卡| 日韩欧美在线网址| 精品免费日产一区一区三区免费| 性感美女一区二区在线观看| 高清国产一区二区| 91精品国产aⅴ一区二区| 人人妻人人澡人人爽精品欧美一区| 视频免费一区二区| 在线观看视频一区二区欧美日韩| 久久99久久精品国产| 国产成人精选| 久久99精品一区二区三区| 日韩你懂的在线观看| 欧美在线国产精品| 美女视频黄a视频全免费观看| 久久精品国产大片免费观看| 欧美日韩黄色影视| 欧美 日韩 亚洲 一区| 色综合桃花网| 丁香网亚洲国际| 欧美一级淫片播放口| 性欧美精品孕妇| 美腿丝袜一区二区三区| 俺去了亚洲欧美日韩| 在线观看一级片| 男人操女人的视频在线观看欧美| 性亚洲最疯狂xxxx高清| 成人毛片av在线| 日本不卡中文字幕| 国产精品午夜视频| 四虎884aa成人精品最新| 亚洲欧美日韩天堂| 欧美一区二区三区日韩视频| 欧美色国产精品| 色婷婷狠狠综合| 欧美色男人天堂| 91精品国产91久久久久久最新毛片 | 欧美v日韩v国产v| 精品欧美乱码久久久久久1区2区|