這個單元解決什麼問題只會抄設定不懂原理,那不叫工程,那叫複製貼上工程學。這個單元把 LLM 怎麼生成、為什麼會浮動與幻覺、agentic loop 與 chat 差在哪講到你能自己判斷,讓後面每一個設定決策都有原理撐著,而不是「網路上有人這樣寫」。不是要你會手刻 transformer,是要你在調 temperature、寫規則檔、設權限時知道自己在動哪一根槓桿。
學習目標
讀完本單元,你應該能夠:- 解釋 token、tokenization 與上下文視窗,並粗估一段中文文字的 token 成本與佔用。
- 說明機率生成與 temperature 如何造成輸出浮動,以及幻覺的根本來源。
- 區分系統提示、使用者提示、工具結果三種訊息角色及其優先序,並看懂提示注入為何危險。
- 描述 agentic loop(觀察→決策→行動)與單純對話的本質差異,知道誰在主導每一步。
1. token 與 tokenization
模型不讀「字」,讀 token。token 是子詞單位(subword),由 tokenizer 依語料統計切出來,介於字元與單詞之間。英文常見一個 token 對應一個詞或詞根(running 可能切成 run + ning),中文則常一個字切成一到兩個 token。你輸入的每段文字先被切成 token 序列,模型才開始算。
這件事的工程意義很直接:你的成本與上下文佔用都以 token 計,不是以字數計。 兩個粗估經驗值先記著(都是數量級參考,不同 tokenizer 會有差異,精確值請以官方 tokenizer 為準):
- 英文:約每 4 個字元 1 個 token,或約每 0.75 個單詞 1 個 token。
- 中文:常見約每 1 個漢字 1 到 2 個 token,token 密度明顯高於英文。
2. 上下文視窗(context window)
上下文視窗是模型一次能看到的 token 上限,輸入與輸出共用這個額度。對話歷史、系統提示、你貼的檔案、模型正在生成的回覆,全部擠在同一個視窗裡。視窗滿了,最舊的內容就被擠出去,模型「忘記」前面說過的話。 截至 2026-05,主流旗艦模型標準視窗多在 20 萬 token 等級,部分提供 100 萬 token 的長視窗(多為 beta 或特定模型,且超過某門檻後計價更貴,見本單元工具對照與 02-2)。但這裡有個關鍵反直覺: 實務原則:重要任務預留一截視窗緩衝(常見抓約 20%,這是經驗粗估,無統一標準,依任務與模型自行校準),別把規則檔、對話歷史、貼上的資料堆到逼近上限。需要長上下文時,優先考慮「只放相關的」而不是「全部都放」。這也是為什麼 01-4 上下文工程 是一門獨立的功夫,而不是「視窗夠大就沒事」。3. 機率生成與浮動
LLM 是自迴歸(autoregressive)模型:它一次生成一個 token,把已生成的內容接回輸入,再預測下一個,直到產生結束符號或達到上限。每一步,模型算出的不是「唯一正確答案」,而是整個詞表上的機率分布,再從分布裡取樣一個 token。 「取樣」就是浮動的來源。控制取樣行為的主要參數:- temperature:縮放機率分布的銳利度。低溫(趨近 0)讓分布更尖,幾乎總是選最高機率的 token,輸出穩定、趨同;高溫讓分布變平,低機率 token 也有機會出線,輸出更發散、更有創意但也更不可控。
- top-p(nucleus sampling):只從累積機率達到 p 的那群候選 token 裡取樣,動態裁掉長尾。
為什麼同一個問題問兩次答案不同因為每一步都在「取樣」,不是「查表」。除非 temperature 設到 0 且其他條件固定,否則兩次生成走的是不同的隨機路徑。這不是 bug,是生成式模型的設計。要可重現,就把 temperature 壓低並固定其他變因;要發想多個方案,就把溫度調高。
這是「可驗證就驗證」的技術根據幻覺不是可以靠更好的 prompt 修掉的瑕疵,它是機率生成的固有特性。所以本 Playbook 反覆強調:可程式化驗證的主張(數值、引用是否存在、程式跑不跑得過)一律驗證,不靠「看起來合理」。模型的流暢度與正確性是兩件事,別把前者當後者。
4. 訊息角色與優先序
模型收到的不是一團文字,是一串帶角色標記的訊息。常見四種角色:| 角色 | 誰寫的 | 作用 |
|---|---|---|
| system | 平台 / 開發者 | 設定模型的身分、規則、約束,優先序最高 |
| developer | 開發者(部分平台分出此層) | 應用層指令,介於 system 與 user 之間 |
| user | 終端使用者 | 當前的請求與輸入 |
| tool | 工具執行結果 | 工具呼叫回填的資料,作為下一輪推理依據 |
CLAUDE.md、AGENTS.md 不是普通對話,而是被注入為高優先序的指令層,所以它能穩定地約束模型行為,而不是說一次就被後面的對話沖掉。
5. 工具呼叫(tool use / function calling)
工具呼叫是「對話助理」升級成「代理」的關鍵機制。你給模型一組工具的描述(名稱、用途、參數 schema),模型在生成時可以決定「這一步我要呼叫某工具」,並產生一個結構化的呼叫請求(工具名 + 參數)。 流程是這樣:- 模型判斷需要外部能力(讀檔、搜尋、執行程式),輸出一個工具呼叫請求而非一般文字。
- 你的執行環境(harness)攔截這個請求,實際執行工具,拿到結果。
- 結果以
tool角色回填進上下文,成為模型下一輪推理的依據。 - 模型讀到結果,決定下一步:再呼叫工具、或產生最終回覆。
模型不「執行」工具,只「請求」關鍵分工:模型只決定「呼叫什麼、傳什麼參數」,真正執行的是外部 harness。這個分界是所有權限控制的著力點,你能在 harness 攔截、審核、拒絕某個工具呼叫,模型本身碰不到你的檔案系統與網路,除非 harness 放行。理解這層,你才看得懂 02-2 的權限設定與 Hook 是在管什麼。
6. Agentic loop
Agent 與 chat 的本質差異,在於誰主導每一步、誰決定何時停。 單純對話是一問一答:你問,模型答,回合結束,主導權回到你手上。Agentic loop 則是模型在一個目標下自主跑多輪:7. 推論參數與深度思考
深度思考、串流、快取三個參數直接決定你的延遲與帳單,比 temperature 更影響成本。逐一拆開。 深度思考(extended thinking / reasoning effort):讓模型在給出答案前,先生成一段內部推理。它把「想」這件事顯式化,對多步推理、除錯、架構決策有實質幫助,但代價是更多 token、更慢、更貴。判準:任務需要多步推導或容易一步錯則全錯時值得開;事實查詢、簡單改寫則不必,開了只是燒錢。 串流(streaming):邊生成邊回傳 token,而非等全部生成完才一次給。它不省成本,但改善體感延遲,使用者更早看到第一個字。 提示快取(prompt caching):把重複出現的前綴(長系統提示、固定的規則檔、大段參考文件)快取起來,後續請求命中快取的部分大幅降價、降延遲。如果你的應用每次都帶一份很長且固定的 context,開快取的省幅可觀。這對「規則檔很長」的 agentic 工作流尤其有感,固定不變的CLAUDE.md 與工具定義正是快取的理想對象。
這些是成本槓桿,不是裝飾深度思考、串流、快取不是「進階玩具」,它們直接決定你每次互動的延遲與帳單。知道它們存在、知道何時該開哪個,是把工具用對的一部分。各工具的具體開關與計價見 02-2。
8. 多模態(簡述)
現代旗艦模型多數是多模態的:除了文字,還能接收影像、PDF、音訊等輸入,部分支援影像輸出。對一般工作流,這意味著你可以直接貼截圖讓模型讀錯誤畫面、丟一張架構圖讓它解析、上傳 PDF 讓它摘要。 對做視覺影像分析的研究者,多模態模型是另一條值得評估的路徑:它不取代你訓練的專用視覺模型(精度、可控性、可重現性仍是專用模型的強項),但在快速原型、影像描述、跨模態問答上能省下不少前期成本。何時用通用多模態、何時該訓專用模型,是 Part III 判斷章 的典型取捨題。工具對照(旗艦模型與上下文視窗,截至 2026-05)
模型版本與視窗是高度時效敏感的數字,下表為截至 2026-05 的快照,正式引用前請再核官方頁。| 維度 | Anthropic Claude(主範本) | OpenAI | |
|---|---|---|---|
| 旗艦模型 | Claude Opus 4.8(最強)/ Sonnet 4.6 / Haiku 4.5 | GPT-5.5(最新)/ Codex 系列(GPT-5.2-Codex 等) | Gemini 3.1 Pro |
| 標準上下文視窗 | 20 萬 token | 視模型而定,旗艦達百萬級 | 100 萬 token |
| 長視窗 | 100 萬 token beta(Opus 4.6+、Sonnet 4.5/4.6) | GPT-5.5 逾百萬 token(約 105 萬),超過約 27 萬 input 後加價 | 100 萬 token(3.1 Pro) |
| 備註 | 三層分工:Opus 深度推理 / Sonnet 主力 / Haiku 高頻低成本 | Codex 系列為 coding 特化線 | Gemini 3 Pro preview 已於 2026-03-26 停用,改用 3.1 Pro |
動手做
拿你最常用的工具,做三件事,把本單元落到你自己的環境:- 量一段文字的 token:找你最近寫的一份中文 prompt 或規格,用官方 tokenizer(或工具內建的 token 計數)量它幾個 token,對照你原本以為的字數,校準你的量感。
- 跑一次浮動實驗:同一個開放式問題,在 temperature 高與低兩種設定下各問兩次,看輸出發散程度的差異。把這個差異記在心裡,之後選溫度有依據。
- 辨識一次 agentic loop:下次用 Coding Agent 時,盯著它每一步在「觀察→決策→行動」哪個階段,數它連續做了幾個決策才回來找你。這個數字就是你「交出去的把關量」。
常見誤區
自我檢核
通過本單元的標準
- 你能向非技術同事解釋「為什麼同一個問題問兩次答案會不同」,並說清楚這不是 bug 嗎?
- 你能說明 system / user / tool 三種角色的優先序,以及提示注入為什麼是把資料誤當指令嗎?
- 你能描述一次 agentic loop 的四個階段,並指出「設定重點為何從 prompt 轉移到把關」嗎?
來源與延伸閱讀
模型版本與上下文視窗為快變動事實,以下為截至 2026-05 查證的官方來源:- Anthropic:Claude models overview:模型分層、token 上限與能力,可用 Models API 程式化查詢
max_input_tokens/max_tokens。 - Anthropic:Claude Code model configuration:Claude Code 內的模型選擇與設定(含 1M context、effort level 對照)。
- OpenAI:GPT-5.5 model:GPT-5.5 規格與逾百萬 token 視窗、超門檻計價。
- Google:Gemini API models 與 long context 文件:Gemini 3.1 Pro 與長上下文。
- ReAct 範式原始論文:Yao, et al. (2022), ReAct: Synergizing Reasoning and Acting in Language Models(ICLR 2023)。
- 其餘概念部分(token、自迴歸生成、temperature、tool use)為成熟知識,屬作者整理,不依賴單一外部來源。
- 銜接:01-4 上下文工程(如何在有限視窗裡放對東西)、02-2 Anthropic Claude 設定(這些參數的實際開關)。