Nhà cung cấp AI
Trang này đề cập đến việc thiết lập nhà cung cấp suy luận cho Đại lý Hermes — từ các API đám mây như OpenRouter và Anthropic, đến các điểm cuối tự lưu trữ như OLlama và vLLM, cho đến các cấu hình dự phòng và định tuyến nâng cao. Bạn cần ít nhất một nhà cung cấp được định cấu hình để sử dụng Hermes.
Nhà cung cấp suy luận
Bạn cần ít nhất một cách để kết nối với LLM. Sử dụng
Hermes model để chuyển đổi nhà cung cấp và mô hình một cách tương tác hoặc định cấu hình trực tiếp:
| Nhà cung cấp | Thiết lập |
|---|---|
| Nous Portal |
Hermes model ` (OAuth, dựa trên đăng ký) | | OpenAI Codex |
Hermes model ` (ChatGPT OAuth, sử dụng mô hình Codex) | | GitHub Copilot |
Hermes model
(Luồng mã thiết bị OAuth, COPILOT_GitHub_TOKEN
,
GH_TOKEN hoặc
`gh auth token
) | | GitHub Copilot ACP |
Hermes model
(sinh ra copilot --ACP --stdio
` cục bộ) |
| Anthropic |
Hermes model ` (Claude Max + tín dụng sử dụng bổ sung qua OAuth; cũng hỗ trợ khóa API Anthropic hoặc mã thông báo thiết lập thủ công - xem ghi chú bên dưới) | | OpenRouter |
OpenRouter_API_KEY ` trong
~/.Hermes/.env ` | | NovitaAI |
NOVITA_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: novita
, hơn 200 kiểu máy, API mô hình, Hộp cát tác nhân, Đám mây GPU) | | Cổng AI |
AI_GATEWAY_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: ai-gateway
) | | Z.AI / GLM |
GLM_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: zai
) | | Kimi / Moonshot |
Kimi_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: Kimi-coding
) | | Kimi / Moonshot (Trung Quốc) |
Kimi_CN_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: Kimi-coding-cn
; bí danh: `Kimi-cn
, `Moonshot-cn
) | | Arcee AI |
ARCEEAI_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: arcee
; bí danh: `arcee-ai
, `arceeai
) | | Đám mây GMI |
GMI_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: gmi
; bí danh: `gmi-cloud
, `gmicloud
) | | MiniMax |
MiniMax_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: MiniMax
) | | MiniMax China |
MiniMax_CN_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: MiniMax-cn
) | | xAI (Grok) — API phản hồi |
XAI_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: xai
) | | xAI Grok OAuth (SuperGrok) |
Hermes model ` → "xAI Grok OAuth (Đăng ký SuperGrok)" — đăng nhập trình duyệt, không cần khóa API. Xem guide | | Đám mây Qwen (Alibaba DashScope) |
DASHSCOPE_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: alibaba
) | | Alibaba Cloud (Kế hoạch mã hóa) |
DASHSCOPE_API_KEY
(nhà cung cấp: alibaba-coding-plan
, bí danh: `alibaba_coding
) — SKU thanh toán riêng, điểm cuối khác nhau | | KiloCode |
KILOCODE_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: kilocode
) | | Xiaomi MiMo |
XIAOMI_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: xiaomi
, bí danh: `mimo
, `xiaomi-mimo
) | | Tencent TokenHub |
TOKENHUB_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: tencent-tokenhub
, bí danh: `tencent
, `tokenhub
, `tencentmaas
) | | OpenCode Zen |
OPENCODE_ZEN_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: opencode-zen
) | | OpenCode Go |
OPENCODE_GO_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: opencode-go
) | | DeepSeek |
DeepSeek_API_KEY ` trong
~/.Hermes/.env
(nhà cung cấp: DeepSeek
) | | Hugging Face |
HF_TOKEN ` trong
~/.Hermes/.env
(nhà cung cấp: huggingface
, bí danh: `hf
) | | Google / Song Tử |
Google_API_KEY
(hoặc Gemini_API_KEY
) trong
~/.Hermes/.env
(nhà cung cấp: Gemini
) | | Google Song Tử (OAuth) |
Hermes model
→ "Google Gemini (OAuth)" (nhà cung cấp: Google-Gemini-CLI
, hỗ trợ bậc miễn phí, đăng nhập PKCE trình duyệt) | | LM Studio |
Hermes model
→ "LM Studio" (nhà cung cấp: lmstudio
,
LM_API_KEY tùy chọn) |
| Custom Endpoint |
Hermes model
→ chọn "Custom Endpoint" (được lưu trong config.yaml
) |
Để biết đường dẫn khóa API chính thức, hãy xem Google Gemini guide chuyên dụng.:::tip Model key alias Trong phần cấu hình `model:
, bạn có thể sử dụng
default: hoặc
model: làm tên khóa cho ID mẫu máy của mình. Cả
model: { default: my-model } và
model: { model: my-model } đều hoạt động giống hệt nhau.
:::
Nous Portal`Nous Portal là cổng đăng ký hợp nhất của Nous Research và cách được khuyến nghị để chạy Đại lý Hermes. Một lần đăng nhập OAuth bao gồm hơn 300 mô hình đại lý biên giới (Claude, GPT, Gemini, DeepSeek, Qwen, Kimi, GLM, MiniMax, Grok, ...) cùng với Tool Gateway (tìm kiếm trên web, tạo hình ảnh, TTS, tự động hóa trình duyệt) cùng với Nous Chat — được tính phí theo đăng ký Nous của bạn thay vì các tài khoản riêng biệt cho mỗi nhà cung cấp.
Hermes setup --portal # fresh install — OAuth + provider + gateway in one command
Hermes model # existing install — pick "Nous Portal" from the list
Hermes portal status # inspect login + routing at any time
`
``Bạn chưa có đăng ký? Nhận một cái tại [portal.NousResearch.com/manage-subscription](https://portal.NousResearch.com/manage-subscription).
**Để biết chi tiết đầy đủ:** xem [Nous Portal integration page](/docs/integrations/nous-portal) chuyên dụng (có gì trong đăng ký, danh mục mẫu, khắc phục sự cố) và [Run Hermes Agent with Nous Portal guide](/docs/guides/run-Hermes-with-nous-portal) từng bước.
`
:::info[Codex Note]
Nhà cung cấp OpenAI Codex xác thực thông qua mã thiết bị (mở URL, nhập mã). Hermes lưu trữ thông tin xác thực thu được trong cửa hàng xác thực của riêng mình theo
~/.Hermes/auth.JSON
` và có thể nhập thông tin xác thực Codex CLI hiện có từ
~/.Codex/auth.JSON
` khi có. Không cần cài đặt Codex CLI.
Nếu quá trình làm mới mã thông báo không thành công do lỗi terminal (HTTP 4xx,
`invalid_grant
, quyền bị thu hồi, v.v.), Hermes sẽ đánh dấu mã thông báo làm mới là đã chết và dừng phát lại mã đó để bạn không thấy hàng loạt lỗi xác thực giống hệt nhau. Thay vào đó, yêu cầu tiếp theo sẽ hiển thị một thông báo xác thực lại đã nhập. Chạy
`Hermes auth add Codex-OAuth
` (hoặc
`Hermes model
` → OpenAI Codex) để bắt đầu đăng nhập mã thiết bị mới; việc cách ly sẽ được giải quyết trong lần trao đổi thành công tiếp theo.
:::
:::warning
Ngay cả khi sử dụng Nous Portal, Codex hoặc endpoint tùy chỉnh, một số công cụ (tầm nhìn, tóm tắt web, MoA) vẫn sử dụng mô hình "phụ trợ" riêng. Theo mặc định (
`auxiliary.*.provider: "auto"
), Hermes định tuyến các tác vụ này tới **mô hình trò chuyện chính** của bạn — chính mô hình bạn đã chọn trong
`Hermes model
. Bạn có thể ghi đè từng tác vụ riêng lẻ để định tuyến tác vụ đó đến mô hình rẻ hơn/nhanh hơn (ví dụ: Gemini Flash trên OpenRouter) - xem [Auxiliary Models](/docs/user-guide/configuration#auxiliary-models).
:::
:::tip[Nous Tool Gateway]
Những người đăng ký Nous Portal trả phí cũng có quyền truy cập vào **[Tool Gateway](/docs/user-guide/features/tool-gateway)** — tìm kiếm trên web, tạo hình ảnh, TTS và tự động hóa trình duyệt được định tuyến thông qua đăng ký của bạn. Không cần thêm khóa API. Khi cài đặt mới,
`Hermes setup --portal
` sẽ đăng nhập cho bạn, đặt Nous làm nhà cung cấp của bạn và bật cổng bằng một lệnh. Người dùng hiện tại có thể kích hoạt nó từ
`Hermes model
` hoặc mỗi công cụ từ
`Hermes tools
. Kiểm tra định tuyến bất kỳ lúc nào với
`Hermes portal status
.
:::
### Hai lệnh quản lý mô hình
Hermes có **hai** lệnh mẫu phục vụ các mục đích khác nhau:
| Lệnh | Chạy đi đâu | Nó làm gì |
|----------|-------------|--------------|
| **
`Hermes model
** | Thiết bị đầu cuối của bạn (bên ngoài bất kỳ phiên nào) | Trình hướng dẫn thiết lập đầy đủ — thêm nhà cung cấp, chạy OAuth, nhập khóa API, định cấu hình điểm cuối |
| **
/model
** | Bên trong phiên trò chuyện của Hermes | Chuyển đổi nhanh giữa các nhà cung cấp và mô hình **đã được định cấu hình** |
Nếu bạn đang cố gắng chuyển sang nhà cung cấp mà bạn chưa thiết lập (ví dụ: bạn chỉ định cấu hình OpenRouter và muốn sử dụng Anthropic), bạn cần
`Hermes model
, không phải
/model
. Trước tiên, hãy thoát phiên của bạn (
`Ctrl+C
` hoặc
/quit
), chạy
`Hermes model
, hoàn tất thiết lập nhà cung cấp, sau đó bắt đầu phiên mới.
### Nhân chủng học (Bản địa)
Sử dụng trực tiếp các mô hình Claude thông qua API Anthropic - không cần proxy OpenRouter. Hỗ trợ ba phương thức xác thực:
:::caution[Requires Claude Max "extra usage" credits]
Khi bạn xác thực qua
`Hermes model
` → OAuth Anthropic (hoặc qua
`Hermes auth add Anthropic --type OAuth
), Hermes định tuyến dưới dạng Mã Claude đối với tài khoản Anthropic của bạn. **Nó chỉ hoạt động nếu bạn đang sử dụng gói Claude Max và đã mua thêm tín dụng sử dụng.** Trợ cấp của gói Max cơ bản (mức sử dụng được bao gồm trong Mã Claude theo mặc định) không được Hermes sử dụng — chỉ có các khoản tín dụng bổ sung/thêm mà bạn đã thêm ở trên mới được sử dụng. Người đăng ký Claude Pro không thể sử dụng đường dẫn này.
Nếu bạn không có tín dụng Max + bổ sung, thay vào đó hãy sử dụng
`Anthropic_API_KEY
` — các yêu cầu được tính phí theo hình thức trả cho mỗi mã thông báo đối với tổ chức của khóa đó (giá API tiêu chuẩn, độc lập với bất kỳ đăng ký Claude nào).
:::
``` bash
# With an API key (pay-per-token)
export Anthropic_API_KEY=***
Hermes chat --provider Anthropic --model Claude-sonnet-4-6
# Preferred: authenticate through
`Hermes model
# Hermes will use Claude Code's credential store directly when available
Hermes model
# Manual override with a setup-token (fallback / legacy)
export Anthropic_TOKEN=*** # setup-token or manual OAuth token
Hermes chat --provider Anthropic
# Auto-detect Claude Code credentials (if you already use Claude Code)
Hermes chat --provider Anthropic # reads Claude Code credential files automatically
`
`Khi bạn chọn Anthropic OAuth thông qua
`Hermes model
, Hermes ưu tiên kho thông tin xác thực của Claude Code hơn là sao chép mã thông báo vào
~/.Hermes/.env
. Điều đó giữ cho thông tin đăng nhập Claude có thể làm mới được luôn được làm mới.
Hoặc đặt nó vĩnh viễn:
`
``` yaml
model:
provider: "Anthropic"
default: "Claude-sonnet-4-6"
`
:::tip[Aliases]
`
--provider Claude
` và
--provider Claude-code
` cũng hoạt động như cách viết tắt của
--provider Anthropic
.
:::
### GitHub Copilot
Hermes hỗ trợ GitHub Copilot với tư cách là nhà cung cấp hạng nhất với hai chế độ:
**
`copilot
` — API điều khiển trực tiếp** (được khuyến nghị). Sử dụng đăng ký GitHub Copilot của bạn để truy cập GPT-5.x, Claude, Gemini và các mô hình khác thông qua API Copilot.
``` bash
Hermes chat --provider copilot --model GPT-5.4
`
``**Tùy chọn xác thực** (được chọn theo thứ tự này):
1. Biến môi trường
`COPILOT_GitHub_TOKEN
`
2. Biến môi trường
`GH_TOKEN
3. Biến môi trường
`GitHub_TOKEN
4. Dự phòng
`gh auth token
` CLI
Nếu không tìm thấy mã thông báo nào,
`Hermes model
` sẽ cung cấp **đăng nhập mã thiết bị OAuth** — cùng một quy trình được sử dụng bởi Copilot CLI và mã mở.
:::warning[Token types]
API Copilot **không** hỗ trợ Mã thông báo truy cập cá nhân cổ điển (
`ghp_*
). Các loại mã thông báo được hỗ trợ:
| Loại | Tiền tố | Làm thế nào để có được |
|------|--------|-------------|
| Mã thông báo OAuth |
gho_
` |
`Hermes model
` → GitHub Copilot → Đăng nhập bằng GitHub |
| PAT hạt mịn |
GitHub_pat_
` | Cài đặt GitHub → Cài đặt dành cho nhà phát triển → Mã thông báo chi tiết (cần quyền **Yêu cầu phi công phụ**) |
| Mã thông báo ứng dụng GitHub |
ghu_
` | Thông qua cài đặt ứng dụng GitHub |
Nếu
`gh auth token
` của bạn trả về mã thông báo
`ghp_*
, thay vào đó hãy sử dụng
`Hermes model
` để xác thực qua OAuth.
:::
:::info[Copilot auth behavior in Hermes]
Hermes gửi mã thông báo GitHub được hỗ trợ (
`gho_*
,
`GitHub_pat_*
` hoặc
`ghu_*
) trực tiếp đến
`API.GitHubcopilot.com
` và bao gồm các tiêu đề dành riêng cho Copilot (
`Editor-Version
,
`Copilot-Integration-Id
,
`OpenAI-Intent
,
`x-initiator
).
Trên HTTP 401, Hermes hiện thực hiện khôi phục thông tin xác thực một lần trước khi dự phòng:
1. Giải quyết lại mã thông báo thông qua chuỗi ưu tiên thông thường (
`COPILOT_GitHub_TOKEN
` →
`GH_TOKEN
` →
`GitHub_TOKEN
` →
`gh auth token
)
2. Xây dựng lại ứng dụng khách OpenAI được chia sẻ với các tiêu đề được làm mới
3. Thử lại yêu cầu một lần
Một số proxy cộng đồng cũ hơn sử dụng luồng trao đổi
`API.GitHub.com/copilot_internal/v2/token
. Điểm cuối đó có thể không khả dụng đối với một số loại tài khoản (trả về 404). Do đó, Hermes giữ xác thực mã thông báo trực tiếp làm đường dẫn chính và dựa vào việc làm mới thông tin xác thực thời gian chạy + thử lại để đảm bảo độ chắc chắn.
:::
**Định tuyến API**: Các mẫu GPT-5+ (ngoại trừ
`GPT-5-mini
) tự động sử dụng API phản hồi. Tất cả các kiểu máy khác (GPT-4o, Claude, Gemini, v.v.) đều sử dụng tính năng Hoàn thành trò chuyện. Các mô hình được tự động phát hiện từ danh mục Copilot trực tiếp.
**
`copilot-ACP
` — Chương trình phụ trợ tác nhân Copilot ACP**. Sinh ra CLI Copilot cục bộ dưới dạng một quy trình con:
``` bash
Hermes chat --provider copilot-ACP --model copilot-ACP
# Requires the GitHub Copilot CLI in PATH and an existing
`copilot login
` session
`
``**Cấu hình cố định:**
`
``` yaml
model:
provider: "copilot"
default: "GPT-5.4"
`
| Biến môi trường | Mô tả |
|----------------------|-------------|
|
`COPILOT_GitHub_TOKEN
` | Mã thông báo GitHub cho API Copilot (ưu tiên hàng đầu) |
|
`Hermes_COPILOT_ACP_COMMAND
` | Ghi đè đường dẫn nhị phân Copilot CLI (mặc định:
`copilot
) |
|
`Hermes_COPILOT_ACP_ARGS
` | Ghi đè đối số ACP (mặc định:
`
--ACP --stdio
) |
### Nhà cung cấp khóa API hạng nhất
Các nhà cung cấp này có hỗ trợ tích hợp với ID nhà cung cấp chuyên dụng. Đặt khóa API và sử dụng
--provider
` để chọn:
``` bash
# NovitaAI Model API
Hermes chat --provider novita --model Moonshotai/Kimi-k2.5
# Requires: NOVITA_API_KEY in ~/.Hermes/.env
# Z.AI / ZhipuAI GLM
Hermes chat --provider zai --model glm-5
# Requires: GLM_API_KEY in ~/.Hermes/.env
# Kimi / Moonshot AI (international: API.Moonshot.ai)
Hermes chat --provider Kimi-coding --model Kimi-for-coding
# Requires: Kimi_API_KEY in ~/.Hermes/.env
# Kimi / Moonshot AI (China: API.Moonshot.cn)
Hermes chat --provider Kimi-coding-cn --model Kimi-k2.5
# Requires: Kimi_CN_API_KEY in ~/.Hermes/.env
# MiniMax (global endpoint)
Hermes chat --provider MiniMax --model MiniMax-M2.7
# Requires: MiniMax_API_KEY in ~/.Hermes/.env
# MiniMax (China endpoint)
Hermes chat --provider MiniMax-cn --model MiniMax-M2.7
# Requires: MiniMax_CN_API_KEY in ~/.Hermes/.env
# Qwen Cloud / DashScope (Qwen models)
Hermes chat --provider alibaba --model qwen3.5-plus
# Requires: DASHSCOPE_API_KEY in ~/.Hermes/.env
# Xiaomi MiMo
Hermes chat --provider xiaomi --model mimo-v2-pro
# Requires: XIAOMI_API_KEY in ~/.Hermes/.env
# Tencent TokenHub (Hy3 Preview)
Hermes chat --provider tencent-tokenhub --model hy3-preview
# Requires: TOKENHUB_API_KEY in ~/.Hermes/.env
# Arcee AI (Trinity models)
Hermes chat --provider arcee --model trinity-large-thinking
# Requires: ARCEEAI_API_KEY in ~/.Hermes/.env
# GMI Cloud
# Use the exact model ID returned by GMI's /v1/models endpoint.
Hermes chat --provider gmi --model zai-org/GLM-5.1-FP8
# Requires: GMI_API_KEY in ~/.Hermes/.env
`
``Hoặc đặt nhà cung cấp vĩnh viễn trong
`config.yaml
:
`
``` yaml
model:
provider: "gmi"
default: "zai-org/GLM-5.1-FP8"
`
``Các URL cơ sở có thể được ghi đè bằng
`NOVITA_BASE_URL
,
`GLM_BASE_URL
,
`Kimi_BASE_URL
,
`MiniMax_BASE_URL
,
`MiniMax_CN_BASE_URL
,
`DASHSCOPE_BASE_URL
,
`XIAOMI_BASE_URL
,
`GMI_BASE_URL
` hoặc
`TOKENHUB_BASE_URL
` các biến môi trường.
:::note[Z.AI Endpoint Auto-Detection]
Khi sử dụng nhà cung cấp Z.AI / GLM, Hermes tự động thăm dò nhiều điểm cuối (toàn cầu, Trung Quốc, các biến thể mã hóa) để tìm ra điểm cuối chấp nhận khóa API của bạn. Bạn không cần đặt
`GLM_BASE_URL
` theo cách thủ công — điểm cuối hoạt động được phát hiện và lưu vào bộ nhớ đệm tự động.
:::
### xAI (Grok) — API phản hồi + Bộ nhớ đệm nhắc nhởxAI được kết nối thông qua API phản hồi (truyền tải
`Codex_responses
) để hỗ trợ suy luận tự động trên các mô hình Grok 4 — không cần tham số
`reasoning_effort
, máy chủ lý do theo mặc định. Đặt
`XAI_API_KEY
` trong
~/.Hermes/.env
` và chọn xAI trong
`Hermes model
` hoặc thả
`grok
` làm lối tắt vào
/model grok-4-1-fast-reasoning
.
Người đăng ký SuperGrok và X Premium+ có thể đăng nhập bằng OAuth của trình duyệt thay vì sử dụng khóa API — chọn **xAI Grok OAuth (Đăng ký SuperGrok)** trong
`Hermes model
` hoặc chạy
`Hermes auth add xai-OAuth
. Mã thông báo mang OAuth tương tự được tự động sử dụng lại bởi các công cụ trực tiếp tới xAI (TTS, gen hình ảnh, gen video, phiên mã). Xem [xAI Grok OAuth guide](../guides/xai-grok-OAuth.md) để biết toàn bộ luồng — và nếu Hermes chạy trên máy chủ từ xa, hãy xem thêm [OAuth over SSH / Remote Hosts](../guides/OAuth-over-SSH.md) để biết đường hầm
`SSH -L
` được yêu cầu.
Khi sử dụng xAI làm nhà cung cấp (bất kỳ URL cơ sở nào chứa
`x.ai
), Hermes sẽ tự động kích hoạt bộ nhớ đệm nhanh chóng bằng cách gửi tiêu đề
`x-grok-conv-id
` với mọi yêu cầu API. Điều này định tuyến các yêu cầu đến cùng một máy chủ trong phiên hội thoại, cho phép cơ sở hạ tầng của xAI sử dụng lại lời nhắc hệ thống và lịch sử hội thoại đã lưu trong bộ nhớ đệm.
Không cần cấu hình — bộ nhớ đệm sẽ tự động kích hoạt khi phát hiện điểm cuối xAI và có ID phiên. Điều này giúp giảm độ trễ và chi phí cho các cuộc hội thoại nhiều lượt.
xAI cũng cung cấp điểm cuối TTS chuyên dụng (
/v1/tts
). Chọn **xAI TTS** trong
`Hermes tools
` → Thoại & TTS hoặc xem trang [Voice & TTS](../user-guide/features/tts.md#text-to-speech) để biết cấu hình.`###NovitaAI`[NovitaAI](https://novita.ai) là đám mây gốc AI dành cho các nhà xây dựng và đại lý. Ba dòng sản phẩm của nó là API mô hình cho hơn 200 mô hình, Agent Sandbox để xây dựng và chạy các tác nhân AI và GPU Cloud để tính toán có thể mở rộng, tất cả đều có sẵn từ một nền tảng.
``` bash
# Use any available model
Hermes chat --provider novita --model Moonshotai/Kimi-k2.5
# Requires: NOVITA_API_KEY in ~/.Hermes/.env
# Short alias
Hermes chat --provider novita-ai --model DeepSeek/DeepSeek-v3-0324
`
``Hoặc đặt vĩnh viễn trong
`config.yaml
:
`
``` yaml
model:
provider: "novita"
default: "Moonshotai/Kimi-k2.5"
base_url: "https://API.novita.ai/OpenAI/v1"
`
``Nhận khóa API của bạn tại [novita.ai/settings/key-management](https://novita.ai/settings/key-management). URL cơ sở có thể được ghi đè bằng
`NOVITA_BASE_URL
.
### Đám mây OLlama — Mô hình OLlama được quản lý, Khóa OAuth + API`[OLlama Cloud](https://OLlama.com/cloud) lưu trữ danh mục có trọng lượng mở tương tự như OLlama địa phương nhưng không có yêu cầu về GPU. Chọn nó trong
`Hermes model
` dưới tên **OLlama Cloud**, dán khóa API của bạn từ [OLlama.com/settings/keys](https://OLlama.com/settings/keys) và Hermes tự động khám phá các mẫu có sẵn.
`bash
Hermes model
# → pick "OLlama Cloud"
# → paste your OLlama_API_KEY
# → select from discovered models (GPT-oss:120b, glm-4.6:cloud, qwen3-coder:480b-cloud, etc.)
`
``Hoặc trực tiếp
`config.yaml
:
`
``` yaml
model:
provider: "OLlama-cloud"
default: "GPT-oss:120b"
`
``Danh mục mô hình được tìm nạp động từ
`OLlama.com/v1/models
` và được lưu vào bộ nhớ đệm trong một giờ. Ký hiệu
`model:tag
` (ví dụ:
`qwen3-coder:480b-cloud
) được giữ nguyên thông qua chuẩn hóa - không sử dụng dấu gạch ngang.
:::tip[OLlama Cloud vs local OLlama]
Cả hai đều sử dụng cùng một API tương thích với OpenAI. Cloud là nhà cung cấp hạng nhất (
`
--provider OLlama-cloud
,
`OLlama_API_KEY
); OLlama cục bộ được tiếp cận thông qua luồng Custom Endpoint (URL cơ sở
`http://localhost:11434/v1
, không có khóa). Sử dụng đám mây cho các mô hình lớn mà bạn không thể chạy cục bộ; sử dụng cục bộ để bảo mật hoặc làm việc ngoại tuyến.
:::
### Nền tảng AWS
Anthropic Claude, Amazon Nova, DeepSeek v3.2, Meta Llama 4 và các mô hình khác thông qua AWS Bedrock. Sử dụng chuỗi thông tin xác thực AWS SDK (
`boto3
) — không có khóa API, chỉ có xác thực AWS tiêu chuẩn.
``` bash
# Simplest — named profile in ~/.aws/credentials
Hermes chat --provider bedrock --model us.Anthropic.Claude-sonnet-4-6
# Or with explicit env vars
AWS_PROFILE=myprofile AWS_REGION=us-east-1 Hermes chat --provider bedrock --model us.Anthropic.Claude-sonnet-4-6
`
``Hoặc vĩnh viễn trong
`config.yaml
:
`
``` yaml
model:
provider: "bedrock"
default: "us.Anthropic.Claude-sonnet-4-6"
bedrock:
region: "us-east-1" # or set AWS_REGION
# profile: "myprofile" # or set AWS_PROFILE
# discovery: true # auto-discover region from IAM
# guardrail: # optional Bedrock Guardrails
# guardrail_identifier: "your-guardrail-id"
# guardrail_version: "DRAFT"
`
``Xác thực sử dụng chuỗi boto3 tiêu chuẩn:
`AWS_ACCESS_KEY_ID
/
`AWS_SECRET_ACCESS_KEY
,
`AWS_PROFILE
` rõ ràng từ
~/.aws/credentials
, vai trò IAM trên EC2/ECS/Lambda, IMDS hoặc SSO. Không cần var env nếu bạn đã được xác thực bằng AWS CLI.
Bedrock sử dụng **Converse API** một cách cơ bản — các yêu cầu được dịch sang hình dạng bất khả tri về mô hình của Bedrock, do đó, cấu hình tương tự cũng áp dụng cho các mẫu Claude, Nova, DeepSeek và Llama. Chỉ đặt
`BEDROCK_BASE_URL
` nếu bạn đang gọi điểm cuối khu vực không mặc định.
Xem [AWS Bedrock guide](/docs/guides/aws-bedrock) để biết hướng dẫn thiết lập IAM, lựa chọn khu vực và suy luận giữa các khu vực.
### Cổng thông tin Qwen (OAuth)
Cổng thông tin Qwen của Alibaba với thông tin đăng nhập OAuth dựa trên trình duyệt. Chọn **Qwen OAuth (Cổng thông tin)** trong
`Hermes model
, đăng nhập thông qua trình duyệt và Hermes vẫn duy trì mã thông báo làm mới.
``` bash
Hermes model
# → pick "Qwen OAuth (Portal)"
# → browser opens; sign in with your Alibaba account
# → confirm — credentials are saved to ~/.Hermes/auth.JSON
Hermes chat # uses portal.qwen.ai/v1 endpoint
`
``Hoặc cấu hình
`config.yaml
:
`
``` yaml
model:
provider: "qwen-OAuth"
default: "qwen3-coder-plus"
`
``Chỉ đặt
`Hermes_QWEN_BASE_URL
` nếu điểm cuối cổng di chuyển (mặc định:
`https://portal.qwen.ai/v1
).:::tip Qwen OAuth vs Qwen Cloud (Alibaba DashScope)
`qwen-OAuth
` sử dụng Cổng thông tin Qwen hướng tới người tiêu dùng với thông tin đăng nhập OAuth — lý tưởng cho người dùng cá nhân. Nhà cung cấp
`alibaba
` sử dụng Qwen Cloud (Alibaba DashScope) với
`DASHSCOPE_API_KEY
` — lý tưởng cho khối lượng công việc sản xuất/lập trình. Cả hai đều hướng đến mô hình gia đình Qwen nhưng hoạt động ở các điểm cuối khác nhau.
:::
### Alibaba Cloud (Kế hoạch mã hóa)
Nếu bạn đã đăng ký **Kế hoạch mã hóa** của Alibaba (SKU định giá tách biệt với quyền truy cập API DashScope tiêu chuẩn), Hermes sẽ hiển thị nó là nhà cung cấp hạng nhất của riêng mình:
`alibaba-coding-plan
. Điểm cuối:
`https://coding-intl.dashscope.aliyuncs.com/v1
. Nó tương thích với OpenAI giống như nhà cung cấp
`alibaba
` thông thường nhưng có URL cơ sở và bề mặt thanh toán khác.
``` yaml
model:
provider: alibaba_coding # alias for alibaba-coding-plan
model: qwen3-coder-plus
`
``Hoặc từ CLI:
`bash
Hermes chat --provider alibaba_coding --model qwen3-coder-plus
`
```alibaba_coding
` sử dụng cùng một
`DASHSCOPE_API_KEY
` mục nhập
`alibaba
` của bạn đã sử dụng — không cần khóa riêng, chỉ cần một mục tiêu định tuyến khác. Trước khi nhà cung cấp này được đăng ký, những người dùng đã đặt
`provider: alibaba_coding
` trong
`config.yaml
` đã âm thầm chuyển sang định tuyến OpenRouter.
### MiniMax (OAuth)
MiniMax-M2.7 thông qua đăng nhập OAuth của trình duyệt - không cần khóa API. Chọn **MiniMax (OAuth)** trong
`Hermes model
, đăng nhập thông qua trình duyệt và Hermes vẫn duy trì quyền truy cập + mã thông báo làm mới. Sử dụng điểm cuối tương thích với Thông điệp Anthropic (
/Anthropic
) dưới mui xe.
`bash
Hermes model
# → pick "MiniMax (OAuth)"
# → browser opens; sign in with your MiniMax account (global or CN region)
# → confirm — credentials are saved to ~/.Hermes/auth.JSON
Hermes chat # uses API.MiniMax.io/Anthropic endpoint
`
``Hoặc cấu hình
`config.yaml
:
`
``` yaml
model:
provider: "MiniMax-OAuth"
default: "MiniMax-M2.7"
`
``Các mẫu được hỗ trợ:
`MiniMax-M2.7
` (chính) và
`MiniMax-M2.7-highspeed
` (có dây làm mẫu phụ mặc định). Đường dẫn OAuth bỏ qua
`MiniMax_API_KEY
` /
`MiniMax_BASE_URL
.
:::tip[MiniMax OAuth vs API key]
`MiniMax-OAuth
` sử dụng cổng hướng tới người tiêu dùng của MiniMax với thông tin đăng nhập OAuth — không cần thiết lập thanh toán. Các nhà cung cấp
`MiniMax
` và
`MiniMax-cn
` sử dụng
`MiniMax_API_KEY
` /
`MiniMax_CN_API_KEY
` — để truy cập theo chương trình. Xem [MiniMax OAuth guide](/docs/guides/MiniMax-OAuth) để biết hướng dẫn đầy đủ.
:::
### NVIDIA NIM
Nemotron và các mô hình nguồn mở khác thông qua [build.nvidia.com](https://build.nvidia.com) (khóa API miễn phí) hoặc điểm cuối NIM cục bộ.
``` bash
# Cloud (build.nvidia.com)
Hermes chat --provider nvidia --model nvidia/nemotron-3-super-120b-a12b
# Requires: NVIDIA_API_KEY in ~/.Hermes/.env
# Local NIM endpoint — override base URL
NVIDIA_BASE_URL=http://localhost:8000/v1 Hermes chat --provider nvidia --model nvidia/nemotron-3-super-120b-a12b
`
``Hoặc đặt vĩnh viễn trong
`config.yaml
:
`
``` yaml
model:
provider: "nvidia"
default: "nvidia/nemotron-3-super-120b-a12b"
`
:::tip[Local NIM]
Để triển khai tại chỗ (DGX Spark, GPU cục bộ), hãy đặt
`NVIDIA_BASE_URL=http://localhost:8000/v1
. NIM cung cấp API hoàn thành trò chuyện tương thích với OpenAI tương tự như build.nvidia.com, do đó, việc chuyển đổi giữa đám mây và cục bộ chỉ là thay đổi env-var một dòng.
:::
Hermes tự động đính kèm tiêu đề nguồn gốc thanh toán NIM trên mọi yêu cầu vào
`build.nvidia.com
` — không cần cấu hình. Điều này định tuyến mức tiêu thụ theo nguồn gốc chính xác trong bảng điều khiển thanh toán của NVIDIA.
### Đám mây GMI
Các mô hình mở và lý luận thông qua [GMI Cloud](https://www.gmicloud.ai/) — API tương thích với OpenAI, xác thực khóa API.
``` bash
# GMI Cloud
Hermes chat --provider gmi --model DeepSeek-ai/DeepSeek-R1
# Requires: GMI_API_KEY in ~/.Hermes/.env
`
``Hoặc đặt vĩnh viễn trong
`config.yaml
:
`
``` yaml
model:
provider: "gmi"
default: "DeepSeek-ai/DeepSeek-R1"
`
``URL cơ sở có thể được ghi đè bằng
`GMI_BASE_URL
` (mặc định:
`https://API.gmi-serving.com/v1
).
### Bước vui vẻ
Các mô hình chuỗi bước thông qua [StepFun](https://platform.stepfun.com) — API tương thích với OpenAI, xác thực khóa API.
`bash
# StepFun
Hermes chat --provider stepfun --model step-3-mini
# Requires: STEPFUN_API_KEY in ~/.Hermes/.env
`
``Hoặc đặt vĩnh viễn trong
`config.yaml
:
`
``` yaml
model:
provider: "stepfun"
default: "step-3-mini"
`
``URL cơ sở có thể được ghi đè bằng
`STEPFUN_BASE_URL
` (mặc định:
`https://API.stepfun.com/v1
).
### Nhà cung cấp suy luận ôm mặt`[Hugging Face Inference Providers](https://huggingface.co/docs/inference-providers) định tuyến tới hơn 20 mô hình mở thông qua điểm cuối tương thích OpenAI thống nhất (
`router.huggingface.co/v1
). Các yêu cầu được tự động chuyển đến chương trình phụ trợ có sẵn nhanh nhất (Groq, Together, SambaNova, v.v.) với tính năng chuyển đổi dự phòng tự động.
`bash
# Use any available model
Hermes chat --provider huggingface --model Qwen/Qwen3-235B-A22B-Thinking-2507
# Requires: HF_TOKEN in ~/.Hermes/.env
# Short alias
Hermes chat --provider hf --model DeepSeek-ai/DeepSeek-V3.2
`
``Hoặc đặt vĩnh viễn trong
`config.yaml
:
`
``` yaml
model:
provider: "huggingface"
default: "Qwen/Qwen3-235B-A22B-Thinking-2507"
`
``Nhận mã thông báo của bạn tại [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens) - đảm bảo bật quyền "Thực hiện cuộc gọi tới Nhà cung cấp suy luận". Đã bao gồm bậc miễn phí (tín dụng ($0,10/tháng, không tăng giá theo giá của nhà cung cấp).
Bạn có thể thêm hậu tố định tuyến vào tên kiểu máy:
:fastest
` (mặc định),
:cheapest
` hoặc
:provider_name
` để buộc có một chương trình phụ trợ cụ thể.
URL cơ sở có thể được ghi đè bằng
`HF_BASE_URL
.
### Google Gemini qua OAuth (
`Google-Gemini-CLI
)
Nhà cung cấp
`Google-Gemini-CLI
` sử dụng chương trình phụ trợ Cloud Code Assist của Google —
cùng API mà công cụ
`Gemini-CLI
` của Google sử dụng. Điều này hỗ trợ cả
**cấp miễn phí** (hạn ngạch hàng ngày hào phóng cho tài khoản cá nhân) và **cấp trả phí**
(Tiêu chuẩn/Doanh nghiệp thông qua dự án GCP).
**Bắt đầu nhanh:**
``` bash
Hermes model
# → pick "Google Gemini (OAuth)"
# → see policy warning, confirm
# → browser opens to accounts.Google.com, sign in
# → done — Hermes auto-provisions your free tier on first request
`
`Theo mặc định, Hermes cung cấp ứng dụng khách OAuth dành cho máy tính để bàn **công khai**
`Gemini-CLI
` của Google —
thông tin xác thực tương tự mà Google đưa vào
`Gemini-CLI
` mã nguồn mở của họ. Máy tính để bàn
Máy khách OAuth không được bảo mật (PKCE cung cấp bảo mật). bạn không
cần cài đặt
`Gemini-CLI
` hoặc đăng ký ứng dụng khách GCP OAuth của riêng bạn.
**Cách thức hoạt động của tính năng xác thực:**
- Luồng mã ủy quyền PKCE đối với
`accounts.Google.com
- Gọi lại trình duyệt tại
`http://127.0.0.1:8085/OAuth2callback
` (với dự phòng cổng tạm thời nếu bận)
- Token được lưu trữ tại
~/.Hermes/auth/Google_OAuth.JSON
` (chmod 0600, ghi nguyên tử, khóa
`fcntl
` xuyên tiến trình)
- Tự động làm mới 60 giây trước khi hết hạn
- Môi trường không đầu (SSH,
`Hermes_HEADLESS=1
) → dự phòng chế độ dán
- Loại bỏ trùng lặp làm mới trên chuyến bay — hai yêu cầu đồng thời sẽ không làm mới hai lần
-
`invalid_grant
` (làm mới bị thu hồi) → tệp thông tin xác thực bị xóa, người dùng được nhắc đăng nhập lại`**Cách suy luận hoạt động:**
- Lưu lượng truy cập vào
`https://cloudcode-pa.GoogleAPIs.com/v1internal:generateContent
(hoặc
:streamGenerateContent?alt=sse
` để phát trực tuyến), KHÔNG phải điểm cuối
`v1beta/OpenAI
` trả phí
- Yêu cầu bọc body
\{project, model, user_prompt_id, request}
- OpenAI có định dạng
`messages[]
,
`tools[]
,
`tool_choice
` được dịch sang tiếng mẹ đẻ của Gemini
Hình dạng
`contents[]
,
`tools[].functionDeclarations
,
`toolConfig
- Phản hồi được dịch trở lại hình dạng OpenAI để phần còn lại của Hermes hoạt động không thay đổi`**Cấp & ID dự án:**
| Tình huống của bạn | Phải làm gì |
|---|---|
| Tài khoản Google cá nhân, muốn có cấp độ miễn phí | Không có gì — đăng nhập, bắt đầu trò chuyện |
| Không gian làm việc / Tài khoản tiêu chuẩn / Doanh nghiệp | Đặt
`Hermes_Gemini_PROJECT_ID
` hoặc
`Google_CLOUD_PROJECT
` thành ID dự án GCP của bạn |
| Tổ chức được bảo vệ bởi VPC-SC | Hermes phát hiện
`SECURITY_POLICY_VIOLATED
` và tự động buộc
`standard-tier
` |
Bậc miễn phí tự động cung cấp dự án do Google quản lý trong lần sử dụng đầu tiên. Không cần thiết lập GCP.
**Giám sát hạn ngạch:**
`
/gquota
`
``Hiển thị hạn ngạch Hỗ trợ mã còn lại cho mỗi mô hình với các thanh tiến trình:
`
Gemini Code Assist quota (project: 123-abc)
Gemini-2.5-pro ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░ 85%
Gemini-2.5-flash [input] ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░ 92%
`
:::warning[Policy risk]
Google coi việc sử dụng ứng dụng khách Gemini CLI OAuth với phần mềm của bên thứ ba là một
vi phạm chính sách. Một số người dùng đã báo cáo hạn chế tài khoản. Đối với rủi ro thấp nhất
trải nghiệm, thay vào đó hãy sử dụng khóa API của riêng bạn thông qua nhà cung cấp
`Gemini
. Hermes trình diễn
cảnh báo trả trước và yêu cầu xác nhận rõ ràng trước khi OAuth bắt đầu.
:::
**Ứng dụng OAuth tùy chỉnh (tùy chọn):**
Nếu bạn muốn đăng ký ứng dụng khách Google OAuth của riêng mình — ví dụ: để duy trì hạn ngạch
và sự đồng ý trong phạm vi dự án GCP của riêng bạn - đặt:
``` bash
Hermes_Gemini_CLIENT_ID=your-CLIent.apps.Googleusercontent.com
Hermes_Gemini_CLIENT_SECRET=... # optional for Desktop CLIents
`
``Đăng ký **Ứng dụng máy tính để bàn** Ứng dụng khách OAuth tại
[console.cloud.Google.com/APIs/credentials](https://console.cloud.Google.com/APIs/credentials)
với API ngôn ngữ sáng tạo được bật.
## Nhà cung cấp LLM tùy chỉnh và tự lưu trữ
Hermes Agent hoạt động với **mọi điểm cuối API tương thích với OpenAI**. Nếu một máy chủ triển khai
/v1/chat/completions
, bạn có thể trỏ Hermes vào nó. Điều này có nghĩa là bạn có thể sử dụng các mô hình cục bộ, máy chủ suy luận GPU, bộ định tuyến của nhiều nhà cung cấp hoặc bất kỳ API nào của bên thứ ba.
### Cài đặt chung
Ba cách để định cấu hình điểm cuối tùy chỉnh:
**Thiết lập tương tác (được khuyến nghị):**
`
`bash
Hermes model
# Select "Custom endpoint (self-hosted / vLLM / etc.)"
# Enter: API base URL, API key, Model name
`
``**Cấu hình thủ công (
`config.yaml
):**
`
``` yaml
# In ~/.Hermes/config.yaml
model:
default: your-model-name
provider: custom
base_url: http://localhost:8000/v1
API_key: your-key-or-leave-empty-for-local
`
:::warning[Legacy env vars]
`OpenAI_BASE_URL
` và
`LLM_MODEL
` trong
.env
` bị **xóa**. Bất kỳ bộ phận nào của Hermes cũng không được đọc -
`config.yaml
` là nguồn thông tin chính xác duy nhất cho cấu hình mô hình và điểm cuối. Nếu bạn có các mục nhập cũ trong
.env
` của mình, chúng sẽ tự động bị xóa trong lần di chuyển cấu hình hoặc
`Hermes setup
` tiếp theo. Sử dụng
`Hermes model
` hoặc chỉnh sửa trực tiếp
`config.yaml
.
:::
Cả hai phương pháp tiếp cận đều áp dụng
`config.yaml
, đây là nguồn thông tin chính xác cho mô hình, nhà cung cấp và URL cơ sở.
### Chuyển đổi model bằng
/model
:::warning[Hermes model vs /model]
**
`Hermes model
** (chạy từ terminal của bạn, bên ngoài bất kỳ phiên trò chuyện nào) là **trình hướng dẫn thiết lập nhà cung cấp đầy đủ**. Sử dụng nó để thêm nhà cung cấp mới, chạy luồng OAuth, nhập khóa API và định cấu hình điểm cuối tùy chỉnh.
**
/model
** (được nhập vào phiên trò chuyện Hermes đang hoạt động) chỉ có thể **chuyển đổi giữa nhà cung cấp và mô hình bạn đã thiết lập**. Nó không thể thêm nhà cung cấp mới, chạy OAuth hoặc nhắc khóa API. Nếu bạn chỉ định cấu hình một nhà cung cấp (ví dụ: OpenRouter),
/model
` sẽ chỉ hiển thị các mô hình cho nhà cung cấp đó.**Để thêm nhà cung cấp mới:** Thoát phiên của bạn (
`Ctrl+C
` hoặc
/quit
), chạy
`Hermes model
, thiết lập nhà cung cấp mới, sau đó bắt đầu phiên mới.
:::
Sau khi đã định cấu hình ít nhất một điểm cuối tùy chỉnh, bạn có thể chuyển đổi mô hình vào giữa phiên:
`
/model custom:qwen-2.5 # Switch to a model on your custom endpoint
/model custom # Auto-detect the model from the endpoint
/model OpenRouter:Claude-sonnet-4 # Switch back to a cloud provider
`
``Nếu bạn đã định cấu hình **nhà cung cấp tùy chỉnh được đặt tên** (xem bên dưới), hãy sử dụng cú pháp ba:
`
/model custom:local:qwen-2.5 # Use the "local" custom provider with model qwen-2.5
/model custom:work:Llama3 # Use the "work" custom provider with Llama3
`
``Khi chuyển đổi nhà cung cấp, Hermes vẫn giữ nguyên URL cơ sở và nhà cung cấp để định cấu hình để thay đổi vẫn tiếp tục khởi động lại. Khi chuyển từ điểm cuối tùy chỉnh sang nhà cung cấp tích hợp sẵn, URL cơ sở cũ sẽ tự động bị xóa.
:::tip
/model custom
` (trống, không có tên mẫu) truy vấn API
/models
` của điểm cuối của bạn và tự động chọn mô hình nếu chính xác một mô hình được tải. Hữu ích cho các máy chủ cục bộ chạy một mô hình duy nhất.
:::
Mọi thứ bên dưới đều tuân theo cùng một mẫu — chỉ cần thay đổi URL, khóa và tên mẫu.
---
### OLlama — Mô hình cục bộ, không cần cấu hình`[OLlama](https://OLlama.com/) chạy cục bộ các mô hình trọng lượng mở chỉ bằng một lệnh. Tốt nhất cho: thử nghiệm cục bộ nhanh chóng, công việc nhạy cảm về quyền riêng tư, sử dụng ngoại tuyến. Hỗ trợ gọi công cụ thông qua API tương thích với OpenAI.
``` bash
# Install and run a model
OLlama pull qwen2.5-coder:32b
OLlama serve # Starts on port 11434
`
``Sau đó cấu hình Hermes:
``` bash
Hermes model
# Select "Custom endpoint (self-hosted / vLLM / etc.)"
# Enter URL: http://localhost:11434/v1
# Skip API key (OLlama doesn't need one)
# Enter model name (e.g. qwen2.5-coder:32b)
`
``Hoặc cấu hình trực tiếp
`config.yaml
:
``` yaml
model:
default: qwen2.5-coder:32b
provider: custom
base_url: http://localhost:11434/v1
context_length: 32768 # See warning below
`
:::caution[OLlama defaults to very low context lengths]
Theo mặc định, OLlama **không** sử dụng cửa sổ ngữ cảnh đầy đủ của mô hình của bạn. Tùy thuộc vào VRAM của bạn, mặc định là:
| VRAM có sẵn | Bối cảnh mặc định |
|----------------|----------------|
| Dưới 24 GB | **4.096 token** |
| 24–48 GB | 32.768 token |
| 48+ GB | 256.000 token |
Để sử dụng tác nhân bằng các công cụ, **bạn cần ít nhất 16k–32k bối cảnh**. Ở mức 4k, chỉ riêng lời nhắc hệ thống + lược đồ công cụ có thể lấp đầy cửa sổ, không còn chỗ cho cuộc trò chuyện.
**Cách tăng** (chọn một):
`bash
# Option 1: Set server-wide via environment variable (recommended)
OLlama_CONTEXT_LENGTH=32768 OLlama serve
# Option 2: For systemd-managed OLlama
sudo systemctl edit OLlama.service
# Add: Environment="OLlama_CONTEXT_LENGTH=32768"
# Then: sudo systemctl daemon-reload && sudo systemctl restart OLlama
# Option 3: Bake it into a custom model (persistent per-model)
echo -e "FROM qwen2.5-coder:32b\nPARAMETER num_ctx 32768" > Modelfile
OLlama create qwen2.5-coder-32k -f Modelfile
`
``**Bạn không thể đặt độ dài ngữ cảnh thông qua API tương thích với OpenAI** (
/v1/chat/completions
). Nó phải được cấu hình phía máy chủ hoặc thông qua Modelfile. Đây là nguyên nhân gây nhầm lẫn số 1 khi tích hợp OLlama với các công cụ như Hermes.
:::
**Xác minh bối cảnh của bạn được đặt chính xác:**
``` bash
OLlama ps
# Look at the CONTEXT column — it should show your configured value
`
:::tip
Liệt kê các mẫu có sẵn với
`OLlama list
. Kéo bất kỳ mẫu nào từ [OLlama library](https://OLlama.com/library) bằng
`OLlama pull <model>
. OLlama tự động xử lý việc giảm tải GPU — không cần cấu hình cho hầu hết các thiết lập.
:::
---
### vLLM — Suy luận GPU hiệu suất cao`[vLLM](https://docs.vLLM.ai/) là tiêu chuẩn để phục vụ LLM sản xuất. Tốt nhất cho: thông lượng tối đa trên phần cứng GPU, phục vụ các mô hình lớn, phân khối liên tục.
``` bash
pip install vLLM
vLLM serve meta-Llama/Llama-3.1-70B-Instruct \
--port 8000 \
--max-model-len 65536 \
--tensor-parallel-size 2 \
--enable-auto-tool-choice \
--tool-call-parser Hermes
`
``Sau đó cấu hình Hermes:
``` bash
Hermes model
# Select "Custom endpoint (self-hosted / vLLM / etc.)"
# Enter URL: http://localhost:8000/v1
# Skip API key (or enter one if you configured vLLM with --API-key)
# Enter model name: meta-Llama/Llama-3.1-70B-Instruct
`
``**Độ dài ngữ cảnh:** vLLM đọc
`max_position_embeddings
` của mô hình theo mặc định. Nếu vượt quá bộ nhớ GPU của bạn, nó sẽ báo lỗi và yêu cầu bạn đặt
--max-model-len
` thấp hơn. Bạn cũng có thể sử dụng
--max-model-len auto
` để tự động tìm mức tối đa phù hợp. Đặt
--gpu-memory-utilization 0.95
` (mặc định 0,9) để thu thập thêm ngữ cảnh vào VRAM.
**Việc gọi công cụ yêu cầu có cờ rõ ràng:**
| Cờ | Mục đích |
|------|----------|
|
--enable-auto-tool-choice
` | Bắt buộc đối với
`tool_choice: "auto"
` (mặc định trong Hermes) |
|
--tool-call-parser <name>
` | Trình phân tích cú pháp cho định dạng lệnh gọi công cụ của mô hình |
Các trình phân tích cú pháp được hỗ trợ:
`Hermes
` (Qwen 2.5, Hermes 2/3),
`Llama3_JSON
` (Llama 3.x),
`Mistral
,
`DeepSeek_v3
,
`DeepSeek_v31
,
`xlam
,
`Pythonic
. Nếu không có những cờ này, lệnh gọi công cụ sẽ không hoạt động — mô hình sẽ xuất lệnh gọi công cụ dưới dạng văn bản.
:::tip
vLLM hỗ trợ các kích thước mà con người có thể đọc được:
--max-model-len 64k
` (chữ thường k = 1000, chữ hoa K = 1024).
:::
---
### SGLang — Phục vụ nhanh chóng với RadixAttention`[SGLang](https://GitHub.com/sgl-project/sglang) là một giải pháp thay thế cho vLLM với RadixAttention để tái sử dụng bộ đệm KV. Tốt nhất cho: cuộc hội thoại nhiều lượt (bộ nhớ đệm tiền tố), giải mã có giới hạn, đầu ra có cấu trúc.
``` bash
pip install "sglang[all]"
Python -m sglang.launch_server \
--model meta-Llama/Llama-3.1-70B-Instruct \
--port 30000 \
--context-length 65536 \
--tp 2 \
--tool-call-parser qwen
`
``Sau đó cấu hình Hermes:
``` bash
Hermes model
# Select "Custom endpoint (self-hosted / vLLM / etc.)"
# Enter URL: http://localhost:30000/v1
# Enter model name: meta-Llama/Llama-3.1-70B-Instruct
`
``**Độ dài ngữ cảnh:** SGLang đọc từ cấu hình của mô hình theo mặc định. Sử dụng
--context-length
` để ghi đè. Nếu bạn cần vượt quá mức tối đa đã khai báo của mô hình, hãy đặt
`SGLANG_ALLOW_OVERWRITE_LONGER_CONTEXT_LEN=1
.**Gọi công cụ:** Sử dụng
--tool-call-parser
` với trình phân tích cú pháp thích hợp cho dòng mô hình của bạn:
`qwen
` (Qwen 2.5),
`Llama3
,
`Llama4
,
`DeepSeekv3
,
`Mistral
,
`glm
. Nếu không có cờ này, lệnh gọi công cụ sẽ trở lại dưới dạng văn bản thuần túy.
:::caution[SGLang defaults to 128 max output tokens]
Nếu phản hồi có vẻ bị cắt ngắn, hãy thêm
`max_tokens
` vào yêu cầu của bạn hoặc đặt
--default-max-tokens
` trên máy chủ. Mặc định của SGLang chỉ là 128 mã thông báo cho mỗi phản hồi nếu không được chỉ định trong yêu cầu.
:::
---
### Llama.cpp / Llama-server — Suy luận CPU & kim loại`[Llama.cpp](https://GitHub.com/ggml-org/Llama.cpp) chạy các mô hình lượng tử hóa trên CPU, Apple Silicon (Kim loại) và GPU tiêu dùng. Tốt nhất cho: chạy các mô hình không có GPU trung tâm dữ liệu, người dùng Mac, triển khai biên.
``` bash
# Build and start Llama-server
cmake -B build && cmake --build build --config Release
./build/bin/Llama-server \
--jinja -fa \
-c 32768 \
-ngl 99 \
-m models/qwen2.5-coder-32b-instruct-Q4_K_M.gguf \
--port 8080 --host 0.0.0.0
`
``**Độ dài ngữ cảnh (
-c
):** Các bản dựng gần đây mặc định là
`0
` đọc ngữ cảnh đào tạo của mô hình từ siêu dữ liệu GGUF. Đối với các mô hình có bối cảnh đào tạo hơn 128k, điều này có thể xảy ra khi cố gắng phân bổ toàn bộ bộ nhớ đệm KV. Đặt
-c
` một cách rõ ràng theo những gì bạn cần (32k–64k là phạm vi phù hợp để sử dụng cho tác nhân). Nếu sử dụng các vị trí song song (
-np
), tổng bối cảnh được chia cho các vị trí — với
-c 32768 -np 4
, mỗi vị trí chỉ nhận được 8k.
Sau đó cấu hình Hermes để trỏ vào nó:
``` bash
Hermes model
# Select "Custom endpoint (self-hosted / vLLM / etc.)"
# Enter URL: http://localhost:8080/v1
# Skip API key (local servers don't need one)
# Enter model name — or leave blank to auto-detect if only one model is loaded
`
``Thao tác này sẽ lưu điểm cuối vào
`config.yaml
` để điểm cuối này tồn tại qua các phiên.
:::caution[XPROTECTX411XPROTECTX is required for tool calling]
Nếu không có
--jinja
, Llama-server sẽ bỏ qua hoàn toàn tham số
`tools
. Mô hình sẽ cố gắng gọi các công cụ bằng cách viết JSON trong văn bản phản hồi của nó, nhưng Hermes sẽ không nhận ra đó là lệnh gọi công cụ — bạn sẽ thấy JSON thô như
\{"name": "web_search", ...}
` được in dưới dạng tin nhắn thay vì tìm kiếm thực tế.
Hỗ trợ gọi công cụ gốc (hiệu suất tốt nhất): Llama 3.x, Qwen 2.5 (bao gồm Coder), Hermes 2/3, Mistral, DeepSeek, Functionary. Tất cả các mô hình khác đều sử dụng trình xử lý chung hoạt động nhưng có thể kém hiệu quả hơn. Xem [Llama.cpp function calling docs](https://GitHub.com/ggml-org/Llama.cpp/blob/master/docs/function-calling.md) để biết danh sách đầy đủ.
Bạn có thể xác minh hỗ trợ công cụ đang hoạt động bằng cách kiểm tra
`http://localhost:8080/props
- trường
`chat_template
` phải có.
:::
:::tip
Tải xuống các mô hình GGUF từ [Hugging Face](https://huggingface.co/models?library=gguf). Lượng tử hóa Q4_K_M mang lại sự cân bằng tốt nhất giữa chất lượng và mức sử dụng bộ nhớ.
:::
---
### LM Studio — Ứng dụng máy tính để bàn với các mô hình cục bộ`[LM Studio](https://lmstudio.ai/) là một ứng dụng dành cho máy tính để bàn để chạy các mô hình cục bộ có GUI. Tốt nhất cho: người dùng thích giao diện trực quan, thử nghiệm mô hình nhanh, nhà phát triển trên macOS/Windows/Linux.
Khởi động máy chủ từ ứng dụng LM Studio (tab Nhà phát triển → Máy chủ khởi động) hoặc sử dụng CLI:
``` bash
lms server start # Starts on port 1234
lms load qwen2.5-coder --context-length 32768
`
``Sau đó cấu hình Hermes:
`bash
Hermes model
# Select "LM Studio"
# Press Enter to use http://localhost:1234/v1
# Pick one of the discovered models
# If LM Studio server auth is enabled, enter LM_API_KEY when prompted
`
``Hermes sẽ tự động tải mô hình LM Studio với độ dài ngữ cảnh 64K
Để thay đổi độ dài ngữ cảnh trong LM Studio:
1. Nhấp vào biểu tượng bánh răng bên cạnh bộ chọn mô hình
2. Đặt "Độ dài bối cảnh" thành ít nhất 64000 để có trải nghiệm mượt mà
3. Tải lại mô hình để thay đổi có hiệu lực
4. Nếu máy của bạn không thể vừa với 64000, hãy cân nhắc sử dụng kiểu máy nhỏ hơn với độ dài ngữ cảnh lớn hơn.
Ngoài ra, hãy sử dụng CLI:
`lms load model-name --context-length 64000
``Bạn có thể sử dụng CLI để ước tính xem mô hình có phù hợp hay không:
`lms load model-name --context-length 64000 --estimate-only
``Để đặt mặc định liên tục cho mỗi mô hình: tab Mô hình của tôi → biểu tượng bánh răng trên mô hình → đặt kích thước ngữ cảnh.
:::
**Gọi công cụ:** Được hỗ trợ kể từ LM Studio 0.3.6. Các mô hình được đào tạo gọi công cụ gốc (Qwen 2.5, Llama 3.x, Mistral, Hermes) được tự động phát hiện và hiển thị cùng với huy hiệu công cụ. Các mô hình khác sử dụng một dự phòng chung có thể kém tin cậy hơn.
---
### Mạng WSL2 (Người dùng Windows)
Vì Hermes Agent yêu cầu môi trường Unix nên người dùng Windows sẽ chạy nó bên trong WSL2. Nếu máy chủ mô hình của bạn (OLlama, LM Studio, v.v.) chạy trên **máy chủ Windows**, thì bạn cần thu hẹp khoảng cách mạng — WSL2 sử dụng bộ điều hợp mạng ảo với mạng con riêng của nó, vì vậy
`localhost
` bên trong WSL2 đề cập đến máy ảo Linux, **không** máy chủ Windows.
:::tip[Both in WSL2? No problem.]
Nếu máy chủ mô hình của bạn cũng chạy bên trong WSL2 (phổ biến cho vLLM, SGLang và Llama-server),
`localhost
` hoạt động như mong đợi — chúng chia sẻ cùng một không gian tên mạng. Bỏ qua phần này.
:::
#### Tùy chọn 1: Chế độ kết nối mạng được nhân đôi (Được khuyến nghị)
Có sẵn trên **Windows 11 22H2+**, chế độ phản chiếu giúp
`localhost
` hoạt động hai chiều giữa Windows và WSL2 — cách khắc phục đơn giản nhất.1. Tạo hoặc chỉnh sửa
%USERPROFILE%\.wslconfig
` (ví dụ:
`C:\Users\YourName\.wslconfig
):
`ini
[wsl2]
networkingMode=mirrored
2. Khởi động lại WSL từ PowerShell:
``` powershell
wsl --shutdown
3. Mở lại terminal WSL2 của bạn.
`localhost
` hiện đã có các dịch vụ Windows:
`bash
curl http://localhost:11434/v1/models # OLlama on Windows — works
:::note[Hyper-V Firewall]
Trên một số bản dựng Windows 11, tường lửa Hyper-V chặn các kết nối được nhân bản theo mặc định. Nếu
`localhost
` vẫn không hoạt động sau khi bật chế độ phản chiếu, hãy chạy chế độ này trong **PowerShell quản trị**:
`
`powershell
Set-NetFirewallHyperVVMSetting -Name '\\{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow
`
`
:::
#### Tùy chọn 2: Sử dụng IP máy chủ Windows (Windows 10 / bản dựng cũ hơn)
Nếu bạn không thể sử dụng chế độ phản chiếu, hãy tìm IP máy chủ Windows từ bên trong WSL2 và sử dụng IP đó thay vì
`localhost
:
``` bash
# Get the Windows host IP (the default gateway of WSL2's virtual network)
ip route show | grep -i default | awk '{ print $3 }'
# Example output: 172.29.192.1
`
``Sử dụng IP đó trong cấu hình Hermes của bạn:
``` yaml
model:
default: qwen2.5-coder:32b
provider: custom
base_url: http://172.29.192.1:11434/v1 # Windows host IP, not localhost
`
:::tip[Dynamic helper]
IP máy chủ có thể thay đổi khi khởi động lại WSL2. Bạn có thể lấy nó một cách linh hoạt trong Shell của mình:
`
`bash
export WSL_HOST=$(ip route show | grep -i default | awk '{ print $3 }')
echo "Windows host at: $WSL_HOST"
curl http://$WSL_HOST:11434/v1/models # Test OLlama
`
``Hoặc sử dụng tên mDNS của máy của bạn (yêu cầu
`libnss-mdns
` trong WSL2):
`
`bash
sudo apt install libnss-mdns
curl http://$(hostname).local:11434/v1/models
`
`
:::
#### Địa chỉ liên kết máy chủ (Bắt buộc đối với chế độ NAT)
Nếu bạn đang sử dụng **Tùy chọn 2** (chế độ NAT với IP máy chủ), máy chủ mẫu trên Windows phải chấp nhận kết nối từ bên ngoài
`127.0.0.1
. Theo mặc định, hầu hết các máy chủ chỉ nghe trên localhost - các kết nối WSL2 ở chế độ NAT đến từ một mạng con ảo khác và sẽ bị từ chối. Ở chế độ phản chiếu,
`localhost
` ánh xạ trực tiếp để liên kết
`127.0.0.1
` mặc định hoạt động tốt.
| Máy chủ | Liên kết mặc định | Cách khắc phục |
|--------|-------------|-------------|
| **OLlama** |
127.0.0.1
` | Đặt biến môi trường
`OLlama_HOST=0.0.0.0
` trước khi khởi động OLlama (Cài đặt hệ thống → Biến môi trường trên Windows hoặc chỉnh sửa dịch vụ OLlama) |
| **LM Studio** |
127.0.0.1
` | Bật **"Phục vụ trên mạng"** trong tab Nhà phát triển → Cài đặt máy chủ |
| **máy chủ Llama** |
127.0.0.1
` | Thêm
--host 0.0.0.0
` vào lệnh khởi động |
| **vLLM** |
0.0.0.0
` | Đã liên kết với tất cả các giao diện theo mặc định |
| **SGLang** |
127.0.0.1
` | Thêm
--host 0.0.0.0
` vào lệnh khởi động |`**OLlama trên Windows (chi tiết):** OLlama chạy dưới dạng dịch vụ Windows. Để đặt
`OLlama_HOST
:
1. Mở **Thuộc tính hệ thống** → **Biến môi trường**
2. Thêm **Biến hệ thống** mới:
`OLlama_HOST
` =
`0.0.0.0
3. Khởi động lại dịch vụ OLlama (hoặc khởi động lại)
#### Tường lửa của Windows
Tường lửa Windows coi WSL2 như một mạng riêng biệt (ở cả chế độ NAT và chế độ phản chiếu). Nếu kết nối vẫn không thành công sau các bước trên, hãy thêm quy tắc tường lửa cho cổng máy chủ mô hình của bạn:
``` powershell
# Run in Admin PowerShell — replace PORT with your server's port
New-NetFirewallRule -DisplayName "Allow WSL2 to Model Server" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 11434
`
``Các cổng phổ biến: OLlama
`11434
, vLLM
`8000
, SGLang
`30000
, Llama-server
`8080
, LM Studio
`1234
.
#### Xác minh nhanh
Từ bên trong WSL2, hãy kiểm tra xem bạn có thể truy cập máy chủ mô hình của mình không:
``` bash
# Replace URL with your server's address and port
curl http://localhost:11434/v1/models # Mirrored mode
curl http://172.29.192.1:11434/v1/models # NAT mode (use your actual host IP)
`
``Nếu bạn nhận được phản hồi JSON liệt kê các mô hình của mình thì bạn vẫn ổn. Sử dụng cùng URL đó với
`base_url
` trong cấu hình Hermes của bạn.
---
### Khắc phục sự cố với các mô hình cục bộ
Những sự cố này ảnh hưởng đến **tất cả** máy chủ suy luận cục bộ khi sử dụng với Hermes.
#### "Kết nối bị từ chối" từ WSL2 đến máy chủ mô hình được lưu trữ trên máy chủ Windows
Nếu bạn đang chạy Hermes bên trong WSL2 và máy chủ mẫu của bạn trên máy chủ Windows,
`http://localhost:<port>
` sẽ không hoạt động ở chế độ mạng NAT mặc định của WSL2. Xem [WSL2 Networking](#wsl2-networking-Windows-users) ở trên để biết cách khắc phục.
#### Lệnh gọi công cụ xuất hiện dưới dạng văn bản thay vì thực thi
Mô hình xuất ra nội dung như
\{"name": "web_search", "arguments": \{...}}
` dưới dạng thông báo thay vì thực sự gọi công cụ.
**Lý do:** Máy chủ của bạn chưa bật tính năng gọi công cụ hoặc mô hình không hỗ trợ tính năng này thông qua việc triển khai gọi công cụ của máy chủ.
| Máy chủ | Sửa chữa |
|--------|------|
| **Llama.cpp** | Thêm
--jinja
` vào lệnh khởi động |
| **vLLM** | Thêm
--enable-auto-tool-choice --tool-call-parser Hermes
` |
| **SGLang** | Thêm
--tool-call-parser qwen
` (hoặc trình phân tích cú pháp thích hợp) |
| **OLlama** | Gọi công cụ được bật theo mặc định - đảm bảo mô hình của bạn hỗ trợ nó (kiểm tra với
`OLlama show model-name
) |
| **LM Studio** | Cập nhật lên 0.3.6+ và sử dụng mô hình có hỗ trợ công cụ gốc |
#### Mô hình dường như quên ngữ cảnh hoặc đưa ra phản hồi không mạch lạc`**Nguyên nhân:** Cửa sổ ngữ cảnh quá nhỏ. Khi cuộc trò chuyện vượt quá giới hạn ngữ cảnh, hầu hết các máy chủ sẽ âm thầm loại bỏ các tin nhắn cũ hơn. Chỉ riêng lược đồ công cụ + lời nhắc hệ thống của Hermes có thể sử dụng mã thông báo 4k–8k.
**Chẩn đoán:**
``` bash
# Check what Hermes thinks the context is
# Look at startup line: "Context limit: X tokens"
# Check your server's actual context
# OLlama: OLlama ps (CONTEXT column)
# Llama.cpp: curl http://localhost:8080/props | jq '.default_generation_settings.n_ctx'
# vLLM: check --max-model-len in startup args
`
`**Khắc phục:** Đặt ngữ cảnh thành ít nhất **32.768 mã thông báo** để sử dụng cho tác nhân. Xem phần của từng máy chủ ở trên để biết cờ cụ thể.
#### "Giới hạn bối cảnh: 2048 mã thông báo" khi khởi động
Hermes tự động phát hiện độ dài ngữ cảnh từ điểm cuối
/v1/models
` trên máy chủ của bạn. Nếu máy chủ báo cáo giá trị thấp (hoặc hoàn toàn không báo cáo), Hermes sử dụng giới hạn đã khai báo của mô hình và điều này có thể sai.
**Khắc phục:** Đặt rõ ràng trong
`config.yaml
:
``` yaml
model:
default: your-model
provider: custom
base_url: http://localhost:11434/v1
context_length: 32768
`
#### Câu trả lời bị cắt giữa câu`**Nguyên nhân có thể:**
1. **Giới hạn đầu ra thấp (
`max_tokens
) trên máy chủ** — SGLang mặc định là 128 mã thông báo cho mỗi phản hồi. Đặt
--default-max-tokens
` trên máy chủ hoặc định cấu hình Hermes bằng
`model.max_tokens
` trong config.yaml. Lưu ý:
`max_tokens
` chỉ kiểm soát độ dài phản hồi - nó không liên quan đến lịch sử hội thoại của bạn có thể kéo dài bao lâu (đó là
`context_length
).
2. **Cạn kiệt bối cảnh** — Mô hình đã lấp đầy cửa sổ ngữ cảnh của nó. Tăng
`model.context_length
` hoặc kích hoạt [context compression](/docs/user-guide/configuration#context-compression) trong Hermes.
---
### Proxy LiteLLM — Cổng đa nhà cung cấp`[LiteLLM](https://docs.liteLLM.ai/) là một proxy tương thích với OpenAI, hợp nhất hơn 100 nhà cung cấp LLM đằng sau một API duy nhất. Tốt nhất cho: chuyển đổi giữa các nhà cung cấp mà không cần thay đổi cấu hình, cân bằng tải, chuỗi dự phòng, kiểm soát ngân sách.
``` bash
# Install and start
pip install "liteLLM[proxy]"
liteLLM --model Anthropic/Claude-sonnet-4 --port 4000
# Or with a config file for multiple models:
liteLLM --config liteLLM_config.yaml --port 4000
`
``Sau đó định cấu hình Hermes với
`Hermes model
` → Custom Endpoint →
`http://localhost:4000/v1
.
Ví dụ
`liteLLM_config.yaml
` có dự phòng:
`
``` yaml
model_list:
- model_name: "best"
liteLLM_params:
model: Anthropic/Claude-sonnet-4
API_key: sk-ant-...
- model_name: "best"
liteLLM_params:
model: OpenAI/GPT-4o
API_key: sk-...
router_settings:
routing_strategy: "latency-based-routing"
`
---
### ClawRouter — Định tuyến được tối ưu hóa chi phí`[ClawRouter](https://GitHub.com/BlockRunAI/ClawRouter) của BlockRunAI là proxy định tuyến cục bộ tự động chọn các mô hình dựa trên độ phức tạp của truy vấn. Nó phân loại các yêu cầu trên 14 chiều và định tuyến đến mô hình rẻ nhất có thể xử lý nhiệm vụ. Thanh toán thông qua tiền điện tử USDC (không có khóa API).
``` bash
# Install and start
npx @blockrun/clawrouter # Starts on port 8402
`
``Sau đó định cấu hình Hermes với
`Hermes model
` → Custom Endpoint →
`http://localhost:8402/v1
` → tên kiểu máy
`blockrun/auto
.
Hồ sơ định tuyến:
| Hồ sơ | Chiến lược | Tiết kiệm |
|----------|----------|---------|
|
`blockrun/auto
` | Cân bằng chất lượng/chi phí | 74-100% |
|
`blockrun/eco
` | Rẻ nhất có thể | 95-100% |
|
`blockrun/premium
` | Mẫu mã chất lượng tốt nhất | 0% |
|
`blockrun/free
` | Chỉ các mẫu miễn phí | 100% |
|
`blockrun/agentic
` | Tối ưu hóa để sử dụng công cụ | khác nhau |
:::note
ClawRouter yêu cầu ví được USDC tài trợ trên Base hoặc Solana để thanh toán. Tất cả các yêu cầu đều được định tuyến thông qua API phụ trợ của BlockRun. Chạy
`npx @blockrun/clawrouter doctor
` để kiểm tra trạng thái ví.
:::
---
### Nhà cung cấp tương thích khác
Bất kỳ dịch vụ nào có API tương thích với OpenAI đều hoạt động. Một số lựa chọn phổ biến:
| Nhà cung cấp | URL cơ sở | Ghi chú |
|----------|----------|-------|
| [Together AI](https://together.ai) |
https://API.together.xyz/v1
` | Các mô hình mở được lưu trữ trên đám mây |
| [Groq](https://groq.com) |
https://API.groq.com/OpenAI/v1
` | Suy luận cực nhanh |
| [DeepSeek](https://DeepSeek.com) |
https://API.DeepSeek.com/v1
` | Mô hình DeepSeek |
| [Fireworks AI](https://fireworks.ai) |
https://API.fireworks.ai/inference/v1
` | Lưu trữ mô hình mở nhanh |
| [GMI Cloud](https://www.gmicloud.ai/) |
https://API.gmi-serving.com/v1
` | Suy luận tương thích với OpenAI được quản lý |
| [Cerebras](https://cerebras.ai) |
https://API.cerebras.ai/v1
` | Suy luận chip quy mô wafer |
| [Mistral AI](https://Mistral.ai) |
https://API.Mistral.ai/v1
` | Mô hình Mistral |
| [OpenAI](https://OpenAI.com) |
https://API.OpenAI.com/v1
` | Truy cập OpenAI trực tiếp |
| [Azure OpenAI](https://azure.Microsoft.com) |
https://YOUR.OpenAI.azure.com/
` | Doanh nghiệp OpenAI |
| [LocalAI](https://localai.io) |
http://localhost:8080/v1
` | Tự lưu trữ, đa mô hình |
| [Jan](https://jan.ai) |
http://localhost:1337/v1
` | Ứng dụng dành cho máy tính để bàn với các mô hình cục bộ |
Định cấu hình bất kỳ thứ nào trong số này với
`Hermes model
` → Custom Endpoint hoặc trong
`config.yaml
:
``` yaml
model:
default: meta-Llama/Llama-3.1-70B-Instruct-Turbo
provider: custom
base_url: https://API.together.xyz/v1
API_key: your-together-key
`
---
### Phát hiện độ dài ngữ cảnh
:::note[Two settings, easy to confuse]
**
`context_length
** là **tổng cửa sổ ngữ cảnh** — ngân sách kết hợp cho mã thông báo đầu vào *và* đầu ra (ví dụ: 200.000 cho Claude Opus 4.6). Hermes sử dụng điều này để quyết định thời điểm nén lịch sử và xác thực các yêu cầu API.
**
`model.max_tokens
** là **giới hạn đầu ra** — số lượng mã thông báo tối đa mà mô hình có thể tạo trong một *phản hồi duy nhất*. Nó không liên quan gì đến lịch sử cuộc trò chuyện của bạn có thể kéo dài bao lâu. Tên tiêu chuẩn ngành
`max_tokens
` là nguồn gây nhầm lẫn phổ biến; API gốc của Anthropic đã đổi tên thành
`max_output_tokens
` cho rõ ràng.
Đặt
`context_length
` khi tính năng tự động phát hiện sai kích thước cửa sổ.
Chỉ đặt
`model.max_tokens
` khi bạn cần giới hạn thời lượng của từng phản hồi riêng lẻ.
:::Hermes sử dụng chuỗi phân giải đa nguồn để phát hiện cửa sổ ngữ cảnh chính xác cho kiểu máy và nhà cung cấp của bạn:
1. **Ghi đè cấu hình** —
`model.context_length
` trong config.yaml (mức độ ưu tiên cao nhất)
2. **Nhà cung cấp tùy chỉnh cho mỗi kiểu máy** —
`custom_providers[].models.<id>.context_length
3. **Bộ đệm liên tục** — các giá trị được phát hiện trước đó (tồn tại khi khởi động lại)
4. **Điểm cuối
/models
** — truy vấn API máy chủ của bạn (điểm cuối cục bộ/tùy chỉnh)
5. **Anthropic
/v1/models
** — truy vấn API của Anthropic cho
`max_input_tokens
` (chỉ dành cho người dùng khóa API)
6. **OpenRouter API** — siêu dữ liệu mô hình trực tiếp từ OpenRouter
7. **Nous Portal** — khớp hậu tố ID mô hình Nous với siêu dữ liệu OpenRouter
8. **[models.dev](https://models.dev)** — cơ quan đăng ký do cộng đồng duy trì với độ dài ngữ cảnh dành riêng cho nhà cung cấp cho hơn 3800 mô hình trên hơn 100 nhà cung cấp
9. **Mặc định dự phòng** — các mẫu họ mô hình rộng (mặc định 128K)
Đối với hầu hết các thiết lập, điều này hoạt động tốt. Hệ thống nhận biết nhà cung cấp — cùng một mô hình có thể có các giới hạn ngữ cảnh khác nhau tùy thuộc vào người phục vụ nó (ví dụ:
`Claude-opus-4.6
` là 1M trên Anthropic direct nhưng là 128K trên GitHub Copilot).
Để đặt độ dài ngữ cảnh một cách rõ ràng, hãy thêm
`context_length
` vào cấu hình mô hình của bạn:
``` yaml
model:
default: "qwen3.5:9b"
base_url: "http://localhost:8080/v1"
context_length: 131072 # tokens
`
``Đối với điểm cuối tùy chỉnh, bạn cũng có thể đặt độ dài ngữ cảnh cho mỗi mô hình:
`YAML
custom_providers:
- name: "My Local LLM"
base_url: "http://localhost:11434/v1"
models:
qwen3.5:27b:
context_length: 32768
DeepSeek-r1:70b:
context_length: 65536
`
```Hermes model
` sẽ nhắc về độ dài ngữ cảnh khi định cấu hình điểm cuối tùy chỉnh. Để trống để tự động phát hiện.
:::tip[When to set this manually]
- Bạn đang sử dụng OLlama với
`num_ctx
` tùy chỉnh thấp hơn mức tối đa của kiểu máy
- Bạn muốn giới hạn ngữ cảnh dưới mức tối đa của mô hình (ví dụ: 8k trên mô hình 128k để tiết kiệm VRAM)
- Bạn đang chạy đằng sau một proxy không hiển thị
/v1/models
:::
---
### Nhà cung cấp tùy chỉnh được đặt tên
Nếu bạn làm việc với nhiều điểm cuối tùy chỉnh (ví dụ: máy chủ nhà phát triển cục bộ và máy chủ GPU từ xa), bạn có thể xác định chúng là nhà cung cấp tùy chỉnh được đặt tên trong
`config.yaml
:
``` yaml
custom_providers:
- name: local
base_url: http://localhost:8080/v1
# API_key omitted — Hermes uses "no-key-required" for keyless local servers
- name: work
base_url: https://gpu-server.internal.corp/v1
key_env: CORP_API_KEY
API_mode: chat_completions # set explicitly by
`Hermes model
` → Custom Endpoint wizard; auto-detection still happens as a fallback
- name: Anthropic-proxy
base_url: https://proxy.example.com/Anthropic
key_env: Anthropic_PROXY_KEY
API_mode: Anthropic_messages # for Anthropic-compatible proxies
`
``Một số điểm cuối tương thích với OpenAI cần các trường nội dung yêu cầu dành riêng cho nhà cung cấp. Thêm bản đồ
`extra_body
` vào nhà cung cấp tùy chỉnh phù hợp và Hermes sẽ hợp nhất bản đồ đó vào từng yêu cầu hoàn thành trò chuyện cho điểm cuối đó:
``` yaml
custom_providers:
- name: gemma-local
base_url: http://localhost:8080/v1
model: Google/gemma-4-31b-it
extra_body:
enable_thinking: true
reasoning_effort: high
`
``Sử dụng hình dạng tài liệu máy chủ của bạn. Ví dụ: triển khai vLLM Gemma và một số điểm cuối NVIDIA NIM mong đợi
`enable_thinking
` trong
`chat_template_kwargs
` thay vì dưới dạng trường
`extra_body
` cấp cao nhất:
``` yaml
extra_body:
chat_template_kwargs:
enable_thinking: true
`
``Trình hướng dẫn
`Hermes model
` → Custom Endpoint hiện nhắc nhở
`API_mode
` một cách rõ ràng và duy trì câu trả lời của bạn cho
`config.yaml
. Tính năng tự động phát hiện dựa trên URL (ví dụ: đường dẫn
/Anthropic
` →
`Anthropic_messages
) vẫn xảy ra dưới dạng dự phòng khi trường được để trống.
Chuyển đổi giữa chúng giữa phiên bằng cú pháp ba:
`
/model custom:local:qwen-2.5 # Use the "local" endpoint with qwen-2.5
/model custom:work:Llama3-70b # Use the "work" endpoint with Llama3-70b
/model custom:Anthropic-proxy:Claude-sonnet-4 # Use the proxy
`
``Bạn cũng có thể chọn nhà cung cấp tùy chỉnh có tên từ menu
`Hermes model
` tương tác.
---
### Sách dạy nấu ăn: Cùng AI, Groq, Perplexity
Các nhà cung cấp đám mây được liệt kê trong [Other Compatible Providers](#other-compatible-providers) đều nói phương ngữ REST của OpenAI, do đó, họ kết nối theo cách tương tự trong
`custom_providers:
. Sau đây là ba công thức nấu ăn đã được thực hiện. Mỗi phần sẽ rơi vào
~/.Hermes/config.yaml
` và khóa API phù hợp sẽ nằm trong
~/.Hermes/.env
.
#### Cùng nhau AI
Lưu trữ các mô hình có trọng lượng mở (Llama, MiniMax, Gemma, DeepSeek, Qwen) với mức giá thấp hơn đáng kể so với API của bên thứ nhất. Mặc định tốt cho đội tàu đa mô hình.
`YAML
# ~/.Hermes/config.yaml
custom_providers:
- name: together
base_url: https://API.together.xyz/v1
key_env: TOGETHER_API_KEY
# API_mode: chat_completions # default — no need to set`model:
default: MiniMaxAI/MiniMax-M2.7 # or any model from together.ai/models
provider: custom:together
`
`
``` bash
# ~/.Hermes/.env
TOGETHER_API_KEY=your-together-key
`
``Chuyển đổi mô hình giữa phiên:
`
/model custom:together:meta-Llama/Llama-3.3-70B-Instruct-Turbo
/model custom:together:Google/gemma-4-31b-it
/model custom:together:DeepSeek-ai/DeepSeek-V3
`
``Điểm cuối
/v1/models
` của Together hoạt động nên
`Hermes model
` có thể tự động khám phá các mẫu có sẵn.
#### Groq
Suy luận cực nhanh (~500 tok/s trên Llama-3.3-70B). Danh mục nhỏ nhưng mạnh mẽ để sử dụng tương tác nhạy cảm với độ trễ.
``` yaml
# ~/.Hermes/config.yaml
custom_providers:
- name: groq
base_url: https://API.groq.com/OpenAI/v1
key_env: GROQ_API_KEY`model:
default: Llama-3.3-70b-versatile
provider: custom:groq
`
`
``` bash
# ~/.Hermes/.env
GROQ_API_KEY=your-groq-key
`
``####Bối rối
Hữu ích khi bạn muốn một mô hình thực hiện tìm kiếm và trích dẫn trực tiếp trên web một cách tự động. Nghiêm ngặt về những mẫu có sẵn - hãy kiểm tra [perplexity.ai/settings/API](https://www.perplexity.ai/settings/API) để biết danh sách hiện tại.
``` yaml
# ~/.Hermes/config.yaml
custom_providers:
- name: perplexity
base_url: https://API.perplexity.ai
key_env: PERPLEXITY_API_KEY`model:
default: sonar
provider: custom:perplexity
`
`
``` bash
# ~/.Hermes/.env
PERPLEXITY_API_KEY=your-perplexity-key
`
#### Nhiều nhà cung cấp trong một cấu hình
Ba công thức tổng hợp - sử dụng tất cả chúng cùng nhau và chuyển đổi mỗi lượt với
/model custom:<name:<model
:
``` yaml
custom_providers:
- name: together
base_url: https://API.together.xyz/v1
key_env: TOGETHER_API_KEY
- name: groq
base_url: https://API.groq.com/OpenAI/v1
key_env: GROQ_API_KEY
- name: perplexity
base_url: https://API.perplexity.ai
key_env: PERPLEXITY_API_KEY`model:
default: MiniMaxAI/MiniMax-M2.7
provider: custom:together # boot to Together; switch freely after
`
:::tip[Troubleshooting]
-
`Hermes doctor
` sẽ không in cảnh báo
`Unknown provider
` cho bất kỳ tên nào trong số này sau khi trình xác thực CLI sửa lỗi trong #15083.
- Nếu điểm cuối
/v1/models
` của nhà cung cấp không thể truy cập được (Sự bối rối là phổ biến),
`Hermes model
` sẽ duy trì mô hình với cảnh báo thay vì từ chối cứng — xem #15136.
- Để bỏ qua hoàn toàn
`custom_providers:
` và sử dụng
`provider: custom
` trần với
`CUSTOM_BASE_URL
` env var, xem #15103.
:::
---
### Chọn cài đặt phù hợp
| Trường hợp sử dụng | Được đề xuất |
|----------|-------------|
| **Chỉ muốn nó hoạt động** | OpenRouter (mặc định) hoặc Nous Portal |
| **Mô hình địa phương, thiết lập dễ dàng** | Olama |
| **Phục vụ GPU sản xuất** | vLLM hoặc SGLang |
| **Mac / không có GPU** | OLlama hoặc Llama.cpp |
| **Định tuyến nhiều nhà cung cấp** | LiteLLM Proxy hoặc OpenRouter |
| **Tối ưu hóa chi phí** | ClawRouter hoặc OpenRouter với
`sort: "price"
` |
| **Quyền riêng tư tối đa** | OLlama, vLLM hoặc Llama.cpp (hoàn toàn cục bộ) |
| **Doanh nghiệp / Azure** | Azure OpenAI với điểm cuối tùy chỉnh |
| **Mô hình AI Trung Quốc** | Z.AI (GLM), Kimi/Moonshot (
`Kimi-coding
` hoặc
`Kimi-coding-cn
), MiniMax, Xiaomi MiMo hoặc Tencent TokenHub (nhà cung cấp hạng nhất) |
:::tip
Bạn có thể chuyển đổi giữa các nhà cung cấp bất kỳ lúc nào với
`Hermes model
` — không cần khởi động lại. Lịch sử trò chuyện, trí nhớ và kỹ năng của bạn sẽ được lưu giữ bất kể bạn sử dụng nhà cung cấp nào.
:::
## Khóa API tùy chọn
| Tính năng | Nhà cung cấp | Biến Env |
|----------|----------|--------------|
| Quét web | [Firecrawl](https://firecrawl.dev/) |
FIRECRAWL_API_KEY
,
`FIRECRAWL_API_URL
` |
| Tự động hóa trình duyệt | [Browserbase](https://browserbase.com/) |
BROWSERBASE_API_KEY
,
`BROWSERBASE_PROJECT_ID
` |
| Tạo hình ảnh | [FAL](https://fal.ai/) |
FAL_KEY
` |
| Giọng nói TTS cao cấp | [ElevenLabs](https://elevenlabs.io/) |
ELEVENLABS_API_KEY
` |
| OpenAI TTS + phiên âm giọng nói | [OpenAI](https://platform.OpenAI.com/API-keys) |
VOICE_TOOLS_OpenAI_KEY
` |
| Mistral TTS + phiên âm giọng nói | [Mistral](https://console.Mistral.ai/) |
Mistral_API_KEY
` |
| Lập mô hình người dùng giữa các phiên | [Honcho](https://Honcho.dev/) |
Honcho_API_KEY
` |
| Trí nhớ dài hạn ngữ nghĩa | [Supermemory](https://supermemory.ai) |
SUPERMEMORY_API_KEY
` |
### Firecrawl tự lưu trữ
Theo mặc định, Hermes sử dụng [Firecrawl cloud API](https://firecrawl.dev/) để tìm kiếm và quét trên web. Nếu muốn chạy Firecrawl cục bộ, bạn có thể trỏ Hermes vào một phiên bản tự lưu trữ. Xem [SELF_HOST.md](https://GitHub.com/firecrawl/firecrawl/blob/main/SELF_HOST.md) của Firecrawl để biết hướng dẫn thiết lập đầy đủ.
**Những gì bạn nhận được:** Không cần khóa API, không giới hạn tốc độ, không tính phí mỗi trang, toàn quyền về dữ liệu.
**Bạn mất gì:** Phiên bản đám mây sử dụng "Fire-engine" độc quyền của Firecrawl để vượt qua chương trình chống bot nâng cao (Cloudflare, CAPTCHA, xoay vòng IP). Tự lưu trữ sử dụng tìm nạp cơ bản + Nhà viết kịch, vì vậy một số trang web được bảo vệ có thể không thành công. Tìm kiếm sử dụng DuckDuckGo thay vì Google.
**Cài đặt:**
1. Sao chép và khởi động ngăn xếp Firecrawl Docker (5 bộ chứa: API, Playwright, Redis, RabbitMQ, PostgreSQL — yêu cầu RAM ~4-8 GB):
``` bash
git clone https://GitHub.com/firecrawl/firecrawl
cd firecrawl
# In .env, set: USE_DB_AUTHENTICATION=false, HOST=0.0.0.0, PORT=3002
Docker compose up -d
2. Trỏ Hermes vào phiên bản của bạn (không cần khóa API):
``` bash
Hermes config set FIRECRAWL_API_URL http://localhost:3002
``Bạn cũng có thể đặt cả
`FIRECRAWL_API_KEY
` và
`FIRECRAWL_API_URL
` nếu phiên bản tự lưu trữ của bạn đã bật xác thực.
## Định tuyến nhà cung cấp OpenRouter
Khi sử dụng OpenRouter, bạn có thể kiểm soát cách định tuyến các yêu cầu giữa các nhà cung cấp. Thêm phần
`provider_routing
` vào
~/.Hermes/config.yaml
:
`YAML
provider_routing:
sort: "throughput" # "price" (default), "throughput", or "latency"
# only: ["Anthropic"] # Only use these providers
# ignore: ["deepinfra"] # Skip these providers
# order: ["Anthropic", "Google"] # Try providers in this order
# require_parameters: true # Only use providers that support all request params
# data_collection: "deny" # Exclude providers that may store/train on data
`
``**Phím tắt:** Thêm
:nitro
` vào bất kỳ tên mẫu máy nào để sắp xếp thông lượng (ví dụ:
`Anthropic/Claude-sonnet-4:nitro
) hoặc
:floor
` để sắp xếp giá.
## Bộ định tuyến mã Pareto OpenRouter
OpenRouter cung cấp bộ định tuyến mô hình mã hóa thử nghiệm tại
`OpenRouter/pareto-code
` để tự động định tuyến các yêu cầu đến mô hình rẻ nhất đáp ứng tiêu chuẩn chất lượng mã hóa (được xếp hạng theo [Artificial Analysis](https://artificialanalysis.ai/)). Chọn mẫu này và điều chỉnh núm
`min_coding_score
` trong
~/.Hermes/config.yaml
:
``` yaml
model:
provider: OpenRouter
model: OpenRouter/pareto-code
OpenRouter:
min_coding_score: 0.65 # 0.0–1.0; higher = stronger (more expensive) coders. Default 0.65.
`
``Ghi chú:-
`min_coding_score
` **chỉ** được gửi khi
`model.model
` là
`OpenRouter/pareto-code
. Trên bất kỳ mô hình nào khác, giá trị là không hoạt động.
- Đặt thành chuỗi trống (hoặc xóa dòng) để cho phép OpenRouter chọn bộ mã hóa mạnh nhất hiện có — hành vi được ghi lại của nó khi khối plugin bị bỏ qua.
- Lựa chọn mang tính xác định theo điểm số vào một ngày nhất định, nhưng mô hình thực tế được chọn có thể thay đổi khi biên giới Pareto di chuyển (mô hình mới, cập nhật điểm chuẩn).
- Xem [Pareto Router docs](https://OpenRouter.ai/docs/guides/routing/routers/pareto-router) của OpenRouter để biết hành vi đầy đủ của bộ định tuyến.
- Để sử dụng bộ định tuyến Mã Pareto cho một **tác vụ phụ trợ** cụ thể (nén, hiển thị, v.v.) thay vì tác nhân chính, hãy đặt
`extra_body.plugins
` trong tác vụ đó — xem [Auxiliary Models → OpenRouter routing & Pareto Code for auxiliary tasks](/docs/user-guide/configuration#OpenRouter-routing--pareto-code-for-auxiliary-tasks).
## Nhà cung cấp dự phòng
Định cấu hình chuỗi các nhà cung cấp dự phòng mà Hermes thử theo thứ tự khi mô hình chính bị lỗi (giới hạn tốc độ, lỗi máy chủ, lỗi xác thực). Định dạng chuẩn là danh sách
`fallback_providers:
` cấp cao nhất:
``` yaml
fallback_providers:
- provider: OpenRouter
model: Anthropic/Claude-sonnet-4
- provider: Anthropic
model: Claude-sonnet-4
# base_url: http://localhost:8000/v1 # optional, for custom endpoints
# API_mode: chat_completions # optional override
`
``Lệnh
`fallback_model:
` cặp đơn kế thừa vẫn được chấp nhận cho tương thích ngược:
``` yaml
fallback_model:
provider: OpenRouter
model: Anthropic/Claude-sonnet-4
`
``Khi được kích hoạt, dự phòng sẽ hoán đổi mô hình và nhà cung cấp giữa phiên mà không làm mất cuộc trò chuyện của bạn. Chuỗi được thử từng mục một; kích hoạt là một lần mỗi phiên.
Các nhà cung cấp được hỗ trợ:
`OpenRouter
,
`nous
,
`OpenAI-Codex
,
`copilot
,
`copilot-ACP
,
`Anthropic
,
`Gemini
,
`Google-Gemini-CLI
,
`qwen-OAuth
,
`huggingface
,
`zai
,
`Kimi-coding
,
`Kimi-coding-cn
,
`MiniMax
,
`MiniMax-cn
,
`MiniMax-OAuth
,
`DeepSeek
,
`nvidia
,
`xai
,
`xai-OAuth
,
`OLlama-cloud
,
`bedrock
,
`ai-gateway
,
`azure-foundry
,
`opencode-zen
,
`opencode-go
,
`kilocode
,
`xiaomi
,
`arcee
,
`gmi
,
`stepfun
,
`lmstudio
,
`alibaba
,
`alibaba-coding-plan
,
`tencent-tokenhub
,
`custom
.
:::tip
Dự phòng được định cấu hình độc quyền thông qua
`config.yaml
` — hoặc tương tác qua
`Hermes fallback
. Để biết chi tiết đầy đủ về thời điểm kích hoạt, cách thức tiến triển của chuỗi cũng như cách nó tương tác với các nhiệm vụ phụ trợ và ủy quyền, hãy xem [Fallback Providers](/docs/user-guide/features/fallback-providers).
:::
---
## Xem thêm
- [Configuration](/docs/user-guide/configuration) - Cấu hình chung (cấu trúc thư mục, mức ưu tiên cấu hình, phụ trợ đầu cuối, bộ nhớ, nén, v.v.)
- [Environment Variables](/docs/reference/environment-variables) - Tham chiếu đầy đủ tất cả các biến môi trường