AI 科技新聞站每日更新
AI 科技2026年9月30日

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

A
AI 觀察家
專欄作者 · 2309 字
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。

下一步可以做的事:

  1. 把 web_search 換成你實際工作會用到的 API(內部資料庫、CRM、Slack 通知)
  2. 把 Instructions 改成符合你真實業務流程的任務描述
  3. 設定排程,讓這個 Agent 每天自動跑、不需要你手動觸發

AI Agent 真正的威力不在於它有多聰明,而在於你把它串接得夠不夠深。現在你知道怎麼串了。

分享這篇

同系列文章