# 智能體測完回答漂亮,上線卻改了不該改的東西,測試測了個寂寞?SDK官方拆台:不查它改了什麼記錄,測試等於沒測 ## 開頭:官方來源與反常識結論 來源:T… · @swordBluesy · TwKit
@swordBluesy
# 智能體測完回答漂亮,上線卻改了不該改的東西,測試測了個寂寞?SDK官方拆台:不查它改了什麼記錄,測試等於沒測 ## 開頭:官方來源與反常識結論 來源:TestMu AI,2026年10月23日,原文標題直譯《如何測試OpenAI Agents SDK智能體:交接、護欄與工具調用》。先把反常識結論放前面:智能體測試最騙人的地方,是只看最終回答漂不漂亮——回答對了,也可能是錯的智能體答的;回答說幹完了,也可能是根本沒幹。原文用SDK 0.21.0實測了一整套,結論就一句:不查它改了什麼記錄,測試等於沒測。 ## 說清詞 - ScriptedModel(劇本模型):SDK自帶的確定性測試替身,在內存裡跑、不發任何模型請求,照你寫好的劇本回。 - 交接(Handoff):一個智能體把活轉給另一個專家智能體的動作,轉錯人等於找錯醫生。 - 護欄(Guardrail):攔在輸入或輸出前的檢查,條件不滿足就擋下。 - HandoffCallItem/HandoffOutputItem(交接記錄項):運行記錄裡證明「誰接了活、誰交了活」的兩種條目。 - 追蹤(Tracing):SDK記錄每次運行的詳細軌跡,測試時可以關掉,免得污染記錄。 ## 一個真實例子與一條眼熟的進化路線 原文的測試分三層,層層加碼:第一層離線劇本測試,用ScriptedModel把模型、工具、交接、護欄全跑一遍,不花一分錢;第二層斷言交接與護欄,查最後是哪個智能體收尾、交接記錄項齊不齊、哪條護欄跳了;第三層查運行改了的記錄,因為最終回覆會謊稱幹了沒幹的活。這條路線你一定眼熟:以前是線上實測,燒錢還不穩定;後來是人工抽查,抽得到是運氣、抽不到是命;現在是離線三層全跑——從靠眼睛驗,變成了靠斷言驗。 ## 先把話說全:反方適用條件清單 先把話說全,以下情況這套測試法要打折,先講明:第一,智能體只做純問答、不改任何記錄,第三層查無可查;第二,工具全是託管工具,工具護欄本來就不生效;第三,交接鏈只有一層,沒有轉來轉去的專家;第四,劇本寫得太理想,離線全過、上線全崩;第五,團隊還在快速改提示詞,斷言三天兩頭要重寫。 ## 一句定性金句 回答漂亮不算數,改動記錄才算數。 ## 正文 ### 第一節:翻車清單 - 只看最終回答,不查last_agent,答對了也可能是錯的智能體答的。 - 護欄放錯位置:輸入護欄只跑在第一個智能體、輸出護欄只跑在最後一個,專家的護欄在交接後根本不跑。 - 工具護欄跳過交接調用和託管工具,以為設了等於沒設。 - 工具出錯被藏起來,表面一切正常,底下早崩了。 - 最終回覆謊稱幹完了,實際記錄一行沒改。 - 線上實測當測試,每次提交都燒錢,失敗還不穩定。 ### 第二節:替代方案與理由 - 方案一,線上實測:最真實,但燒錢、不穩定、不能進CI。 - 方案二,人工抽查:不用寫測試,但抽得到是運氣,覆蓋率沒法保證。 - 方案三,ScriptedModel離線三層(原文做法):零成本、每次提交可跑、斷言寫死,理由只有一個——測試要能天天跑,才配叫測試。 ### 第三節:目標形態 目標形態是一套進CI的智能體測試:離線劇本跑通接線;交接斷言鎖死最後收尾的智能體和交接記錄項;護欄按作用範圍放對位置;每次運行結束查一遍改動記錄;測試時關掉追蹤;發布前再拿真實智能體抽檢一輪。 ### 第四節:遷移步驟 1. 接ScriptedModel:Python用agents.testing,JavaScript用@openai/agents/testing,離線跑通工具、交接、護欄。 2. 寫交接斷言:查last_agent,查HandoffCallItem和HandoffOutputItem齊不齊。 3. 按範圍放護欄:輸入護欄放第一個智能體、輸出護欄放最後一個,別指望專家的護欄在交接後生效。 4. 加改動記錄檢查:運行結束對照記錄,看它說幹了的是不是真幹了。 5. 測試時關追蹤:JavaScript給Runner傳tracingDisabled: true,別讓測試軌跡污染記錄。 6. 進CI:每次提交跑一遍,發布前再用真實智能體抽檢。 ### 第五節:團隊共建分工 - 測試腳本人:劇本過時、離線跑不過,歸他改。 - 斷言維護人:交接斷言、護欄斷言跟不上重構,歸他跟。 - 發布抽檢人:離線全過、上線抽檢露餡,歸他攔。 ### 第六節:官方工具包 - ScriptedModel:確定性測試替身,內存運行、零模型請求。 - HandoffCallItem/HandoffOutputItem:證明交接鏈的記錄項。 - Guardrails:輸入、輸出、工具三種範圍各不相同。 - tracingDisabled:測試時關追蹤的開關。 - Evals遷移背景:Evals儀表盤與API定於2026年11月30日關閉,10月31日起現有評估只讀,Agent Builder同日關閉,官方指路Agents SDK。 ## 結尾收束:原則比架構重要 原則只有一句:測智能體要測它幹了什麼,不只測它說了什麼。架構可以換,框架可以換,這句原則換不得。可重複的動作規則是:上線前問三句——最後收尾的是誰?護欄放對位置了嗎?改動記錄查了嗎?三句答完再發布,測試才算真的測了。 ## S1哥觀點 站隊就站死這一邊:只看回答漂不漂亮就放行的人,和只看簡歷漂不漂亮就招人的人,是一路貨色——進來才發現活根本沒幹,晚了。你呢?你的智能體測試,是查了改動記錄,還是只看了回答?評論區說說。
曝光 40 · 评论 3 · 点赞 1 · 书签 0
查看原帖