點解要自托管 AI Agent?
2026 年,AI agent 工具(如 Claude Code、OpenAI Codex CLI、Hermes Agent)愈來愈流行,但大部分人都係直接用雲端服務。如果你想:
- 數據保留喺自己機度,唔洗經第三方伺服器
- 無限使用,唔受 API quota 限制(配合本地模型)
- 自由定制,自己改 code、加 plugin、調 prompt
- 節省成本,長期使用比 SaaS 訂閱平
咁自托管 AI agent 就係你要嘅嘢。
呢篇教學會由零開始,用 Docker Compose 部署 Hermes Agent —— 一個開源、provider-agnostic 嘅 AI agent 框架,支援本地 LLM(Ollama)同雲端 API(OpenAI、Anthropic 等)混合使用。
事前準備
基本要求
- 伺服器 / VPS:最低 4GB RAM、20GB SSD(如果只行雲端模型,2GB RAM 都得)
- Docker + Docker Compose:安裝教學
- 基本 Linux 知識:SSH、command line
選擇:純雲端 vs 混合 vs 全本地
| 方案 | 優點 | 缺點 | 適合對象 |
|---|---|---|---|
| 純雲端 (GPT-5/Claude) | 最快 setup,最強能力 | 月費、數據外洩風險 | 快速驗證概念 |
| 混合 (本地 agent + 雲端 LLM) | 數據安全 + 強模型 | 仍需 API 費用 | 生產環境 |
| 全本地 (Ollama + Hermes) | 完全免費、私隱最高 | 模型能力較弱 | 研發、高安全需求 |
今次教學會用混合模式——Hermes Agent 行喺 Docker container,LLM 用 OpenAI/Anthropic API(可選本地 Ollama 做 fallback)。
第一步:設定 Docker Compose
建立一個 docker-compose.yml:
version: '3.8'
services:
hermes:
image: nousresearch/hermes-agent:latest
container_name: hermes-agent
restart: unless-stopped
volumes:
- ./hermes_data:/root/.hermes
- ./workspace:/workspace
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-}
- OLLAMA_HOST=http://ollama:11434
ports:
- "8080:8080" # Gateway API
depends_on:
ollama:
condition: service_healthy
command: ["hermes", "gateway", "run"]
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
volumes:
- ./ollama_data:/root/.ollama
ports:
- "11434:11434"
healthcheck:
test: ["CMD", "ollama", "list"]
interval: 30s
retries: 3
解釋
- Hermes Agent container:主 agent 程式,掛載
hermes_data做持久化設定 - Ollama container:本地 LLM 伺服器,行 lightweight 模型做 fast tasks
- workspace volume:放住你啲 projects,Hermes agent 可以存取
- Gateway port 8080:用嚟連接 Telegram/Discord 等平台
第二步:設定環境變數
建立 .env 檔案:
# 至少要填一個 LLM provider
OPENAI_API_KEY=sk-xxxxxxxxxxxx
# ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxx
# DEEPSEEK_API_KEY=sk-xxxxxxxxxxxx
# 時區
TZ=Asia/Hong_Kong
第三步:啟動服務
# 建立資料夾
mkdir -p hermes_data workspace ollama_data
# 啟動
docker compose up -d
# 檢查狀態
docker compose ps
docker compose logs hermes -f
第一次啟動 Hermes 會自動建立 config,然後你見倒類似:
[2026-06-01 10:00:00] Hermes Agent started successfully
[2026-06-01 10:00:01] Gateway listening on port 8080
拉本地模型(可選)
如果你打算行本地 LLM:
# 拉 mistral(7B,7GB RAM,夠快)
docker exec ollama ollama pull mistral
# 或者 llama3.1 8B
docker exec ollama ollama pull llama3.1
# 試下用唔用到
docker exec ollama ollama run mistral "Hello, how are you?"
第四步:設定 Hermes Config
入去 container 做初始設定:
docker exec -it hermes-agent hermes setup
或者直接改掛載咗嘅 config:
# 改 hermes_data/config.yaml
docker exec -it hermes-agent hermes config set model.default gpt-5
docker exec -it hermes-agent hermes config set model.provider openai
docker exec -it hermes-agent hermes config set terminal.backend local
重點 config 設定:
model:
default: gpt-5
provider: openai
agent:
max_turns: 90
tool_use_enforcement: true
terminal:
backend: docker
workdir: /workspace
memory:
memory_enabled: true
user_profile_enabled: true
delegation:
model: gpt-5-mini
max_iterations: 30
第五步:連接 Gateway(可選)
Hermes Gateway 可以駁落 Telegram、Discord、Slack 等平台。
以 Telegram 為例:
# 入 container setup
docker exec -it hermes-agent hermes gateway setup
# 揀 Telegram → 輸入 bot token → 完成
# 然後開 gateway
docker compose restart hermes
之後你喺 Telegram 直接同 agent 對話就得。
實戰:用 Agent 開發一個 Python 專案
等 Hermes 行咗之後,你可以咁用:
方法 1:API 呼叫
curl -X POST http://localhost:8080/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "Create a Flask API with 3 endpoints", "session": "dev-project"}'
方法 2:Telegram 互動
Send message 俾 bot:
/create-project 建立一個 FastAPI + SQLite 嘅 todo list API,包括 CRUD endpoints 同測試
方法 3:Cron 排程任務
設定每日自動運行嘅任務:
docker exec hermes-agent hermes cron create "every day 9am" \
--prompt "Check today's GitHub notifications and summarize" \
--delivery telegram
進階:多 Agent 協作
你可以行多個 Hermes instance 做唔同角色:
# 加到 docker-compose.yml
agent-backend:
image: nousresearch/hermes-agent:latest
container_name: hermes-backend
volumes_from:
- hermes
environment:
- HERMES_PROFILE=backend-dev
command: ["hermes", "-p", "backend-dev", "gateway", "run"]
每個 agent 可以設定唔同嘅技能(skills)、模型、toolset,形成一個小型 AI 團隊。
Troubleshooting
| 問題 | 原因 | 解決方法 |
|---|---|---|
| Container 不斷 restart | Config 錯誤 | 睇 log:docker compose logs hermes |
| Ollama 用唔到 GPU | Docker 未開 GPU 支援 | 加 deploy.resources.reservations.devices |
| Gateway 連唔到 Telegram | Bot token 無效 | 重新 gen token、check .env |
| Agent 話 Tool 唔可用 | Toolset 未 enable | hermes tools enable terminal file |
| 記憶體不足 | Ollama 佔太多 RAM | 用細 model(mistral 7B 約 7GB) |
總結
用 Docker 自托管 AI agent 唔複雜,而且好處顯而易見:數據自主、成本可控、可以自由定制。呢個 setup 適合個人開發者、freelancer、甚至小型團隊使用。
下一步你可以:
- 研究 Hermes Agent 嘅 skill system —— 寫自訂 skill 俾 agent 學
- 設定 MCP server 連落外部工具(Notion、GitHub、Jira)
- 用
hermes cron建立自動化工作流程