🤖 技術解析 · AI Agent

AI Agent
並不是一個神祕的新物種

拆解它的本質:大模型 + 工具呼叫 + 控制流程 + 狀態記憶 + 安全機制

大模型 LLM + 工具呼叫 Tools + 控制流程 + 狀態記憶 + 安全機制

AI Agent 並不是一個神祕的新物種,通常就是把「大模型 + 工具呼叫 + 控制流程 + 狀態記憶 + 安全機制」組合起來。

比較白話地說,它像一個會思考的「主任」:大模型負責理解任務與決策,工具負責真正做事,程式框架負責讓它反覆執行「思考 → 選工具 → 執行 → 讀結果 → 再決策」這個循環。

OpenAI Agents SDK 的官方說明把核心概念整理成 agentstoolshandoffsguardrailssessionstracing 等幾個部分;LangGraph 也把 agent 描述成一種可長時間執行、可保存狀態的工作流/圖結構。

💡 為什麼選 OpenAI Agents SDK 當例子?

它的 quickstart 很乾淨,最適合拿來看「AI Agent 到底怎麼 implement」。官方 quickstart 直接展示三件事:定義 agent(name + instructions)、用 Runner.run() 執行、加入 tools 或 handoffs 讓 agent 不只會回答,還會做事、會轉交專家。

🏗️

一個 AI Agent 最基本的實作骨架

可以把它想成這 6 層:

1
Agent 身分與角色
先定義它是誰、擅長什麼、回答風格如何。在 OpenAI Agents SDK 裡,agent 是用 Agent(...) 定義,核心是 nameinstructions。這一層本質上就是 system prompt + agent metadata
Python 範例
from agents import Agent

agent = Agent(
    name="History Tutor",
    instructions="You answer history questions clearly and concisely.",
)
2
執行器(Runner)
光有角色還不夠,還要有一個 runtime 去跑它。OpenAI 的例子用 Runner.run(agent, user_input),執行後拿到 result.final_outputagent 本身像設定檔,Runner 才是實際讓它運轉的引擎。
Python 範例
import asyncio
from agents import Agent, Runner

agent = Agent(
    name="History Tutor",
    instructions="You answer history questions clearly and concisely.",
)

async def main():
    result = await Runner.run(agent, "When did the Roman Empire fall?")
    print(result.final_output)
3
Tools:讓它不只會說,還會做
真正的 agent 跟一般 chatbot 最大差別,通常就在這裡。官方文件明講 tools 可以讓 agent 做動作,例如取資料、呼叫外部 API、跑程式等等。用 @function_tool 包一個 Python 函式,再放進 tools=[...]
Python 範例
from agents import Agent, Runner, function_tool

@function_tool
def history_fun_fact() -> str:
    """Return a short history fact."""
    return "Sharks are older than trees."

agent = Agent(
    name="History Tutor",
    instructions="Answer history questions clearly. Use history_fun_fact when it helps.",
    tools=[history_fun_fact],
)
  • 大模型先判斷「需不需要用工具」
  • 如果需要,就呼叫 history_fun_fact()
  • 框架把工具結果餵回模型
  • 模型再根據結果產生最後答案
4
Handoffs:任務委派機制
當一個 agent 遇到不擅長的任務,可以透過 handoffs 把任務委派給另一個專家 agent。在系統裡,handoff 是以 tool 的形式表現,讓多 agent 協作成為可能。
5
Guardrails:安全邊界
定義 agent 的行為邊界,防止它做出超出授權的事。這是自主代理從「好玩的實驗」邁向「可信賴的生產工具」的關鍵一層。
6
Sessions & Tracing:狀態與可觀測性
Sessions 維護跨對話的狀態記憶;Tracing 讓你看清楚 agent 在每一步做了什麼,是除錯與優化不可或缺的工具。
🔄

真正關鍵:它背後通常在跑這個迴圈

實作上,AI Agent 很少是「模型只回答一次」;比較像這樣:

使用者輸入
LLM 理解任務
判斷要不要呼叫工具 / 子代理 / 外部 API
執行工具
把工具結果回填給 LLM
LLM 再判斷下一步
直到完成 ✓

OpenAI 官方文件提到,runner 會處理 agent 執行、handoffs、tool calls;results 文件也提到一次 run 可能包含多個 response,因為中間可能經過「模型 → 工具 → 模型」或 handoff 的多步循環。

💡 核心觀點

Agent 的本質,不是某個特定模型,而是這個可以反覆迭代、能調用能力、能保存狀態的控制回路。

🏢

多代理架構:Handoffs 實戰

OpenAI quickstart 示範了很典型的模式:一個分流 agent + 多個專家 agent

分流層
🧭 Triage Agent
判斷問題類型,路由給專家
專家層
📚 History Tutor
處理歷史類問題
專家層
🔢 Math Tutor
處理數學類問題
完整實作程式碼
history_tutor_agent = Agent(
    name="History Tutor",
    handoff_description="Specialist agent for historical questions",
    instructions="You answer history questions clearly and concisely.",
)

math_tutor_agent = Agent(
    name="Math Tutor",
    handoff_description="Specialist agent for math questions",
    instructions="You explain math step by step and include worked examples.",
)

triage_agent = Agent(
    name="Triage Agent",
    instructions="Route each homework question to the right specialist.",
    handoffs=[history_tutor_agent, math_tutor_agent],
)
執行
result = await Runner.run(
    triage_agent,
    "Who was the first president of the United States?",
)
print(result.final_output)
print(result.last_agent.name)  # → "History Tutor"

如果問題是歷史類,最終就會被轉給 History Tutor。文件明講:handoff 是把任務委派給另一個 agent,而且在系統裡是以 tool 的形式表現。

🧩

為什麼這種實作有效?

因為它把複雜問題拆成三層,每層各司其職:

第一層
語意理解
由 LLM 判斷使用者要什麼。這是整個系統的大腦,負責「思考」與「決策」。
LLM
第二層
能力執行
透過 tools 去查資料、呼叫 API、執行程式。這是讓 agent 真正「做事」的關鍵,也是與普通 chatbot 最大的差異。
Tools / Skills
第三層
流程編排
由 runner / graph / orchestration 決定下一步是繼續推理、換工具、還是交給別的 agent。OpenAI 強調 handoffs 與 tracing;LangGraph 強調 long-running、stateful、durable execution。
Runner / Orchestrator
🔧

從零 Implement:工程視角的模組

如果你自己要從零 implement,一般會有這幾個模組:

A
Planner / Reasoner
負責理解任務、規劃下一步。通常就是一個 LLM call,加上明確的 instructions。這決定了 agent 的「思考品質」。
B
Tool Registry
管理所有可用工具的清單、呼叫介面與回傳格式。等同於 agent 的「工具箱」,定義它能做什麼。
C
Execution Loop
實作「思考 → 行動 → 觀察 → 再思考」的迭代迴圈。這是 agent 的核心引擎,決定它何時停止、何時繼續。
D
Memory / State Manager
保存短期對話狀態與長期知識,讓 agent 在跨對話、跨任務時仍能保有上下文。對應 OpenClaw 的 MEMORY.md 機制。
E
Safety / Guardrails Layer
在 agent 採取行動前進行驗證,防止越權操作。這是從「實驗性工具」走向「生產環境」的必要防線。
🎯 總結

AI Agent 的核心不神祕——它是一個可反覆迭代的控制回路,讓大模型不再只是「回答問題的機器」,而是能規劃、能執行、能學習的「數位員工」。框架幫你搭好了骨架,你需要做的是定義好每一層的規則與工具。