Chạy Hermes cục bộ với Ollama — Chi phí API bằng 0
Vấn đề
API LLM của đám mây tính phí trên mỗi mã thông báo. Một phiên mã hóa nặng có thể tốn từ 5–20 USD. Đối với các dự án cá nhân, học tập hoặc công việc nhạy cảm về quyền riêng tư, điều đó sẽ tăng lên — và bạn đang gửi mọi cuộc trò chuyện cho bên thứ ba.
Hướng dẫn này giải quyết được vấn đề gì
Bạn sẽ thiết lập Hermes Agent chạy hoàn toàn trên phần cứng của riêng mình, sử dụng Ollama làm chương trình phụ trợ mẫu. Không có khóa API, không đăng ký, không có dữ liệu rời khỏi máy của bạn. Sau khi được định cấu hình, Hermes hoạt động chính xác như với OpenRouter hoặc Anthropic — lệnh đầu cuối, chỉnh sửa tệp, duyệt web, ủy quyền — nhưng mô hình chạy cục bộ.
Cuối cùng, bạn sẽ có:
- Ollama phục vụ một hoặc nhiều mẫu xe có trọng lượng mở
- Hermes kết nối với Ollama dưới dạng điểm cuối tùy chỉnh
- Một tác nhân cục bộ đang hoạt động có thể chỉnh sửa tệp, chạy lệnh và duyệt web
- Tùy chọn: bot Telegram/Discord được hỗ trợ hoàn toàn bằng phần cứng của riêng bạn
Thứ bạn cần
| Component | Minimum | Recommended |
|---|---|---|
| RAM | 8 GB (for 3B models) | 32+ GB (for 27B+ models) |
| Storage | 5 GB free | 30+ GB (for multiple models) |
| CPU | 4 cores | 8+ cores (AMD EPYC, Ryzen, Intel Xeon) |
| GPU | Not required | NVIDIA GPU with 8+ GB VRAM speeds things up significantly |
Ollama chạy trên các máy chủ chỉ có CPU. Mô hình 9B trên CPU 8 nhân hiện đại cho ~ 10 mã thông báo/giây. Mô hình 31B trên CPU chậm hơn (~2–5 mã thông báo/giây) — mỗi phản hồi mất 30–120 giây nhưng vẫn hoạt động. GPU cải thiện đáng kể điều này. Đối với các thiết lập chỉ dành cho CPU, hãy mở rộng thời gian chờ API thông qua env var (đó không phải là khóa config.yaml):
# ~/.hermes/.env
HERMES_API_TIMEOUT=1800 # 30 phút — dành cho các mô hình cục bộ chậm
Bước 1: Cài đặt Ollama
curl -fsSL https://ollama.com/install.sh | sh
Xác minh nó đang chạy:
ollama --version
curl http://localhost:11434/api/tags # Should return {"models":[]}
Bước 2: Kéo mô hình
Chọn dựa trên phần cứng của bạn:
| Model | Size on Disk | RAM Needed | Tool Calling | Best For |
|---|---|---|---|---|
gemma4:31b | ~20 GB | 24+ GB | Yes | Best quality — strong tool use and reasoning |
gemma2:27b | ~16 GB | 20+ GB | No | Conversational tasks, no tool use |
gemma2:9b | ~5 GB | 8+ GB | No | Fast chat, Q&A — cannot call tools |
llama3.2:3b | ~2 GB | 4+ GB | No | Lightweight quick answers only |
:::cảnh báo Vấn đề gọi công cụ
Hermes là một trợ lý agent — nó chỉnh sửa tệp, chạy lệnh và duyệt web thông qua lệnh gọi công cụ. Các mô hình không có hỗ trợ cuộc gọi công cụ chỉ có thể trò chuyện; họ không thể hành động. Để có trải nghiệm Hermes đầy đủ, hãy sử dụng mô hình hỗ trợ các công cụ (như gemma4:31b).
:::
Kéo mô hình bạn đã chọn:
ollama pull gemma4:31b
:::thông tin Nhiều mô hình
Bạn có thể kéo một số mẫu và chuyển đổi giữa chúng bên trong Hermes bằng /model. Ollama tải mô hình đang hoạt động vào bộ nhớ theo yêu cầu và tự động tải các mô hình không hoạt động.
:::
Xác minh mô hình hoạt động:
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
}'
Bạn sẽ thấy phản hồi JSON cùng với câu trả lời của mô hình.
Bước 3: Cấu hình Hermes
Chạy trình hướng dẫn thiết lập Hermes:
hermes setup
Khi được nhắc về nhà cung cấp, hãy chọn Điểm cuối tùy chỉnh và nhập:
- URL cơ sở:
http://localhost:11434/v1 - Khóa API: Để trống hoặc gõ
no-key(Ollama không cần) - Mẫu:
gemma4:31b(hoặc bất kỳ mẫu nào bạn lấy)
Ngoài ra, hãy chỉnh sửa trực tiếp ~/.hermes/config.yaml:
model:
default: "gemma4:31b"
provider: "custom"
base_url: "http://localhost:11434/v1"
Bước 4: Bắt đầu sử dụng Hermes
hermes
Thế thôi. Bây giờ bạn đang điều hành một đại lý hoàn toàn ở địa phương. Hãy thử nó:
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
Bạn: Tạo tập lệnh Python lấy thông tin thời tiết của Thành phố Hồ Chí Minh
Hermes sẽ sử dụng công cụ đầu cuối, thao tác tệp và mô hình cục bộ của bạn - không có cuộc gọi trên đám mây.
Bước 5: Chọn Model Phù hợp cho Nhiệm vụ của Bạn
Không phải mọi nhiệm vụ đều cần mô hình lớn nhất. Đây là một hướng dẫn thực tế:
| Task | Recommended Model | Why |
|---|---|---|
| File edits, code, terminal commands | gemma4:31b | Only model with reliable tool calling |
| Quick Q&A (no tool use needed) | gemma2:9b | Fast responses for conversational tasks |
| Lightweight chat | llama3.2:3b | Fastest, but very limited capabilities |
:::lưu ý
Đối với công việc tác nhân đầy đủ (chỉnh sửa tệp, chạy lệnh, duyệt), gemma4:31b hiện là tùy chọn cục bộ tốt nhất có hỗ trợ lệnh gọi công cụ. Kiểm tra thư viện mô hình của Ollama để biết các mô hình mới hơn — hỗ trợ gọi công cụ đang mở rộng nhanh chóng.
:::
Chuyển đổi mô hình nhanh chóng trong một phiên:
/model gemma2:9b
Bước 6: Tối ưu hóa tốc độ
Tăng cửa sổ ngữ cảnh của Ollama
Theo mặc định, Ollama sử dụng bối cảnh 2048 mã thông báo. Đối với công việc đại lý (gọi công cụ, hội thoại dài), bạn cần thêm:
# Create a Modelfile that extends context
cat > /tmp/Modelfile << 'EOF'
FROM gemma4:31b
PARAMETER num_ctx 16384
EOF
ollama tạo gemma4-16k -f /tmp/Modelfile
Sau đó cập nhật cấu hình Hermes của bạn để sử dụng gemma4-16k làm tên mẫu.
Giữ mô hình được tải
Theo mặc định, Ollama sẽ tải các mô hình sau 5 phút không hoạt động. Đối với bot cổng liên tục, hãy luôn tải nó:
# Set keep-alive to 24 hours
curl http://localhost:11434/api/generate \
-d '{"model": "gemma4:31b", "keep_alive": "24h"}'
Hoặc đặt nó trên toàn cầu trong môi trường của Ollama:
# /etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_KEEP_ALIVE=24h"
Sử dụng tính năng Giảm tải GPU (Nếu có)
Nếu bạn có GPU NVIDIA, Ollama sẽ tự động giảm tải các lớp cho GPU đó. Kiểm tra với:
ollama ps # Shows which model is loaded and how many GPU layers
Đối với kiểu máy 31B trên GPU 12 GB, bạn sẽ được giảm tải một phần (~40 lớp trên GPU, phần còn lại trên CPU), điều này vẫn giúp tăng tốc đáng kể.
Bước 7: Chạy dưới dạng Gateway Bot (Tùy chọn)
Sau khi Hermes hoạt động cục bộ trong CLI, bạn có thể hiển thị nó dưới dạng bot Telegram hoặc Discord - vẫn chạy hoàn toàn trên phần cứng của bạn.
###Telegram
- Tạo bot qua @BotFather và nhận mã thông báo
- Thêm vào
~/.hermes/config.yamlcủa bạn:
model:
default: "gemma4:31b"
provider: "custom"
base_url: "http://localhost:11434/v1"
nền tảng:
điện tín:
đã bật: đúng
mã thông báo: "YOUR_TELEGRAM_BOT_TOKEN"
- Khởi động cổng:
hermes gateway
Bây giờ hãy nhắn tin cho bot của bạn trên Telegram - nó sẽ phản hồi bằng mô hình địa phương của bạn.
Bất hòa
- Tạo ứng dụng Discord tại discord.com/developers
- Thêm vào cấu hình:
platforms:
discord:
enabled: true
token: "YOUR_DISCORD_BOT_TOKEN"
- Bắt đầu: ``cổng Hermes`
Bước 8: Thiết lập dự phòng (Tùy chọn)
Các mô hình địa phương có thể gặp khó khăn với các nhiệm vụ phức tạp. Thiết lập dự phòng đám mây chỉ kích hoạt khi mô hình cục bộ bị lỗi:
model:
default: "gemma4:31b"
provider: "custom"
base_url: "http://localhost:11434/v1"
fallback_providers:
- nhà cung cấp: openrouter
mô hình: nhân loại/claude-sonnet-4
Bằng cách này, 90% mức sử dụng của bạn là miễn phí (cục bộ) và chỉ những tác vụ khó mới sử dụng được API trả phí.
Khắc phục sự cố
"Kết nối bị từ chối" khi khởi động
Ollama không chạy. Bắt đầu nó:
sudo systemctl start ollama
# or
ollama serve
Phản hồi chậm
- Kiểm tra kích thước model so với RAM: Nếu model của bạn cần nhiều RAM hơn mức khả dụng, nó sẽ chuyển sang ổ đĩa. Sử dụng model nhỏ hơn hoặc thêm RAM.
- Kiểm tra
ollama ps: Nếu không có lớp GPU nào được giảm tải, phản hồi sẽ bị ràng buộc bởi CPU. Điều này là bình thường đối với các máy chủ chỉ có CPU. - Giảm ngữ cảnh: Các cuộc hội thoại lớn làm chậm quá trình suy luận. Sử dụng
/compressthường xuyên hoặc đặt ngưỡng nén thấp hơn trong config.
Model không tuân theo lệnh gọi của công cụ
Các mô hình nhỏ hơn (3B, 7B) đôi khi bỏ qua các lệnh gọi công cụ và tạo ra văn bản thuần túy thay vì các lệnh gọi hàm có cấu trúc. Giải pháp:
- Sử dụng mô hình lớn hơn —
gemma4:31bhoặcgemma2:27bxử lý lệnh gọi công cụ tốt hơn nhiều so với mô hình 3B/7B. - Hermes có tính năng tự động sửa chữa — nó phát hiện các lệnh gọi công cụ không đúng định dạng và cố gắng tự động sửa chúng.
- Thiết lập dự phòng — nếu mô hình cục bộ thất bại 3 lần, Hermes sẽ quay trở lại nhà cung cấp đám mây.
Lỗi cửa sổ ngữ cảnh
Bối cảnh Ollama mặc định (2048 mã thông báo) quá nhỏ cho công việc tác nhân. Xem Bước 6 để tăng tốc độ.
So sánh chi phí
Đây là những gì chạy lưu cục bộ so với API đám mây, dựa trên phiên mã hóa thông thường (đầu vào ~ 100K mã thông báo, đầu ra ~ 20K mã thông báo):
| Provider | Cost per Session | Monthly (daily use) |
|---|---|---|
| Anthropic Claude Sonnet | ~$0.80 | ~$24 |
| OpenRouter (GPT-4o) | ~$0.60 | ~$18 |
| Ollama (local) | $0.00 | $0.00 |
Chi phí duy nhất của bạn là điện - khoảng 0,01–0,05 USD mỗi phiên tùy thuộc vào phần cứng.
Điều gì hoạt động tốt ở địa phương
- Chỉnh sửa tệp và tạo mã — các mẫu 9B+ xử lý tốt việc này
- Lệnh đầu cuối — Hermes gói lệnh, chạy nó, đọc đầu ra bất kể kiểu máy
- Duyệt web — công cụ trình duyệt thực hiện việc tìm nạp; mô hình chỉ diễn giải kết quả
- Cron jobs và tác vụ theo lịch — hoạt động giống hệt với thiết lập trên đám mây
- Cổng đa nền tảng — Telegram, Discord, Slack đều hoạt động với các mô hình địa phương
Điều gì tốt hơn với Mô hình đám mây
- Lý luận nhiều bước rất phức tạp — 70B+ hoặc các mô hình đám mây như Claude Opus tốt hơn đáng kể
- Cửa sổ ngữ cảnh dài — mô hình đám mây cung cấp 100K–1M token; các mô hình cục bộ thường là 8K–32K
- Tốc độ phản hồi lớn — suy luận trên đám mây nhanh hơn so với suy luận cục bộ chỉ dành cho CPU trong nhiều thế hệ
Điểm thú vị: sử dụng cục bộ cho các tác vụ hàng ngày, thiết lập dự phòng đám mây cho những nội dung khó.