文章
2025年7月20日 - 12 MIN READ
從 LLM 到 Agent:打通底層邏輯

從 LLM 到 Agent:打通底層邏輯

從 Token、Context、Prompt,到 Tool、MCP、Agent,完整梳理 AI 應用開發的核心概念與底層運作原理。

Gary

Gary

LLM 是什麼?

LLM(Large Language Model,大型語言模型)的核心能力只有一件事:預測下一個 token

給定一段輸入文字,模型計算「下一個最可能出現的詞」,再把這個詞接到輸入後面,繼續預測下下一個,如此循環,直到產生完整回覆。

這個過程看似簡單,但在海量語料上訓練後,模型學會了語言規律、邏輯推理、知識記憶。GPT、Claude、Gemini,背後都是這套機制。

輸入:「台灣的首都是」
預測:「台」→「北」→「市」→「。」
輸出:「台北市。」

關鍵在於,LLM 沒有記憶,也不會主動做任何事。它只是一個函式:給輸入,回傳輸出。所有「智能」的外觀,都是在這個函式之上建構的。


Token:模型的基本單位

模型不是逐字元讀文字,而是把文字切成 token(語言片段)再處理。

"Hello, world!" → ["Hello", ",", " world", "!"]  → 4 tokens
"你好世界"       → ["你", "好", "世", "界"]        → 4 tokens
"PostgreSQL"     → ["Post", "gre", "SQL"]          → 3 tokens

Token 的切分取決於模型使用的 tokenizer,不同語言的效率差很多。英文大約 1 個單字 = 1~2 tokens;中文則通常每個字就是 1 token。

Token 在工程上有兩個重要影響:

面向影響
費用API 通常按 token 計費(輸入 + 輸出分開算)
限制每次呼叫有 context window 上限(例如 200K tokens)

理解 token 讓你在設計 prompt 時更有感知,知道什麼樣的寫法會讓費用暴增。


Context:模型唯一能看見的東西

LLM 沒有記憶。每次呼叫,模型只能看到你這次傳進去的內容,稱為 context window

Context 的內容通常包含:

System Prompt   → 角色設定、行為規則
對話歷史        → 過去幾輪的 user / assistant 訊息
當前輸入        → 使用者這次說的話
工具回傳結果    → 如果有用到 tool,結果也會塞進來

「AI 記得你說過什麼」其實是應用層把歷史對話每次都一起送進去,不是模型真的記得。

Context window 的大小決定了模型能「記住」多長的對話。超過上限,最早的訊息就會被截掉。這是 AI 應用設計時最常踩的坑之一:對話太長導致模型「忘記」前面的指令或資料。


Prompt:和模型溝通的介面

Prompt 是你傳給模型的輸入。寫得好,模型表現好;寫得差,結果一塌糊塗。

System Prompt

定義模型的角色與行為邊界:

你是一個後端工程師助手,用繁體中文回答問題。
回答要簡潔,只給關鍵結論,不用解釋廢話。
如果不確定,就說不知道,不要亂猜。

Few-shot Prompting

提供幾個範例,讓模型學習你期望的輸出格式:

將以下錯誤訊息翻譯成繁體中文,格式如下:
原文:Connection refused
翻譯:連線被拒絕

原文:Timeout exceeded
翻譯:連線逾時

原文:Permission denied
翻譯:

Chain-of-Thought

要求模型逐步推理,再給出答案,對複雜問題準確率明顯提升:

請一步一步思考,然後給出結論。

Prompt 工程本質上是在告訴模型「你是誰、你要做什麼、你怎麼做」。越清楚,模型越可靠。


Tool:讓模型有手腳

LLM 本身只能輸出文字,無法執行任何操作。Tool(工具調用) 讓模型能呼叫外部函式,突破這個限制。

流程如下:

1. 你定義一組工具(函式簽名 + 描述)
2. 把工具定義連同 prompt 一起送給模型
3. 模型決定要呼叫哪個工具,輸出結構化的呼叫指令
4. 應用層執行這個函式,取得結果
5. 把結果塞回 context,模型繼續生成回覆

範例:定義一個查天氣的工具

{
  "name": "get_weather",
  "description": "查詢指定城市的目前天氣",
  "parameters": {
    "city": { "type": "string", "description": "城市名稱" }
  }
}

模型收到「台北現在幾度?」,就會輸出:

{ "tool": "get_weather", "arguments": { "city": "台北" } }

應用層執行後把結果傳回去,模型再組合成自然語言回覆給用戶。

Tool 讓 LLM 從「只會說話」變成「說話 + 做事」。


MCP:Tool 的標準化協議

當你的系統有幾十個工具,每個都要自己寫定義、串接、維護,會很累。

MCP(Model Context Protocol) 是 Anthropic 提出的開放協議,定義了「模型如何和外部工具溝通」的標準格式,讓工具可以被任何支援 MCP 的模型複用。

LLM ←→ MCP Client ←→ MCP Server ←→ 資料庫 / API / 檔案系統

MCP Server 暴露三種能力:

類型說明範例
Tools模型可以呼叫的函式查資料庫、送 API
Resources模型可以讀取的資料讀檔案、讀文件
Prompts預設的 prompt 範本分析報表的固定格式

有了 MCP,工具開發者只需要寫一次 MCP Server,任何相容的 AI 應用都能直接使用。類似 USB 統一了硬體接口的概念。


Agent:自主完成任務的執行者

把上面所有東西組合起來,就是 Agent

Agent 的核心是一個循環(ReAct Loop):

思考(Think)→ 行動(Act)→ 觀察結果(Observe)→ 再思考 → …
用戶:「幫我分析這週的銷售數據,找出異常。」

Agent 循環:
  第 1 輪:呼叫 get_sales_data(week="this_week")
  第 2 輪:讀取資料,呼叫 calculate_stats()
  第 3 輪:發現週三數字異常低,呼叫 get_order_logs(date="週三")
  第 4 輪:分析日誌,整理出結論
  輸出:「週三下午 3 點系統有 2 小時停機,導致 47 筆訂單流失,影響營業額約 NT$12 萬。」

Agent 不需要人在每一步指示,它會自己決定下一步要做什麼,一直到任務完成。

與一般的「問答模型」最大的差別:

問答模型Agent
執行方式一問一答自主多步執行
工具使用可以可以,且自主決定何時用
任務長度單輪多輪,直到完成
需要人介入每步都需要只需給目標

Agent Skill:可組合的專業能力

隨著 Agent 的應用越來越複雜,出現了 Agent Skill 的概念:把某個專業領域的能力封裝成獨立模組,讓 Agent 可以像呼叫工具一樣呼叫「技能」。

主 Agent(協調者)
  ├── Skill: 資料分析   → 專門處理數據、統計、圖表
  ├── Skill: 程式碼生成 → 專門寫 / 審 / 解釋程式碼
  ├── Skill: 網路搜尋   → 專門搜尋、整理外部資訊
  └── Skill: 報告撰寫   → 專門把結果整理成文件

Skill 和 Tool 的差別:

  • Tool:一個具體的函式,做一件事(查天氣、送 email)
  • Skill:一個包含 prompt + tools + 邏輯的完整能力模組(分析報表、產生程式碼)

Skill 讓複雜任務可以被分解、分工,不同 Skill 可以平行執行,最後由主 Agent 整合結果。這是目前 AI 應用走向「Multi-Agent 系統」的基礎架構。


總結

從 LLM 到 Agent,每一層都在解決上一層的限制:

層次解決的問題
LLM理解語言、推理、生成文字
Token / Context理解模型的輸入邊界與費用結構
Prompt讓模型的行為可預測、可控制
Tool讓模型能操作外部系統
MCP標準化工具協議,可重複使用
Agent自主多步執行,完成複雜任務
Agent Skill模組化能力,支撐 Multi-Agent 架構

理解這條鏈路,才能在實際開發 AI 應用時做出正確的架構決策:什麼情況下用單輪問答就夠了、什麼情況下需要 Agent、工具要怎麼設計、context 要怎麼管理。

LLM 只是起點,Agent 才是終點。

Gary Portfolio • © 2026