openai/openai-agents-pythonView GitHub Homepage for Latest Official Releases
輕量級多智能體工作流構建框架,支援智能體間協作、工具調用和流程編排
MITPythonopenai-agents-pythonopenai 13.3k Last Updated: August 06, 2025
OpenAI Agents Python 項目詳細介紹
項目概述
OpenAI Agents SDK 是一個輕量級且功能強大的Python多智能體工作流構建框架。這是OpenAI官方發布的生產級智能體開發工具,是對之前實驗性項目Swarm的升級版本。該框架設計簡潔但功能完備,專門用於構建複雜的多智能體AI應用。
核心特性
1. 跨平台兼容性
- 模型無關性:支持OpenAI的Responses和Chat Completions API
- 廣泛兼容:支持100+種不同的大語言模型
- API靈活性:可以輕鬆切換不同的AI服務提供商
2. 核心組件
智能體(Agents)
- 配置了指令、工具、安全防護和交接機制的LLM實例
- 每個智能體都有明確的職責和能力邊界
- 支持自定義指令和行為模式
交接機制(Handoffs)
- 專門的工具調用機制,用於在智能體之間轉移控制權
- 實現智能體間的無縫協作
- 支持複雜的工作流編排
安全防護(Guardrails)
- 可配置的輸入輸出驗證安全檢查
- 確保AI應用的安全性和可靠性
- 防止惡意輸入和不當輸出
流程追踪(Tracing)
- 內置的智能體運行跟踪功能
- 支持查看、調試和優化工作流
- 可擴展的追踪系統,支持多種外部集成
技術架構
安裝與配置
# 創建Python虛擬環境
python -m venv env
source env/bin/activate
# 安裝基礎版本
pip install openai-agents
# 安裝包含語音支持的版本
pip install 'openai-agents[voice]'
基礎使用示例
簡單智能體
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)
多語言協作智能體
from agents import Agent, Runner
import asyncio
spanish_agent = Agent(
name="Spanish agent",
instructions="You only speak Spanish.",
)
english_agent = Agent(
name="English agent",
instructions="You only speak English",
)
triage_agent = Agent(
name="Triage agent",
instructions="Handoff to the appropriate agent based on the language of the request.",
handoffs=[spanish_agent, english_agent],
)
async def main():
result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
工具調用示例
import asyncio
from agents import Agent, Runner, function_tool
@function_tool
def get_weather(city: str) -> str:
return f"The weather in {city} is sunny."
agent = Agent(
name="Weather Assistant",
instructions="You are a helpful weather agent.",
tools=[get_weather],
)
async def main():
result = await Runner.run(agent, input="What's the weather in Tokyo?")
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
工作流執行機制
運行循環邏輯
- LLM調用:使用智能體的模型和設置,結合消息歷史進行調用
- 響應處理:LLM返回響應,可能包含工具調用
- 輸出檢查:如果有最終輸出,返回並結束循環
- 交接處理:如果有交接請求,切換到新智能體並重新開始
- 工具執行:處理工具調用並將響應添加到消息中,然後重新開始循環
最終輸出機制
- 結構化輸出:如果設置了
output_type
,當LLM返回匹配類型的内容時結束 - 文本輸出:如果沒有
output_type
,當智能體產生沒有工具調用或交接的消息時結束
工具系統
三類工具支持
1. 托管工具(Hosted Tools)
- 在LLM服務器上運行
- OpenAI提供檢索、網絡搜索和計算機使用等托管工具
2. 函數調用(Function Calling)
- 支持將任何Python函數用作工具
- 靈活的自定義工具開發
3. 智能體作為工具
- 允許智能體調用其他智能體
- 支持複雜的層級協作結構
內置工具
- WebSearchTool:網絡搜索功能
- Computer Use:計算機操作能力
- Retrieval:信息檢索功能
追踪與監控
自動追踪功能
- 自動跟踪智能體運行過程
- 便於調試和優化工作流
- 可擴展的設計支持自定義span
外部集成支持
- Logfire:日誌管理
- AgentOps:智能體操作監控
- Braintrust:AI應用開發平台
- Scorecard:性能評估
- Keywords AI:關鍵詞AI集成
應用場景
適用場景
- 複雜業務流程自動化:多步驟的業務處理流程
- 多語言客服系統:支持不同語言的智能客服
- 專業領域助手:法律、醫療、教育等專業領域的AI助手
- 數據處理流水線:多階段的數據分析和處理
- 創意協作系統:多個AI角色協作完成創意任務
工作流模式
- 確定性流程:預定義的工作流步驟
- 迭代循環:需要多次迭代優化的任務
- 條件分支:根據條件選擇不同處理路徑
- 並行處理:多個智能體同時處理不同任務
開發環境
開發要求
- Python 3.8+
- 需要設置
OPENAI_API_KEY
環境變量 - 支持異步和同步兩種調用方式
開發工具鏈
# 安裝uv包管理器
uv --version
# 安裝依賴
make sync
# 運行測試
make tests
# 類型檢查
make mypy
# 代碼規範檢查
make lint
項目優勢
1. 簡潔設計
- 極少的抽象層次
- 核心概念清晰明確
- 易於理解和使用
2. 生產就緒
- 基於OpenAI的實際經驗構建
- 穩定可靠的API設計
- 完善的錯誤處理機制
3. 高度靈活
- 支持複雜的智能體關係建模
- 可以表達各種工作流模式
- 強大的自定義能力
總結
OpenAI Agents Python是一個專業級的多智能體開發框架,它將複雜的AI協作變得簡單易用。通過其核心的智能體、交接、防護和追踪機制,開發者可以快速構建出功能强大的AI應用系統。無論是簡單的單智能體任務還是複雜的多智能體協作場景,這個框架都能提供優雅的解決方案。