H繁中版
文件教學與最佳實踐local ollama setup
<!-- Source: https://hermesbible.com/docs/guides/local-ollama-setup -->

問題

雲端 LLM API 按 token 收費。一次重度的編碼會議可能花費 $5–20。對於個人專案、學習或隱私敏感的工作來說,這會累積起來——而且你每次對話都在向第三方發送資料。

本指南解決什麼問題

你將設定完全在你自己硬體上運行的 Hermes Agent,使用 Ollama 作為模型後端。無需 API 金鑰、無需訂閱、無需資料離開你的機器。設定完成後,Hermes 的運作方式與使用 OpenRouter 或 Anthropic 時完全相同——終端命令、檔案編輯、網路瀏覽、委派——但模型在本地運行。

完成後,你將擁有:

  • Ollama 提供一個或多個開放權重模型
  • Hermes 作為自訂端點連接到 Ollama
  • 一個可以編輯檔案、執行命令和瀏覽網路的本地代理
  • 可選:完全由你自己硬體驅動的 Telegram/Discord 機器人

你需要什麼

組件最低需求建議配置
RAM8 GB(用於 3B 模型)32+ GB(用於 27B+ 模型)
儲存空間5 GB 可用30+ GB(用於多個模型)
CPU4 核心8+ 核心(AMD EPYC、Ryzen、Intel Xeon)
GPU非必需擁有 8+ GB VRAM 的 NVIDIA GPU 可顯著加速

提示 — 僅 CPU 可以運行,但回應速度較慢

Ollama 可以在僅 CPU 的伺服器上運行。在現代 8 核心 CPU 上運行 9B 模型可達到約每秒 10 個 token。在 CPU 上運行 31B 模型較慢(約每秒 2–5 個 token)——每次回應需要 30–120 秒,但它可以運作。GPU 可顯著改善此情況。對於僅 CPU 的設定,請透過環境變數擴大 API 逾時(這不是 config.yaml 的鍵值):

# ~/.hermes/.env
HERMES_API_TIMEOUT=1800   # 30 分鐘 — 為較慢的本地模型提供充裕時間

步驟 1:安裝 Ollama

curl -fsSL https://ollama.com/install.sh | sh

驗證它是否正在運行:

ollama --version
curl http://localhost:11434/api/tags   # 應返回 {"models":[]}

步驟 2:拉取模型

根據你的硬體選擇:

模型磁碟大小所需 RAM工具呼叫最適合
gemma4:31b~20 GB24+ GB最佳品質——強大的工具使用和推理能力
gemma2:27b~16 GB20+ GB對話任務,無工具使用
gemma2:9b~5 GB8+ GB快速聊天、問答——無法呼叫工具
llama3.2:3b~2 GB4+ GB僅限輕量級快速回答

警告 — 工具呼叫很重要

Hermes 是一個代理式助手——它透過工具呼叫來編輯檔案、執行命令和瀏覽網路。不支援工具呼叫的模型只能聊天;它們無法採取行動。要獲得完整的 Hermes 體驗,請使用支援工具的模型(如 gemma4:31b)。

拉取你選擇的模型:

ollama pull gemma4:31b

資訊 — 多個模型

你可以拉取多個模型,並在 Hermes 中使用 /model 切換它們。Ollama 按需將活動模型載入記憶體,並自動卸載閒置的模型。

驗證模型是否正常工作:

curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4:31b",
    "messages": [{"role": "user", "content": "Say hello"}],
    "max_tokens": 50
  }'

你應該看到一個包含模型回覆的 JSON 回應。

步驟 3:設定 Hermes

執行 Hermes 設定精靈:

hermes setup

當提示選擇供應商時,選擇 Custom Endpoint 並輸入:

  • Base URL: http://localhost:11434/v1
  • API Key: 留空或輸入 no-key(Ollama 不需要)
  • Model: gemma4:31b(或你拉取的任何模型)

或者,直接編輯 ~/.hermes/config.yaml

model:
  default: "gemma4:31b"
  provider: "custom"
  base_url: "http://localhost:11434/v1"

步驟 4:開始使用 Hermes

hermes

就這樣。你现在運行的是一個完全本地的代理。試試看:

You: List all Python files in this directory and count the lines of code in each

You: Read the README.md and summarize what this project does

You: Create a Python script that fetches the weather for Ho Chi Minh City

Hermes 將使用終端工具、檔案操作和你的本地模型——無需雲端呼叫。

步驟 5:為你的任務選擇合適的模型

並非每個任務都需要最大的模型。這裡是一個實用指南:

任務建議模型原因
檔案編輯、程式碼、終端命令gemma4:31b唯一具有可靠工具呼叫的模型
快速問答(無需工具使用)gemma2:9b對話任務的快速回應
輕量級聊天llama3.2:3b最快,但功能非常有限

注意

對於完整的代理工作(編輯檔案、執行命令、瀏覽),gemma4:31b 目前是支援工具呼叫的最佳本地選擇。請查看 Ollama 的模型庫 以取得更新的模型——工具支援正在快速擴展。

在會話中即時切換模型:

/model gemma2:9b

步驟 6:優化速度

增加 Ollama 的上下文窗口

預設情況下,Ollama 使用 2048 個 token 的上下文。Hermes 進行帶工具的代理工作至少需要 64,000 個 token:

# 建立一個擴展上下文的 Modelfile
cat > /tmp/Modelfile << 'EOF'
FROM gemma4:31b
PARAMETER num_ctx 64000
EOF

ollama create gemma4-64k -f /tmp/Modelfile

然後更新你的 Hermes 設定,使用 gemma4-64k 作為模型名稱。

保持模型載入

預設情況下,Ollama 在 5 分鐘無活動後會卸載模型。對於持久的閘道機器人,請保持載入:

# 設定 keep-alive 為 24 小時
curl http://localhost:11434/api/generate \
  -d '{"model": "gemma4:31b", "keep_alive": "24h"}'

或在 Ollama 的環境中全域設定:

# /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_KEEP_ALIVE=24h"

使用 GPU 卸載(如果可用)

如果你有 NVIDIA GPU,Ollama 會自動將層卸載到它。使用以下命令檢查:

ollama ps   # 顯示已載入的模型和 GPU 層數

對於 12 GB GPU 上的 31B 模型,你會得到部分卸載(約 40 層在 GPU 上,其餘在 CPU 上),這仍然能帶來顯著的加速。

步驟 7:作為閘道機器人運行(可選)

一旦 Hermes 在 CLI 中本地運行,你可以將其作為 Telegram 或 Discord 機器人曝露——仍然完全在你的硬體上運行。

Telegram

  1. 透過 @BotFather 建立機器人並取得 token
  2. 新增到你的 ~/.hermes/config.yaml
model:
  default: "gemma4:31b"
  provider: "custom"
  base_url: "http://localhost:11434/v1"

platforms:
  telegram:
    enabled: true
    token: "YOUR_TELEGRAM_BOT_TOKEN"
  1. 啟動閘道:
hermes gateway

現在在 Telegram 上訊息你的機器人——它會使用你的本地模型回應。

Discord

  1. discord.com/developers 建立 Discord 應用程式
  2. 新增到設定:
platforms:
  discord:
    enabled: true
    token: "YOUR_DISCORD_BOT_TOKEN"
  1. 啟動:hermes gateway

步驟 8:設定備用方案(可選)

本地模型在處理複雜任務時可能會有困難。設定一個僅在本地模型失敗時啟用的雲端備用方案:

model:
  default: "gemma4:31b"
  provider: "custom"
  base_url: "http://localhost:11434/v1"

fallback_providers:
  - provider: openrouter
    model: anthropic/claude-sonnet-4

這樣,你的 90% 使用量是免費的(本地),只有困難的任務才會使用付費 API。

疑難排解

啟動時「連接被拒絕」

Ollama 沒有運行。啟動它:

sudo systemctl start ollama
# 或
ollama serve

回應速度慢

  • 檢查模型大小與 RAM: 如果你的模型需要的 RAM 超過可用容量,它會使用磁碟交換。使用較小的模型或增加 RAM。
  • 檢查 ollama ps 如果沒有 GPU 層被卸載,回應速度受 CPU 限制。這對於僅 CPU 的伺服器來說是正常的。
  • 減少上下文: 大型對話會減慢推理速度。定期使用 /compress,或在設定中設定較低的壓縮閾值。

模型不遵循工具呼叫

較小的模型(3B、7B)有時會忽略工具呼叫指令,產生純文字而非結構化的函數呼叫。解決方案:

  • 使用較大的模型gemma4:31bgemma2:27b 處理工具呼叫的效果比 3B/7B 模型好得多。
  • Hermes 有自動修復功能 — 它會檢測格式錯誤的工具呼叫並嘗試自動修復。
  • 設定備用方案 — 如果本地模型失敗 3 次,Hermes 會回退到雲端供應商。

上下文窗口錯誤

預設的 Ollama 上下文(2048 個 token)對於代理工作來說太小了。請參閱步驟 6以增加它。

成本比較

以下是本地運行與雲端 API 相比所節省的費用,基於典型的編碼會議(約 100K token 輸入,約 20K token 輸出):

供應商每次會議費用每月費用(每日使用)
Anthropic Claude Sonnet~$0.80~$24
OpenRouter(GPT-4o)~$0.60~$18
Ollama(本地)$0.00$0.00

你唯一的成本是電費——根據硬體不同,每次會議大約 $0.01–0.05。

本地運行效果良好的功能

  • 檔案編輯和程式碼產生 — 9B 以上的模型處理得很好
  • 終端命令 — Hermes 封裝命令、執行它、讀取輸出,無論使用什麼模型
  • 網路瀏覽 — 瀏覽器工具負責取得內容;模型只負責解讀結果
  • Cron 任務和排程任務 — 與雲端設定完全相同
  • 多平台閘道 — Telegram、Discord、Slack 都可以使用本地模型

雲端模型更好的地方

  • 非常複雜的多步驟推理 — 70B+ 或 Claude Opus 等雲端模型明顯更好
  • 長上下文窗口 — 雲端模型提供 100K–1M 個 token;本地運行時通常預設低於 Hermes 的 64K 最低要求,除非你進行設定
  • 大型回應的速度 — 對於長文本產生,雲端推理比僅 CPU 的本地運行更快

最佳方案:將本地用於日常任務,為困難任務設定雲端備用方案。



註冊 Microsoft Graph 應用程式