Home
Login

輕量級多智能體工作流構建框架,支援智能體間協作、工具調用和流程編排

MITPython 11.6kopenai Last Updated: 2025-06-19

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())

工作流執行機制

運行循環邏輯

  1. LLM調用:使用智能體的模型和設置,結合消息歷史進行調用
  2. 響應處理:LLM返回響應,可能包含工具調用
  3. 輸出檢查:如果有最終輸出,返回並結束循環
  4. 交接處理:如果有交接請求,切換到新智能體並重新開始
  5. 工具執行:處理工具調用並將響應添加到消息中,然後重新開始循環

最終輸出機制

  • 結構化輸出:如果設置了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應用系統。無論是簡單的單智能體任務還是複雜的多智能體協作場景,這個框架都能提供優雅的解決方案。