OpenAI Agents SDK
OpenAI Agents SDK 讓你能夠以輕量且易於使用的套件,建構代理式 AI 應用程式,且僅需極少的抽象層。這是我們先前針對代理(agents)所做實驗 Swarm 的正式生產版升級。Agents SDK 僅包含極少數的基本原件:
- 代理 (Agents):配備指令與工具的大型語言模型 (LLM)
- 交接 (Handoffs):允許代理將特定任務委派給其他代理
- 防護欄 (Guardrails):可用於驗證代理的輸入與輸出
- 會話 (Sessions):自動在多次代理執行間維護對話歷史
這些基本原件結合 Python 使用時,足以表達工具與代理間的複雜關係,讓你能夠無需陡峭學習曲線就打造真實世界的應用程式。此外,SDK 內建 追蹤 (tracing) 功能,讓你能視覺化、除錯你的代理流程,並進行評估,甚至針對你的應用程式微調模型。
為什麼要使用 Agents SDK
SDK 有兩大設計原則:
- 功能足夠實用,但基本原件數量極少,學習快速。
- 開箱即用體驗極佳,同時可完全自訂細節行為。
以下是 SDK 的主要特色:
- 代理循環:內建代理循環,負責呼叫工具、將結果傳送給 LLM,並持續循環直到 LLM 完成。
- Python 優先:可利用 Python 內建語言特性來協調與串接代理,無需學習全新抽象概念。
- 交接 (Handoffs):強大的功能,可協調並在多個代理間委派任務。
- 防護欄 (Guardrails):可與代理平行執行輸入驗證與檢查,若檢查失敗可提前中斷。
- 會話 (Sessions):自動管理多次代理執行間的對話歷史,免除手動狀態處理。
- 函式工具 (Function tools):將任何 Python 函式轉換為工具,並自動產生 schema,結合 Pydantic 驗證。
- 追蹤 (Tracing):內建追蹤功能,讓你能視覺化、除錯並監控工作流程,並可搭配 OpenAI 的評估、微調與蒸餾工具使用。
安裝
Hello world 範例
from agents import Agent, Runner
agent = Agent(name="Assistant", instructions="You are a helpful assistant")
result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
print(result.final_output)
# Code within the code,
# Functions calling themselves,
# Infinite loop's dance.
(如果要執行此操作,請確保已設定 OPENAI_API_KEY
環境變數)