從問 AI 到用 Agent · 架構補充

本地換腦實戰:把地端模型接進你的 agent

把 coding agent 的「腦」換成地端本地模型,實測下來的一句話結論:選對 agent 比選對模型更重要。同一顆開源模型,Claude Code 撞牆、aider 卻順順跑通。

🧩 本地模型怎麼接進 agent:哪條路通、哪條撞牆

本地模型 / 腦處理步驟Agent / 產出
flowchart LR
  M[("本地 / 開源模型
ollama · Cerebras
gpt-oss-120b")]:::data M --> CC(["Claude Code
深度綁定 Claude 格式"]):::result M --> AI(["aider
OpenAI 格式"]):::result CC --> X["thinking_blocks 不相容
第二回合被拒"]:::proc X --> STOP(["撞牆:多回合崩潰
檔案寫不出去"]):::result AI --> OK["多回合順跑"]:::proc OK --> P[("你的專案 repo
檔案真實落地")]:::data classDef data fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#78350f classDef proc fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#17335e classDef decision fill:#ede9fe,stroke:#7c3aed,stroke-width:2px,color:#4c1d95 classDef result fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d classDef infra fill:#e5e9f0,stroke:#475569,stroke-width:2px,color:#1e293b

同一顆 gpt-oss-120b 餵給兩個 agent:紅色路是 Claude Code,綠色路是 aider。爆掉的不是模型,是 agent 對格式的處理方式。

🚧 CC 撞牆 vs aider 跑通:對照

面向Claude Code(撞牆)aider(跑通)
訊息格式Claude 專屬,把推理存成 thinking_blocks天生走 OpenAI 格式,不產生也不預期 thinking_blocks
單回合成功(能認出自己跑在地端模型上)成功
多回合崩潰:第二回合把 thinking_blocks 連歷史送回非 Claude 模型,直接被拒順跑,不中斷
寫檔寫不出去檔案真實落地
想繞過drop_params 剝欄位失效——thinking_blocks 藏在訊息結構裡,不是 top-level 參數。硬關推理等於「買跑車拆引擎」不需要繞

🎯 為什麼「選對 agent 比選對模型更重要」

1Agent 其實分四層最易被忽略的是 agent 層
腦 (LLM)      預測下一字的模型        → 換成開源 120B
平台          模型跑在哪              → Cerebras 雲 / DGX 本地
Agent         驅動工具迴圈的程式      → 為特定模型調校 ★ 常被忽略
Harness/UI    遠端介面               → 中繼那層
2模型有能力,是殼不相容120B 沒問題
CC + gpt-oss-120b     單回合 ✓ / 多回合 ✗
aider + 同一顆腦       多回合 ✓ / 寫檔 ✓
→ 爆掉的是 CC 的處理方式,不是模型
3決策規則照腦選 agent
腦是 Claude 級 (Opus)   → 用 Claude Code 最順
腦是本地 / 開源         → 用 model-agnostic 的 aider / OpenHands
鐵律:CC 深度綁定 Claude,任何非 Claude 的腦都會被綁手綁腳
🔧 實務提醒:本地模型 + 對的 agent,才跑得順

換腦決定成敗的,不是腦有多聰明,而是「腦到手之間的管線」對不對。本地/開源模型要配 model-agnostic 的 agent(aider / OpenHands),換腦幾乎只是改一行 --model,agent、UI、流程全不用動。反過來,把地端模型硬塞進為 Claude 綁定的殼裡,再強的模型也只能單回合跑一下就卡死。先選對 agent,再談換哪顆腦。

📺 對應單集:雲端 vs 地端:AI 跑在哪裡,跟以前有什麼不一樣  |  📚 回課綱總表 →