📌 本文重點
- 用多個專職 agent 分工處理一個大任務
- 透過 orchestrator 串起明確的多步驟流程
- 將既有 API / 工具包成
@tool打造可落地工作流- 先做最小 demo,再逐步擴展到既有系統
只靠一個聊天機器人常常做出「四不像」的結果,而 openai‑agents‑python 要解決的,就是讓你把一個大任務拆給多個各司其職的 AI 代理人,像一個小團隊一樣協作完成。
GitHub 專案連結:https://github.com/openai/openai-agents-python
核心功能:把一個大任務拆給多個 AI
1. 定義多個專長不同的 Agent
你可以在程式裡定義多個「角色」:
- 資料蒐集 agent:負責上網查資料、整理重點
- 寫作/寫程式 agent:負責產出初稿或程式碼
- 審稿 agent:負責檢查結構、風格、錯字或潛在 bug
這些都用 Python class 或函式就能描述,像這樣:
from openai_agents import Agent
researcher = Agent(
name="researcher",
instructions="你負責閱讀提供的資料,整理三個重點與參考連結。",
)
writer = Agent(
name="writer",
instructions="你負責寫出條列清楚的技術部落格草稿,語氣教學向。",
)
reviewer = Agent(
name="reviewer",
instructions="你負責審稿,只給出修改建議與需要補充的段落。",
)
行動:先想一個你日常會做的「三步驟」任務,直接對應成三個 agent 的職責。
2. 設計任務流程:交接、審查、協作
openai‑agents‑python 的重點不只是「多個 agent」,而是讓你把流程寫清楚:誰先做、誰接手、誰審查。
例如做一個「自動寫技術部落格」的流程:
researcher:根據題目蒐集資料,產出重點摘要writer:根據摘要寫出完整草稿reviewer:審稿,給出修改建議
💡 關鍵: 把一長串需求拆成 2–3 個明確步驟,比一次丟給單一聊天模型更穩定、可控。
在框架裡你可以用一個 orchestrator(像主揪)來控制:
from openai_agents import Orchestrator
orchestrator = Orchestrator(agents=[researcher, writer, reviewer])
async def run_blog_flow(topic: str):
research_notes = await orchestrator.run("researcher", input={"topic": topic})
draft = await orchestrator.run("writer", input={"topic": topic, "notes": research_notes})
review = await orchestrator.run("reviewer", input={"draft": draft})
return {"draft": draft, "review": review}
行動:把你現在用 ChatGPT 一次請他「幫我想題目、寫文、修稿」的流程,拆成 2–3 個步驟,寫在紙上,對應到上面這種 orchestrator 程式碼結構。
3. 串接外部工具與 API,變成真的工作流
openai‑agents‑python 支援 agent 呼叫你自定義的工具函式,例如:
- 網頁爬蟲(
requests、Playwright) - 存取資料庫或 Google Sheets
- 操作檔案系統,輸出成 Excel / CSV
你先寫好 Python 函式,再把它註冊給 agent 使用:
import requests
from openai_agents import tool
@tool
def fetch_url(url: str) -> str:
"""抓取指定網址的 HTML"""
return requests.get(url, timeout=10).text
scraper = Agent(
name="scraper",
instructions="根據給定網址抓網頁內容並擷取需要的欄位。",
tools=[fetch_url],
)
行動:先選一個你常用的 API(例如某個內部 HTTP API、Notion API),包成一個最小的 @tool 函式,讓 agent 能直接呼叫。
Demo:一晚內做完的「自動寫技術部落格」小團隊
這裡做一個最小可用版本:輸入一個主題,幫你:
- 蒐集重點
- 產生技術部落格草稿
- 用
reviewer做一次審查,輸出建議
步驟 0:安裝與環境準備
pip install openai-agents-python openai
在專案根目錄建立 .env(或直接用環境變數):
export OPENAI_API_KEY="你的 API Key"
💡 關鍵: 只要設定好
OPENAI_API_KEY,就能在一晚內跑起一個可用的多 agent 小流程。
步驟 1:建立第一個 writer agent
新增 agents_blog.py:
from openai_agents import Agent
writer = Agent(
name="writer",
instructions=(
"你是技術部落客,請用繁體中文寫 1200 字內的教學文,"
"條列清楚、加上小標題,讀者是有基礎的工程師。"
),
)
先單獨測試這個 agent:
import asyncio
from agents_blog import writer
async def main():
result = await writer.run({"topic": "Python logging 實戰"})
print(result)
if __name__ == "__main__":
asyncio.run(main())
行動:先確保「單一 agent + 單一呼叫」正常運作,看到一篇文章草稿再往下加複雜度。
步驟 2:加上 researcher + reviewer
修改 agents_blog.py:
from openai_agents import Agent
researcher = Agent(
name="researcher",
instructions=(
"你負責針對主題列出 5 個實用重點與常見坑,"
"輸出 JSON 格式:{\"key_points\": [...]}。"
),
)
writer = Agent(
name="writer",
instructions=(
"根據 research.key_points 寫技術部落格,"
"包含簡介、實作步驟與常見錯誤排查。"
),
)
reviewer = Agent(
name="reviewer",
instructions=(
"你是嚴格的技術編輯,檢查草稿是否:1) 結構清楚、"
"2) 範例正確、3) 沒有太多空話。輸出建議清單。"
),
)
再加一個 orchestrator 流程(新檔 run_blog.py):
import asyncio
from openai_agents import Orchestrator
from agents_blog import researcher, writer, reviewer
orchestrator = Orchestrator(agents=[researcher, writer, reviewer])
async def run_blog(topic: str):
research_notes = await orchestrator.run("researcher", input={"topic": topic})
draft = await orchestrator.run("writer", input={"topic": topic, "research": research_notes})
review_notes = await orchestrator.run("reviewer", input={"draft": draft})
print("=== 草稿 ===\n")
print(draft)
print("\n=== 審稿建議 ===\n")
print(review_notes)
if __name__ == "__main__":
topic = input("輸入技術主題:")
asyncio.run(run_blog(topic))
行動:實際輸入你下週想寫的一個主題,看這個流程能不能生成一份你「願意再改一版就能上 blog」的草稿。
步驟 3:做成簡單 CLI 或排程
CLI(已經算一種):
python run_blog.py
若要每天自動產出草稿,可以用 crontab:
crontab -e
# 每天早上 9 點產出一篇關於 Python 的文章
0 9 * * * cd /path/to/project && OPENAI_API_KEY=xxx python run_blog.py <<EOF
Python 非同步程式設計實戰
EOF
行動:先用 CLI 手動跑幾次,確認品質與 token 消耗,再考慮排程自動化。
適合誰用?幾個具體場景
- 工程師/資料工程師:
- 資料抓取 → 清洗 → 產出報表(多個 agent 分別負責)
- 專案 scaffold 生成 → 單元測試撰寫 →
reviewer檢查風險 - 技術寫作者 / Developer Advocate:
- 自動產出技術部落格初稿、Release Note、API 範例
- 內部平台團隊:
- 把既有的 CI/CD、監控 API 包成工具,讓 AI agent 幫忙查 log、整理 incident 報告
💡 關鍵: 只要你習慣在 ChatGPT 下一長串指令,就幾乎一定能拆成 multi‑agent workflow 減少來回與手動操作。
只要你目前已經在用 ChatGPT 做「一長串指令」,就適合把流程拆成 multi‑agent workflow 測試看看。
延伸應用:部署、成本控制、整合現有系統
1. 部署到雲端
- 用 FastAPI 或 Flask 包一層 HTTP API,把
orchestrator暴露成/run_flowendpoint - 部署到 Render / Railway / Fly.io / 自家 Kubernetes,都只是一般 Python Web 服務部署流程
2. 控制成本與錯誤
- 限制
max_tokens/ 模型:對只負責小任務的 agent 用較便宜的模型 - 加上 retry + logging:為
orchestrator跑的每一步記錄 prompt、輸出與 token 使用 - 設定明確
instructions:讓reviewer僅輸出「建議清單」,避免重複生成整篇文章浪費 token
3. 與既有後端或 Slack Bot 整合
- 既有後端:在服務裡呼叫
orchestrator,把結果回寫資料庫或觸發其他工作 - Slack Bot:
- 用 Slack API 建一個 slash command
/ai-team - 收到指令後,把文字丟給
orchestrator,完成後再貼回頻道
行動:先選一個「已在跑的」後端流程(例如每週報表),先只把其中一段換成 agent 完成,觀察穩定度與成本。
怎麼開始:最快上手路徑
- 看 GitHub README:https://github.com/openai/openai-agents-python
- 先實作一個最小 demo:如本文的 blog flow 或「抓網頁 → 清洗 → 匯出 CSV」
- 再慢慢拆更多 agent:把你原本寫在同一個 prompt 或腳本裡的步驟,一個一個拆成獨立角色
只要先完成一個「今晚就能跑起來」的小流程,你之後會很自然開始想:還有哪些工作可以交給這個 AI 小團隊做。
🚀 你現在可以做的事
- 打開專案,實作一個最小的
writeragent 並用單一呼叫產出一篇草稿- 把你常用的一個內部或公開 HTTP API 包成
@tool,讓 agent 能直接呼叫- 依照文中的
researcher → writer → reviewer範例,寫出自己的第一個orchestrator流程並在本機跑一次








