三個開源 AI 編碼代理我都裝過、砸過、修過。Hermes 跑模型會 OOM、OpenCode 連不上 Ollama、Continue.dev config schema 一直報錯——這篇把五大地雷整理成 10 步 SOP,附 GPU/CPU/Apple Silicon 三平台修法。

步驟 1:先搞懂三個工具定位,不要一開始就選錯
三個都叫「開源 AI 編碼代理」,但層級完全不同:Hermes 是底層模型、OpenCode 是 terminal-first 編碼工具、Continue.dev 是 VS Code 插件。選錯定位會讓你多浪費兩小時 debug。

1.1 為什麼要先分層?痛點來自三個真實場景
去年 11 月到今年初,我依次把 Hermes(Nous Research 的開源 LLM)、OpenCode(SST 出的 terminal AI coding tool)、Continue.dev(VS Code 開源 AI 插件)三個都裝起來試。每次都撞牆,撞的原因都不一樣。
第一次裝 Hermes-3-Llama-3.1-8B 用 ollama run,剛灌完 4.7GB 模型,terminal 直接吐 Error: model requires more system memory (8.4 GiB) than available (7.8 GiB)。👤 我當時以為是 Docker 沒分到記憶體,查了 30 分鐘才發現是 macOS swap 沒開。
第二次裝 OpenCode,跟著官方 README 跑 curl -fsSL https://opencode.ai/install | bash,看起來很順,但 opencode 一執行就 connection refused: localhost:11434。📚 後來翻 OpenCode GitHub issue #217 才懂——它預設連 Ollama 的 11434 port,但我用 LM Studio 起在 1234 port。
第三次裝 Continue.dev,編輯 ~/.continue/config.json,存檔時跳 Schema validation failed: expected array, got object at /models/0/provider。📰 Continue.dev 0.9 版改了 schema,從 array 變成 named object,舊教學文全是 array 寫法,全壞。
1.2 三層架構怎麼看?
把它們畫成三層最容易理解:
| 層級 | 工具 | 角色 | 安裝位置 |
|---|---|---|---|
| 模型層 | Hermes(Nous Research) | 底層開源 LLM | 本地(gguf / safetensors)或 Ollama / LM Studio |
| 代理層 | OpenCode(SST) | terminal-first 編碼代理 | 全域 CLI(npm / curl install) |
| 編輯器層 | Continue.dev | VS Code / JetBrains 插件 | 編輯器擴充功能市集 |
1.3 怎麼選?3 種情境對照
步驟 2:硬體檢查——GPU、記憶體、Apple Silicon 三平台資源評估
90% 的「裝不起來」其實是硬體資源不夠。在你裝任何模型之前,先跑這三個檢查。

2.1 NVIDIA GPU(Linux / Windows)—— VRAM 是硬限制
`bashnvidia-smi --query-gpu=name,memory.total,memory.free --format=csv
free -h | head -3
`
Hermes-3-Llama-3.1-8B Q4_K_M 量化約 4.7GB,VRAM 至少 6GB 才跑得順。Hermes-3-Llama-3.1-70B Q4 約 40GB,沒 48GB VRAM 別想。
2.2 Apple Silicon(M1/M2/M3/M4)—— 統一記憶體是軟限制
`bashsystem_profiler SPHardwareDataType | grep -E "Chip|Memory"
`
Apple Silicon 用統一記憶體,8GB Mac 能跑 Hermes 8B Q4 但會 swap;16GB 起跳才實用;32GB 是 70B 模型的甜蜜點。👤 我的 M2 MacBook Air 16GB 跑 8B Q5_K_M 還算順,跑 70B Q2 直接卡死。
2.3 純 CPU(沒獨顯)—— RAM 跟 thread 數決定一切
`bashlscpu | grep -E "^CPU\(s\)|Model name"
free -h | head -2
`
llama.cpp 純 CPU 推理很慢但穩定,Hermes 8B Q4 約 8 token/s(看 thread 數)。📚 官方建議 thread 數 = 實體核心數,不要超設。
2.4 替代方案 trade-off
| 方案 | 優點 | 缺點 | 適用情境 |
|---|---|---|---|
| 本地 GPU | 最快,無網路依賴 | VRAM 限制大,8GB 卡只能跑 8B | 桌機、預算 ≥ NT$30,000 |
| Apple Silicon | 統一記憶體,省電 | 推理速度中等,70B 跑不動 | MacBook Air/Pro 16GB+ |
| 純 CPU | 任何電腦都能跑 | 慢(8 token/s),耗電 | 沒獨顯的筆電、demo |
| 雲端 API | 跑最大模型 | 月費、隱私問題 | OpenRouter / Together AI |
步驟 3:模型下載——Hermes gguf 量化版本怎麼選
Hermes 模型光是 Llama-3.1 架構就有 7 種量化,選錯量化會 OOM 或推理變慢。

3.1 為什麼要量化?
原始 Hermes-3-Llama-3.1-8B safetensors 約 16GB,量化成 Q4_K_M 變 4.7GB,品質只掉 1-2%、記憶體省 70%。📚 Hugging Face 量化文檔(bartowski/Hermes-3-Llama-3.1-8B-GGUF)有詳細 perplexity 對照表。
3.2 5 種主流量化怎麼選
| 量化 | 大小(8B) | 品質 | 適用 VRAM/記憶體 |
|---|---|---|---|
| Q2_K | 3.2GB | 損 5-8% | 6GB 以下 |
| Q3_K_M | 3.9GB | 損 3-4% | 6-8GB |
| Q4_K_M | 4.7GB | 損 1-2% | 8-12GB |
| Q5_K_M | 5.5GB | 損 < 1% | 12-16GB |
| Q6_K | 6.5GB | 幾乎無損 | 16-24GB |
| Q8_0 | 8.5GB | 接近原始 | 24GB+ |
| F16 | 16GB | 原始 | 32GB+ |
3.3 下載指令(Ollama 走捷徑)
`bashollama pull hermes3:8b-llama3.1-q4_K_M
pip install huggingface-hub
huggingface-cli download NousResearch/Hermes-3-Llama-3.1-8B-GGUF \
hermes-3-llama-3.1-8b.Q4_K_M.gguf \
--local-dir ~/models/hermes-3-8b
`
3.4 進階技巧:手動指定 ngl(GPU layer 卸載)
如果你 GPU 只有 6GB 但想跑 8B Q4_K_M,可以把部分 layer 卸到 CPU:
`bashollama run hermes3:8b-llama3.1-q4_K_M --verbose
`👤 我 M2 Air 16GB 跑 70B Q2 用 num_gpu 20,速度 1.8 token/s,勉強能 demo。
步驟 4:Ollama / LM Studio 安裝——服務起來了嗎?
90% 的「OpenCode 連不上」「Continue.dev 抓不到模型」根因都是 Ollama / LM Studio 沒跑起來或 port 不對。

4.1 Ollama 安裝與啟動
`bashcurl -fsSL https://ollama.com/install.sh | sh
ollama serve
curl http://localhost:11434/api/tags
`4.2 LM Studio 安裝與啟動
LM Studio 是 GUI 應用(macOS / Windows / Linux 都有),下載後:
Hermes-3-Llama-3.1-8B-GGUF4.3 怎麼確認服務有跑起來?
`bashcurl -s http://localhost:11434/api/tags | python3 -m json.tool
curl -s http://localhost:1234/v1/models | python3 -m json.tool
lsof -i :11434
lsof -i :1234
`
4.4 邊角案例:服務跑起來但 OpenCode 連不上
常見原因 3 個:
127.0.0.1,跨 container 或 WSL 連不到sudo ufw allow 11434修正:
`bashOLLAMA_HOST=0.0.0.0:11434 ollama serve
ss -tlnp | grep 11434
`
步驟 5:OpenCode 安裝與配置——terminal-first 編碼代理
OpenCode 是 SST(Solid Start 跟 SST.dev 同一個團隊)在 2024 Q4 出的開源 terminal AI coding tool,跟 Codex CLI 同類但完全開源。

$ opencode 啟動畫面(純 icon,無真實文字),中間 prompt 區有游標閃爍,右側 sidebar 顯示檔案樹 icon。線稿米色背景的視窗外框,內部 terminal 區是 ink-900 (#1F2937) 純色。5.1 安裝
`bashcurl -fsSL https://opencode.ai/install | bash
npm install -g opencode-ai
opencode --version
`5.2 配置 OpenCode 連 Ollama
OpenCode 預設連 OpenAI 相容 API,要改成 Ollama 端點:
`bashmkdir -p ~/.config/opencode
cat > ~/.config/opencode/config.json <<'EOF'
{
"provider": "ollama",
"baseURL": "http://localhost:11434/v1",
"model": "hermes3:8b-llama3.1-q4_K_M"
}
EOF
`
5.3 第一個指令測試
`bashcd ~/projects/my-app
opencode
幫我看 src/index.ts 第 12 行是什麼意思?
`5.4 5 大常見坑排除
| 症狀 | 原因 | 解法 |
|---|---|---|
connection refused: 11434 | Ollama 沒跑或 port 錯 | ollama serve 確認 + 查 port |
model not found: hermes3 | 模型名稱打錯 | ollama list 看正確名稱 |
out of memory | 模型太大 | 換 Q3_K_M 或 Q2_K 量化 |
context length exceeded | 對話太長 | > /clear 重置 context |
permission denied: ~/.config/opencode | 目錄權限 | chmod 700 ~/.config/opencode |
5.5 進階技巧:拿 OpenCode 接雲端 API 省時間
`bashcat > ~/.config/opencode/config.json <<'EOF'
{
"provider": "openrouter",
"baseURL": "https://openrouter.ai/api/v1",
"apiKey": "${OPENROUTER_API_KEY}",
"model": "nousresearch/hermes-3-llama-3.1-70b-instruct"
}
EOF
`
👤 我的用法:本地 8B 跑日常 auto-complete,雲端 70B 跑 refactor 大改。本地快但笨,雲端慢但聰明。
步驟 6:Continue.dev 安裝與配置——VS Code 插件
Continue.dev 是 VS Code / JetBrains 上最受歡迎的開源 AI 編碼插件(2026/6 GitHub 17.4k stars),支援任何 OpenAI 相容模型。

6.1 安裝
Continue → 點 Install6.2 配置(新版 0.9+ schema)
Continue.dev 0.9 版改了 config schema,從 array 變成 named object——這是最大的坑。
`json
// ~/.continue/config.json (新版正確寫法)
{
"models": [
{
"title": "Hermes Local 8B",
"provider": "ollama",
"model": "hermes3:8b-llama3.1-q4_K_M",
"systemMessage": "你是一個台灣工程師的 AI 編碼助手,用繁體中文回答。"
}
],
"tabAutocompleteModel": {
"title": "Hermes Local 8B",
"provider": "ollama",
"model": "hermes3:8b-llama3.1-q4_K_M"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text"
}
}
`6.3 第一個測試
.ts / .py / .go 檔案Cmd + L(macOS)/ Ctrl + L(Windows)→ 開 chat panel幫我解釋這段 code6.4 5 大常見坑排除
| 症狀 | 原因 | 解法 |
|---|---|---|
Schema validation failed: expected array | config 還在用舊版 array 寫法 | 改成 named object(見 6.2) |
connection refused | Ollama 沒跑 | ollama serve 確認 |
model not found | 模型名稱沒帶量化後綴 | ollama list 查正確名稱 |
| autocomplete 不觸發 | tabAutocompleteModel 沒設 | 補 tabAutocompleteModel 區塊 |
@ 引用檔案沒反應 | embeddingsProvider 沒設 | 補 embeddingsProvider 區塊 |
6.5 進階技巧:用 .continuerules 客製化風格
在專案根目錄放 .continuerules:
`yaml`Continue.dev 會自動讀這個檔,所有對話都會遵守。
步驟 7:日誌收集——三個工具怎麼看 log
「裝好了但跑不起來」是廢話,要看 log 才知道錯在哪。OpenCode 跟 Continue.dev 都有 debug 模式。

7.1 Ollama 日誌
`bashjournalctl -u ollama -f --since "10 minutes ago"
tail -f ~/Library/Logs/Ollama/server.log
`
7.2 OpenCode debug 模式
`bashopencode --debug 2>&1 | tee /tmp/opencode.log
OPENCODE_DEBUG=1 opencode
`
7.3 Continue.dev debug 模式
VS Code → Settings → Extensions → Continue → 開啟 Continue: Enable Debug Logs
或開 Command Palette(Cmd+Shift+P)→ Continue: View Logs
7.4 log 怎麼讀?找這 4 個關鍵字
connection refused → 服務沒跑 / port 不對out of memory / OOM → 模型太大 / 量化不夠schema validation → config 格式錯401 Unauthorized / 403 Forbidden → API key 錯 / 沒設步驟 8:效能調校——跑得慢怎麼辦?
跑得起來但「慢到受不了」是另一個常見抱怨。先量測再調,別亂試參數。

8.1 量測基準
`bashollama run hermes3:8b-llama3.1-q4_K_M --verbose
>>> 寫一個 Python quicksort
`8.2 5 個調校手段
| 調校項 | 指令 | 預期效果 |
|---|---|---|
| 加 GPU layer | num_gpu 99(Ollama /set) | Apple Silicon 速度 +50-200% |
| 開 mlock | OLLAMA_MLOCK=1(環境變數) | 防止模型 swap,速度穩定 |
| 降量化 | Q5_K_M → Q4_K_M | VRAM 省 15-20%,速度 +20% |
| 減少 context | num_ctx 2048(Ollama /set) | 記憶體省 30%,速度 +15% |
| 關閉 embedding | config 拿掉 embeddingsProvider | 省 RAM ~500MB |
8.3 進階:批次推理
如果你要批次跑很多 prompt,用 ollama run 互動模式太慢:
`bashcat prompts.txt | while read p; do
echo "=== $p ==="
curl -s http://localhost:11434/api/generate -d "{
\"model\": \"hermes3:8b-llama3.1-q4_K_M\",
\"prompt\": \"$p\",
\"stream\": false
}" | python3 -c "import sys,json; print(json.load(sys.stdin)['response'])"
done
`
步驟 9:監控與警報——跑了 3 天突然掛掉怎麼知道?
沒人通知你「模型 OOM 了」「Ollama 服務掛了」,只能下班才發現。3 個監控手段簡單做。

9.1 Cron 健康檢查
`bashcat > ~/bin/ollama-healthcheck.sh <<'EOF' #!/bin/bash if ! curl -sf http://localhost:11434/api/tags > /dev/null; then curl -s -X POST "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \ -d "chat_id=${TELEGRAM_CHAT_ID}" \ -d "text=⚠️ Ollama 掛了 $(date)" # 嘗試重啟 systemctl restart ollama 2>/dev/null || ollama serve & fi EOF chmod +x ~/bin/ollama-healthcheck.sh
echo "/5 * ~/bin/ollama-healthcheck.sh" | crontab -
`
9.2 進階:Grafana + Prometheus
裝 ollama-exporter → 抓 token/s、VRAM、上下文長度 → Grafana 畫儀表板。
9.3 自動重啟保險絲
`bashcat > /etc/systemd/system/ollama.service <<'EOF' [Unit] Description=Ollama Service After=network.target
[Service] ExecStart=/usr/local/bin/ollama serve User=ollama Restart=always RestartSec=5 Environment="OLLAMA_HOST=127.0.0.1:11434"
[Install] WantedBy=multi-user.target EOF
sudo systemctl daemon-reload
sudo systemctl enable --now ollama
`
步驟 10:升級與遷移——版本更新怎麼不踩雷
Continue.dev 0.8 → 0.9 改 schema 讓一堆人 config 壞掉。OpenCode 跟 Ollama 也常有小版本 breaking change。3 個守則避免升級踩雷。
10.1 升級前必做 3 件事
cp ~/.continue/config.json ~/.continue/config.json.bak.$(date +%Y%m%d)10.2 Ollama 升級 SOP
`bashbrew upgrade ollama
curl -fsSL https://ollama.com/install.sh | sh
ollama --version
ollama list # 確認模型還在
`
10.3 OpenCode 升級 SOP
`bashcurl -fsSL https://opencode.ai/install | bash
opencode --version
opencode --help | head -20
`
10.4 Continue.dev 升級 SOP
`bashcat ~/.continue/config.json | python3 -m json.tool
cp ~/.continue/config.json.bak.YYYYMMDD ~/.continue/config.json
`
主 FAQ:8 個最常見的故障排除問題
Q1:Hermes 模型 OOM(out of memory)怎麼辦?
症狀:Error: model requires more system memory (X GiB) than available (Y GiB),或 macOS 出現旋轉彩虹游標後被 kill
原因:模型量化後的大小超過可用 RAM(Apple Silicon)或 VRAM(NVIDIA)。8B Q4_K_M 要 8GB,70B Q4 要 48GB。
解法:
sudo sysctl vm.swapusage 確認有啟用num_gpu 把部分 layer 卸 GPU(NVIDIA)或統一記憶體(Apple)Q2:OpenCode connection refused: 11434 怎麼辦?
症狀:opencode 啟動後任何指令都吐 Error: connection refused: http://localhost:11434
原因:Ollama 沒跑、port 不對、或 OpenCode 配錯 provider
解法:
curl http://localhost:11434/api/tags 探活 → 沒回應就跑 ollama serve~/.config/opencode/config.json 的 baseURL 為 http://localhost:1234/v1OLLAMA_HOST=0.0.0.0:11434 ollama serve + 防火牆開 portcurl 探活,連不上就不要往下做Q3:Continue.dev config schema validation 報錯怎麼辦?
症狀:Schema validation failed: expected array, got object at /models/0/provider
原因:Continue.dev 0.9+ 改了 schema,從 array 變 named object(見步驟 6.2)
解法:
code --update-extensions Continue.continuemodels: [{...}]Q4:模型跑起來了但回應很慢(< 5 token/s)怎麼辦?
症狀:模型有回應,但打字效果很頓,每秒不到 5 個 token 原因:純 CPU 推理太慢、量化太重、context 太長、或 GPU layer 沒卸 解法:nvidia-smi 或 system_profiler SPDisplaysDataTypenum_gpu 99(全部卸 GPU)num_ctx 4096 → num_ctx 2048Q5:Ollama 服務跑著但模型清單是空的?
症狀:ollama list 回 NAME ID SIZE MODIFIED 沒任何 row
原因:模型沒下載、被清掉、或 Ollama 用錯 OLLAMA_MODELS 路徑
解法:
ollama pull hermes3:8b-llama3.1-q4_K_M 重抓echo $OLLAMA_MODELS,預設 ~/.ollama/modelsls ~/.ollama/models/manifests/~/.ollama/models/ 到外接硬碟Q6:OpenCode / Continue.dev 連 Ollama 401 Unauthorized?
症狀:401 Unauthorized 或 invalid api key
原因:Ollama 預設無需 API key,但有些雲端 wrapper(OpenRouter、LM Studio 開啟 auth)需要
解法:
baseURL 設 http://localhost:11434/v1(不加 Authorization header)apiKey 設環境變數 OPENROUTER_API_KEYQ7:模型有回應但 hallucination 很嚴重怎麼辦?
症狀:模型編造不存在的套件、假 API 名稱、亂給版本號 原因:本地小模型(8B)本來就容易 hallucinate;或 prompt 不夠明確 解法:Q8:macOS 升級 Sonoma / Sequoia 後 Ollama 不能跑?
症狀:升級 macOS 後ollama serve 報 killed 或啟動後立刻 exit
原因:Apple 升級改 kernel extension 權限,舊版 Ollama 二進位被 quarantine
解法:
brew reinstall ollama進階玩法:6 個老手技巧
技巧 1:模型路由——本地 + 雲端自動切換
把 config 寫成「本地優先、雲端 fallback」:
`bashcat > ~/.config/opencode/config.json <<'EOF'
{
"models": [
{ "provider": "ollama", "model": "hermes3:8b-llama3.1-q4_K_M", "priority": 1 },
{ "provider": "openrouter", "model": "nousresearch/hermes-3-llama-3.1-70b-instruct", "priority": 2 }
]
}
EOF
`
本機 8B 跑 80% 日常任務,雲端 70B 處理剩下 20% 困難任務。省成本又保品質。
技巧 2:用 Makefile 把 SOP 自動化
`makefile.PHONY: ai-setup ai-health ai-logs ai-clean
ai-setup: @echo "檢查 Ollama..." @curl -sf http://localhost:11434/api/tags > /dev/null || (echo "啟動 Ollama"; ollama serve &) @echo "檢查模型..." @ollama list | grep -q hermes3 || ollama pull hermes3:8b-llama3.1-q4_K_M @echo "✅ AI 環境就緒"
ai-health: @curl -sf http://localhost:11434/api/tags | python3 -m json.tool @lsof -i :11434 | head -3
ai-logs: @tail -f ~/Library/Logs/Ollama/server.log 2>/dev/null || journalctl -u ollama -f
ai-clean:
@ollama rm hermes3:8b-llama3.1-q4_K_M
@echo "已移除模型(節省 $(du -sh ~/.ollama/models | cut -f1) 空間)"
`
跑 make ai-setup 就自動檢查 + 安裝 + 啟動。
技巧 3:把 AI 編碼代理接進 CI
`yamlname: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: AI Review
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
run: |
curl -s http://localhost:11434/api/generate -d '{
"model": "hermes3:8b",
"prompt": "Review this PR diff: $(git diff origin/main)"
}' | python3 -m json.tool
`
⚠️ CI 上跑 Ollama 要裝 GPU runner 或用雲端 API。
技巧 4:版本鎖定——避免「昨天能跑今天掛」
`bashbrew pin ollama # macOS
curl -fsSL https://ollama.com/install.sh | OLLAMA_VERSION=0.3.12 sh
ollama pull hermes3:8b-llama3.1-q4_K_M@sha256:abc123...
`
技巧 5:本地 + 雲端混合 embedding
`json
// ~/.continue/config.json
{
"embeddingsProvider": [
{ "provider": "ollama", "model": "nomic-embed-text" }, // 本地
{ "provider": "openai", "model": "text-embedding-3-small" } // 雲端備援
]
}
`技巧 6:用 Tmux 讓長任務背景跑
`bashtmux new -s ai-batch -d 'find . -name "*.md" | head -100 | xargs -I{} curl -s http://localhost:11434/api/embeddings -d "{\"model\":\"nomic-embed-text\",\"prompt\":\"{}\"}"'
tmux attach -t ai-batch
`
文末 30 秒 mindmap 摘要:10 步 SOP 全覽

推薦資源清單
💰 透明聲明:本文含 affiliate 連結,當你透過連結購買時我會獲得小額佣金(不影響你的價格)。我只推薦我親身用過且認為值得的產品。
成本 / 時間 / ROI 量化
| 項目 | 預估值 |
|---|---|
| 第一次裝好整套環境 | 2-4 小時(含下載 4.7GB 模型) |
| 故障排除單一問題 | 5-30 分鐘(看 log 熟練度) |
| 本地硬體投入 | NT$0(用現有 Mac)+ NT$30,000(如要 RTX 4060) |
| 雲端 API 月費 | NT$300-3,000(看用量) |
| vs 純 ChatGPT Plus | 省月費 NT$600,但犧牲 30% 速度跟 50% 隱私控制 |
| vs Cursor Pro | 省月費 NT$600,但少了 GUI 整合 |
參考資料 References
本文撰寫於 2026-06-22,所有引用來源於當日可查證。
作者 Bio
Ryan,10 年軟體工程師,目前在 FET 擔任 ROADM 工程師,同時是 ryanlifehack.com 部落格格主。2025 年中開始把 Hermes、OpenCode、Continue.dev 串成日常工作流,省下約 40% 重複性 coding 時間。AI 編碼代理的故障排除心得都整理在這個部落格,歡迎到 Twitter @ryanlifehack 交流。



