觀點 · 資訊分享

OpenAI Agents SDK 0.21.0 新增測試工具:不用呼叫模型,也能測 AI 代理的完整流程

OpenAI 的 Agents SDK 在 0.21.0 加入 agents.testing 等測試模組,可以用「劇本」代替真的模型,測代理、沙盒、即時與語音流程。同時改為相容 OpenAI Python 3。

發布
2026-08-16
篇幅
約 4 分鐘 · 1,677 字
結構
7 節 + 3 題常見問題
標籤
#OpenAI#Agents SDK#AI 代理#測試#MCP
OpenAI Agents SDK 0.21.0 新增測試工具:不用呼叫模型,也能測 AI 代理的完整流程

一句話看懂:OpenAI 的 Agents SDK 在 0.21.0 加入一組測試工具,讓你用「劇本」代替真正的模型,不用花錢、不用連網,就能重複測試 AI 代理的完整流程。

Agents SDK 新增測試工具資訊圖卡:用「劇本」代替真模型,代理流程可以重複測、結果固定

先用白話講:為什麼 AI 代理很難測試?

想像你開發一個「自動處理客服信件」的 AI 代理:它會讀信、呼叫查詢訂單的工具、再回信。要測試它,最直接的方法是每次都真的去問 AI 模型。但這樣有三個麻煩:要花錢、速度慢,而且 AI 每次回答可能不一樣,今天測過、明天可能就不同。

這次的更新,就是替開發者準備了「模擬考場」:事先寫好一份劇本,規定模型每一步要怎麼回答,測試時代理就照劇本走,結果每次都一樣。

發生什麼事

OpenAI 在 8 月 15 日釋出 openai-agents-python 的 0.21.0。官方說明這一版沒有已知的破壞性行為變更,升小版本是因為新增了「不綁定供應商」的測試 API,以及對新版 OpenAI Python 套件的相容更新。

重點有:

更新 說明
agents.testing 測試代理與沙盒流程,不用向供應商發送請求
agents.realtime.testing 測試即時(Realtime)流程
agents.voice.testing 測試語音流程
OpenAI Python 3 相容範圍更新為 openai>=3.0.0,<4,並支援 HTTPX2
穩定與安全 補強中斷快照、遞迴核准、MCP 生命週期隔離與語音輸入驗證

其他補強

  • 強化 RunState 的中斷快照、遞迴的「代理當工具」核准、最大回合數收尾、串流清理,以及敏感錯誤訊息的遮蔽
  • MCP 的生命週期快照互相隔離,並新增可設定的重試等待上限
  • 沙盒新增 Runloop 既有機密的支援,並收緊 view-image 的路徑授權
  • 語音輸入更嚴格:聲道數、取樣率不合理,或多聲道資料不完整,都會直接拒絕

給開發者的技術細節

agents.testing 提供 ScriptedModel、assistant_message()、function_call() 等元件。下面是依官方原始碼介面寫的示意,實際用法請以官方文件為準:

from agents import Agent, Runner
from agents.testing import ScriptedModel, assistant_message

# 劇本:第一次呼叫模型時,直接回一段文字
model = ScriptedModel([[assistant_message("您好,已收到訂單")]])
agent = Agent(name="客服", instructions="回覆客戶", model=model)

result = Runner.run_sync(agent, "我要查訂單")
assert result.final_output == "您好,已收到訂單"

# 確認劇本每一步都有用到
model.assert_complete()
  • model.calls 能取回每次呼叫的快照,可以檢查代理到底送了什麼指令與工具給模型
  • 劇本用完還被呼叫,或測試結束時還有沒用到的步驟,都會丟出明確的錯誤
  • 升級時留意 openai 套件版本:相容範圍是 3.0.0 以上、4 以下

後續(8 月 16 日 UTC):0.21.1 又新增模型呼叫逾時、以單次執行為範圍的沙盒工作目錄,並讓 Docker 沙盒可以關閉網路。

我的看法

做 AI 功能最讓我頭痛的,就是「怎麼知道改了一段提示詞或工具之後,整個流程沒壞」。常見的做法是手動多試幾次,但接案時客戶不會想花時間陪你試,也沒人想為了每次測試付模型費用。

用劇本測流程有個明顯的限制:它測的是「你的程式碼有沒有照流程走」,不是「模型回答得好不好」。所以我會把兩種測試分開:流程與錯誤處理用劇本測,放進 CI 每次跑;回答品質則另外挑幾題真實案例,定期手動跑。這樣成本和信心都顧得到。

名詞小辭典

  • AI 代理(Agent):能自己規劃步驟、呼叫工具、把事情做完的 AI,而不只是回答一句話。
  • 沙盒(Sandbox):一個隔離的執行環境,讓代理在裡面跑程式或改檔案,不會影響到外面。
  • MCP:讓 AI 連接外部工具與資料的通用規格,像是 AI 世界的 USB 插孔。
  • CI:程式一更新就自動跑測試的流程,能及早發現壞掉的地方。

資料來源

常見問題

Agents SDK 是什麼?
它是 OpenAI 提供的開發套件,用來建立「AI 代理」:讓模型能呼叫工具、把工作交給其他代理、在沙盒裡執行程式,並記錄過程。這次的更新主要是讓開發者更容易替這些流程寫測試。
scripted(劇本)模型是什麼意思?
ScriptedModel 是一個假的模型:你事先寫好它每一步要回什麼(例如回一段文字,或呼叫某個工具),測試時代理就照劇本走,不會真的連到任何模型服務。這樣測試快、免費,而且每次結果都一樣。
升到 0.21.0 要注意什麼?
官方說明沒有已知的破壞性行為變更。但 OpenAI 提供者的相容版本改成 openai 3.0.0 以上、4 以下,如果專案鎖定了舊版的 openai 套件,升級時要一起處理。
LINE