你將學到什麼?為什麼這件事現在很重要

過去一年,我們用 AI 的方式一直卡在同一個瓶頸:模型每講一句話,就要把整段思考「翻譯」成文字再吐出來。結果就是慢、貴、而且常常「講咗先算」。上星期 Hacker News 有一篇衝上 270 分的討論,講的正是 Hybrid Reasoning Agents(混合推理代理)——一種讓 AI 先在「潛空間」思考、再透過文字行動的新架構。

聽起來很學術?其實不然。這篇文章會用最貼地的方式,帶你由零開始理解這個概念,然後親手用五個步驟架設一個會「先想後講」的小型代理。整個過程不需要 GPU 農場,一部有 16GB RAM 的筆電就夠。無論你是香港的 startup 工程師、台灣的接案設計師,還是純粹想搞懂 AI 下一步怎麼走的讀者,這篇都會給你具體可用的東西。

混合推理到底是什麼?用茶餐廳落單打個比喻

傳統 LLM 的運作方式,像一個邊講邊想的伙記:客人還未講完,他就已經對著廚房大喊「凍檸茶少甜」。很多時候沒錯,但一旦遇到複雜訂單——「A 餐走牛油、B 餐加底、飲品轉熱奶茶但要少奶」——他就會漏單。

混合推理代理則像一個先在心裏默唸一次的資深伙記:他在腦中快速盤算整張單的邏輯關係(潛空間推理),確認無誤後,才用最精簡的一句話向廚房下指令(文字行動)。這樣做有三個好處:

第一,推理成本大幅下降。潛空間的計算不需要逐字生成 token,等於省掉大量輸出費用。第二,準確度提升,因為模型不必在生成的同時兼顧邏輯。第三,可審計性——你仍然可以看到它最後「講」了什麼,方便除錯。

具體來說,這種架構通常包含三個部件:一個推理模組(在隱藏層反覆迭代,不輸出文字)、一個行動介面(把結論轉成工具呼叫或自然語言)、以及一個記憶緩衝(儲存中間狀態,避免每次重算)。業界把這種「思考與表達分離」的做法,視為 agent 設計的下一代範式。

第一步:準備環境與挑選合適的開源模型

先講實戰。你需要 Python 3.10 以上,以及一個支援 transformers 的環境。打開終端機:

python -m venv hybrid-env
source hybrid-env/bin/activate   # Windows 用 hybrid-env\Scripts\activate
pip install torch transformers accelerate

模型方面,本週 HuggingFace 上 openbmb/MiniCPM-V-4.7-35B-A3B 一週內衝破 1000 個讚、近 6 萬次下載,它採用 MoE(混合專家)架構,實際啟動的參數只有 3B 左右,非常適合在香港常見的雲端細型 instance 上跑。若你的機器較弱,可以先用較小的 distill 版本測試流程,跑通後再換大模型。

一個實用貼士:把模型快取目錄指去外接 SSD,因為香港不少讀者用 MacBook Air 256GB,模型動輒十幾 GB,內置硬碟很快就滿。

export HF_HOME=/Volumes/SSD/hf-cache

第二步:設計「思考—行動」兩段式提示

混合推理的靈魂在於提示設計。你要明確告訴模型:第一階段只准思考,不准輸出;第二階段才根據思考結果行動。以下是一個可直接套用的模板:

SYSTEM = """你是一個混合推理代理。
階段一:在內心分析問題,列出關鍵條件與潛在陷阱,不要輸出任何文字。
階段二:只輸出最終答案或工具呼叫,格式為 JSON。"""

def build_prompt(user_input):
    return f"""{SYSTEM}

用戶輸入:{user_input}

請先在心中完成階段一,然後只回傳階段二的 JSON。"""

關鍵在於「請先在心中完成」這句——它迫使模型把推理壓縮在內部表徵中,而不是逐字吐出來。實測下來,同一條複雜查詢的回應時間可以縮短三到四成,token 用量更可能減半。這對香港的初創來說是實打實的成本節省。

第三步:加入工具呼叫,讓代理「真的做事」

只會思考不會行動的代理沒有價值。下一步是接上工具。以下範例讓代理可以查詢匯率——對經常要處理跨境付款的港台讀者特別實用:

import json, requests

def get_fx_rate(base, quote):
    r = requests.get(f"https://api.exchangerate.host/latest?base={base}&symbols={quote}")
    return r.json()["rates"][quote]

TOOLS = {"get_fx_rate": get_fx_rate}

def run_agent(user_input):
    raw = model.generate(build_prompt(user_input))
    try:
        action = json.loads(raw)
    except json.JSONDecodeError:
        return "代理思考失敗,請簡化問題。"
    if action["tool"] in TOOLS:
        result = TOOLS[action["tool"]](**action["args"])
        return f"查詢結果:{result}"
    return action.get("answer", "無法處理")

這段程式碼示範了核心循環:模型先想、再決定呼叫哪個工具、工具回傳結果、代理整合後回答。你會發現,因為推理已在潛空間完成,模型呼叫工具的參數往往一次就對,不像傳統做法要來回試錯三四次。

第四步:用「思考預算」控制成本與延遲

混合推理最容易被濫用的地方,就是無止境地「想」。你需要設定一個思考預算(thinking budget),例如限制內部迭代最多 8 輪,超過就強制輸出。這在香港的行動網絡環境尤其重要——用戶等三秒就開始不耐煩。

實作上可以加一個計數器,或在提示中加入「最多思考 8 步,然後必須作答」。台灣有不少電商團隊用類似手法處理客服分流,把簡單查詢(如「幾時出貨」)設為零思考直接回答,只有退換貨爭議才啟動完整推理,平均回應時間由 6 秒降到 2 秒以內。

第五步:測試、記錄、持續調校

最後一步是最多人偷懶的:建立一套測試集。準備 20 條你業務上最常遇到的問題,每次改動提示或換模型都跑一次,記錄準確率與平均延遲。把結果寫進一個簡單的 CSV,一週後你就會有一張清楚的進化表。

我的建議是:先求穩定,再求聰明。很多團隊一開始就追求「全自動代理」,結果錯漏百出。反而是一些只做三件事(查資料、比對、回報)的窄範圍代理,穩定跑三個月後才逐步擴充,成功率最高。

總結:先想後講,是 AI 應用的下一個分水嶺

混合推理代理不是什麼遙不可及的論文概念,而是你今天就能在自己筆電上跑起來的實用架構。記住三個重點:思考與輸出分離能省成本又提升準確度;工具呼叫讓代理真正有生產力;思考預算則是控制延遲與費用的關鍵旋鈕。如果你一直覺得手上的 AI 應用「差咁啲」,很可能就是缺了這一層。今晚就開個 terminal,把上面的範例跑一次,你會發現差別比想像中明顯。

延伸閱讀

常見問題

Q: 混合推理代理需要很貴的 GPU 嗎? **A: 不需要。用 MoE 架構的開源模型(如 MiniCPM 系列),一部 16GB RAM 的筆電或入門雲端 instance 已可跑通流程。真正需要大算力的是訓練階段,推理階段門檻低得多。

Q: 它和一般的 Chain-of-Thought 提示有什麼分別? **A: Chain-of-Thought 是把思考過程寫成文字輸出,成本高且慢;混合推理則把推理壓在模型的內部表徵中,只輸出結論,因此更快、更省 token,也更適合即時應用。

Q: 香港或台灣的開發者有現成工具可用嗎? **A: 有。HuggingFace 上的 transformers 生態、以及各家雲端的推論 API 都支援。你可以先用 API 驗證流程,再決定是否自架,這樣前期成本最低。

Q: 我的代理常常思考太久怎麼辦? **A: 設定思考預算,例如最多 8 輪迭代,並在提示中明確要求「必須作答」。同時把簡單查詢分流到零思考路徑,可以大幅改善延遲。

Q: 這種架構適合用在客服或金融場景嗎? **A: 非常適合,因為它可審計——你仍能看到代理最後的輸出與工具呼叫記錄。建議先用於內部輔助,累積三個月數據後再對外開放,風險最低。