觀點 · 資訊分享
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 在 0.21.0 加入一組測試工具,讓你用「劇本」代替真正的模型,不用花錢、不用連網,就能重複測試 AI 代理的完整流程。

先用白話講:為什麼 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:程式一更新就自動跑測試的流程,能及早發現壞掉的地方。