AI Agent 實戰上手:五個步驟讓它真的幫你跑工作流

AI Agent 這個詞在 2026 年已經被講爛了,但我周圍還是有一堆人停留在「聽過、知道很厲害、但不知道怎麼真正用起來」的狀態。這篇就是要填補這個空缺——不談概念,直接帶你走完一次從設定到執行的完整流程。
做完你會得到什麼?一個能自動完成「查資料 → 整理摘要 → 寄出報告」這類多步驟任務的 AI Agent,而且整套流程你自己親手搭起來、下次可以複製改造。
你需要準備什麼
在開始之前,確認你手上有這幾樣東西:
- OpenAI API Key(GPT-4o 或以上,Agent 功能需要工具呼叫能力)
- 一個 Agent 框架:2026 年最多人用的是 LangChain、AutoGen、或 OpenAI 官方的 Assistants API with tools。這篇以 OpenAI Assistants API 為主,因為它不需要額外裝框架。
- 基本 Python 環境(Python 3.10+,裝好
openai套件) - 大概 30 分鐘的專注時間
白話講:你就是要給 AI 一組「可以呼叫的工具」,然後告訴它目標,讓它自己決定要呼叫哪些工具、呼叫幾次、怎麼把結果拼起來。
第一步:建立 Assistant 並定義它的角色
打開 OpenAI Platform,進到 Assistants 頁面,點「Create」。
- Name:給它一個清楚的名字,例如
Research Summarizer - Instructions:這裡是關鍵。不要只寫「你是一個助理」,要明確告訴它任務邏輯,例如:
你是一個研究助理。收到主題後,你會先用 web_search 工具查找最新資訊,整理成 3 個重點摘要,最後用 send_email 工具把結果寄給指定信箱。每一步完成後回報進度。
- Model:選
gpt-4o,這是目前工具呼叫最穩的版本。
指令寫得越具體,Agent 的行為越可預測。這步很多人隨便帶過,結果後面一直出現「它怎麼不照我想的做」的問題。
第二步:定義並串接工具(Tools)
Agent 的核心能力在於它能呼叫外部工具。你需要用 JSON Schema 格式定義工具,告訴 Agent「這個工具叫什麼、幹嘛用的、需要哪些參數」。
tools = [
{
"type": "function",
"function": {
"name": "web_search",
"description": "搜尋網路上關於某個主題的最新資訊",
"parameters": {
"type": "object",
"properties": {
"query": {"type": "string", "description": "搜尋關鍵字"}
},
"required": ["query"]
}
}
}
]
你可以把它想成在寫 API 文件給 AI 看——它讀完這份說明,就知道什麼時候該呼叫這個工具、要傳什麼參數進去。
實際的工具函數(真正去爬網或呼叫 API 的邏輯)是你自己在 Python 裡實作的,Agent 只負責「決定要不要叫它、傳什麼參數」。
第三步:建立 Thread,把任務丟進去
Assistants API 用「Thread」來管理對話狀態,你可以把它理解成一個任務容器。
from openai import OpenAI
client = OpenAI()
thread = client.beta.threads.create()
client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content="請幫我研究 2026 年 AI Agent 的最新應用趨勢,整理後寄到 [email protected]"
)
Thread 的好處是它會記住整個對話歷程,Agent 做到一半你可以暫停、之後再繼續,不會因為重跑就忘掉之前做了什麼。
第四步:啟動 Run,處理工具呼叫回調
這一步是整個 Agent 流程最核心、也最容易漏掉的環節。
run = client.beta.threads.runs.create(
thread_id=thread.id,
assistant_id=assistant.id
)
Run 啟動後,你需要輪詢它的狀態。當狀態變成 requires_action,代表 Agent 已經決定要呼叫某個工具,但它需要你把工具執行結果回傳給它:
while run.status != "completed":
run = client.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id)
if run.status == "requires_action":
# 取出 Agent 想呼叫的工具和參數
tool_calls = run.required_action.submit_tool_outputs.tool_calls
outputs = []
for tc in tool_calls:
result = execute_tool(tc.function.name, tc.function.arguments)
outputs.append({"tool_call_id": tc.id, "output": result})
# 把結果還給 Agent
client.beta.threads.runs.submit_tool_outputs(
thread_id=thread.id, run_id=run.id, tool_outputs=outputs
)
這個「你跑工具 → 回傳結果 → Agent 繼續推理」的循環,就是 Agent 能完成多步驟任務的底層機制。
第五步:取出結果,驗證輸出是否符合預期
Run 完成後,從 Thread 的 messages 取出最後一條 assistant 訊息:
messages = client.beta.threads.messages.list(thread_id=thread.id)
print(messages.data[0].content[0].text.value)
這就是 Agent 的最終輸出。你應該檢查:
- 它有沒有完整執行你定義的所有步驟
- 工具呼叫次數是否合理(太多次代表 instructions 不夠清楚)
- 輸出格式是否符合你的期望
如果跑出來的結果常常跳過某個步驟,很可能是 instructions 寫得太模糊,回去第一步調整一下就好。
常見錯誤與怎麼避開
工具一直沒有被呼叫:通常是 description 寫得不夠精確,Agent 不知道什麼時候該用它。把使用時機寫得更具體,例如「當需要查詢 2024 年後的即時資訊時使用」。
Run 卡在 in_progress 很久:有可能是 requires_action 狀態下你沒有 submit tool outputs,Agent 就卡死等你回傳。記得把輪詢邏輯寫完整。
輸出每次格式不一樣:在 instructions 裡明確要求輸出格式,或使用 Structured Outputs(OpenAI 2025 年推出的功能)強制 JSON 回傳。
如果你後續想讓 Agent 能處理文件或語音輸入,可以參考 OpenAI Whisper 怎麼用?從安裝到輸出字幕,一篇搞定,把語音轉文字這塊也一起串進工作流。
進階玩法:讓 Agent 串接更多工具
跑通基本流程之後,這套架構可以無限延伸:
- 加入 Code Interpreter:讓 Agent 自己跑 Python 分析數據,不需要你另外寫邏輯
- 多 Agent 協作:用 AutoGen 或 LangGraph 讓多個 Agent 分工,一個查資料、一個寫報告、一個審核
- 記憶層:整合向量資料庫(Pinecone、Qdrant)讓 Agent 記住跨 Thread 的歷史知識
想更進一步在終端機直接操作 AI 寫程式的話,Codex CLI 實戰教學 這篇可以接著看,兩個工具的思路其實很互補。
跑完之後,你有了什麼
走完這五步,你現在手上有一個:能讀任務、自己決定呼叫哪些工具、把多步驟結果拼起來的 AI Agent。
下一步可以做的事:
- 把
web_search換成你實際工作會用到的 API(內部資料庫、CRM、Slack 通知) - 把 Instructions 改成符合你真實業務流程的任務描述
- 設定排程,讓這個 Agent 每天自動跑、不需要你手動觸發
AI Agent 真正的威力不在於它有多聰明,而在於你把它串接得夠不夠深。現在你知道怎麼串了。
分享這篇



