Chuyển tới nội dung chính

Nhà cung cấp dự phòng

Hermes Agent có ba lớp khả năng phục hồi giúp phiên của bạn tiếp tục hoạt động khi nhà cung cấp gặp sự cố:

  1. Nhóm thông tin xác thực — xoay vòng trên nhiều khóa API cho cùng một nhà cung cấp* (đã thử trước)
  2. Dự phòng mô hình chính — tự động chuyển sang một nhà cung cấp:mô hình khác khi mô hình chính của bạn bị lỗi
  3. Dự phòng tác vụ phụ trợ — giải pháp của nhà cung cấp độc lập cho các tác vụ phụ như hiển thị, nén và trích xuất web

Nhóm thông tin xác thực xử lý việc luân chuyển cùng một nhà cung cấp (ví dụ: nhiều khóa OpenRouter). Trang này bao gồm dự phòng giữa nhiều nhà cung cấp. Cả hai đều là tùy chọn và hoạt động độc lập.

Dự phòng mô hình chính

Khi nhà cung cấp LLM chính của bạn gặp lỗi — giới hạn tốc độ, quá tải máy chủ, lỗi xác thực, rớt kết nối — Hermes có thể tự động chuyển sang nhà cung cấp dự phòng: cặp mô hình giữa phiên mà không làm mất cuộc trò chuyện của bạn.

Cấu hình

Thêm phần fallback_model vào ~/.hermes/config.yaml :

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

Cả providermodel đều bắt buộc. Nếu thiếu một trong hai, dự phòng sẽ bị tắt.

Nhà cung cấp được hỗ trợ

Nhà cung cấpGiá trịYêu cầu
Cổng AIai-gatewayAI_GATEWAY_API_KEY
OpenRouteropenrouterOPENROUTER_API_KEY
Nous Portalnoushermes auth (OAuth)
OpenAI Codexopenai-codexhermes model (Trò chuyệnGPT OAuth)
GitHub CopilotcopilotCOPILOT_GITHUB_TOKEN , GH_TOKEN hoặc GITHUB_TOKEN
GitHub Copilot ACPcopilot-acpQuy trình bên ngoài (tích hợp trình soạn thảo)
Nhân chủng họcanthropicANTHROPIC_API_KEY hoặc thông tin đăng nhập Mã Claude
z.ai / GLMzaiGLM_API_KEY
Kimi / Moonshotkimi-codingKIMI_API_KEY
MiniMaxminimaxMINIMAX_API_KEY
MiniMax (Trung Quốc)minimax-cnMINIMAX_CN_API_KEY
DeepSeekdeepseekDEEPSEEK_API_KEY
OpenCode Zenopencode-zenOPENCODE_ZEN_API_KEY
OpenCode Điopencode-goOPENCODE_GO_API_KEY
KiloCodekilocodeKILOCODE_API_KEY
Alibaba / DashScopealibabaDASHSCOPE_API_KEY
Ôm MặthuggingfaceHF_TOKEN
Custom Endpointcustombase_url + api_key_env (xem bên dưới)

Dự phòng điểm cuối tùy chỉnh

Đối với điểm cuối tương thích với OpenAI tùy chỉnh, hãy thêm base_url và tùy chọn api_key_env :

fallback_model:
provider: custom
model: my-local-model
base_url: http://localhost:8000/v1
api_key_env: MY_LOCAL_KEY

# env var name containing the API key

Khi kích hoạt dự phòng

Dự phòng sẽ tự động kích hoạt khi mô hình chính bị lỗi với:

  • Giới hạn tốc độ (HTTP 429) — sau khi hết số lần thử lại
  • Lỗi máy chủ (HTTP 500, 502, 503) — sau khi thử lại hết
  • Xác thực không thành công (HTTP 401, 403) — ngay lập tức (không cần thử lại)
  • Không tìm thấy (HTTP 404) — ngay lập tức
  • Phản hồi không hợp lệ — khi API liên tục trả về các phản hồi không đúng định dạng hoặc trống

Khi được kích hoạt, Hermes:

  1. Giải quyết thông tin xác thực cho nhà cung cấp dự phòng
  2. Xây dựng ứng dụng khách API mới
  3. Hoán đổi mô hình, nhà cung cấp và khách hàng tại chỗ
  4. Đặt lại bộ đếm thử lại và tiếp tục cuộc trò chuyệnQuá trình chuyển đổi diễn ra liền mạch — lịch sử hội thoại, lệnh gọi công cụ và ngữ cảnh của bạn được giữ nguyên. Tác nhân tiếp tục từ chính xác nơi nó đã dừng lại, chỉ sử dụng một mô hình khác.
One-Shot

Dự phòng kích hoạt tối đa một lần mỗi phiên. Nếu nhà cung cấp dự phòng cũng không thành công thì quá trình xử lý lỗi thông thường sẽ được thực hiện (thử lại, sau đó thông báo lỗi). Điều này ngăn chặn các vòng lặp chuyển đổi dự phòng xếp tầng.

Ví dụ

OpenRouter làm dự phòng cho bản địa Anthropic:

model:
provider: anthropic
default: claude-sonnet-4-6

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

Nous Portal dự phòng cho OpenRouter:

model:
provider: openrouter
default: anthropic/claude-opus-4

fallback_model:
provider: nous
model: nous-hermes-3

Mô hình cục bộ làm dự phòng cho đám mây:

fallback_model:
provider: custom
model: llama-3.1-70b
base_url: http://localhost:8000/v1
api_key_env: LOCAL_API_KEY

Codex OAuth làm dự phòng:

fallback_model:
provider: openai-codex
model: gpt-5.3-codex

Nơi dự phòng hoạt động

Bối cảnhHỗ trợ dự phòng
Phiên CLI
Cổng nhắn tin (Telegram, Discord, v.v.)
Phái đoàn cấp dưới✘ (tác nhân phụ không kế thừa cấu hình dự phòng)
Công việc định kỳ✘ (chạy với nhà cung cấp cố định)
Nhiệm vụ phụ trợ (tầm nhìn, nén)✘ (sử dụng chuỗi nhà cung cấp của riêng họ - xem bên dưới)
mẹo

Không có biến môi trường nào cho fallback_model - nó được định cấu hình riêng thông qua config.yaml . Đây là cố ý: cấu hình dự phòng là một lựa chọn có chủ ý, không phải là thứ mà quá trình xuất shell cũ nên ghi đè.


Dự phòng tác vụ phụ trợ

Hermes sử dụng các mẫu nhẹ riêng biệt cho các nhiệm vụ phụ. Mỗi tác vụ có chuỗi phân giải nhà cung cấp riêng hoạt động như một hệ thống dự phòng tích hợp.

Nhiệm vụ với Giải pháp của Nhà cung cấp Độc lập

Nhiệm vụNó làm gìKhóa cấu hình
Tầm nhìnPhân tích hình ảnh, ảnh chụp màn hình trình duyệtauxiliary.vision
Trích xuất webTóm tắt trang webauxiliary.web_extract
NénTóm tắt nén ngữ cảnhauxiliary.compression hoặc compression.summary_provider
Tìm kiếm phiênTóm tắt phiên trướcauxiliary.session_search
Trung tâm kỹ năngTìm kiếm và khám phá kỹ năngauxiliary.skills_hub
MCPHoạt động trợ giúp MCPauxiliary.mcp
Xóa bộ nhớHợp nhất bộ nhớauxiliary.flush_memories

Chuỗi tự động phát hiện

Khi nhà cung cấp nhiệm vụ được đặt thành "auto" (mặc định), Hermes sẽ thử các nhà cung cấp theo thứ tự cho đến khi một nhà cung cấp hoạt động:

Đối với tác vụ văn bản (nén, trích xuất web, v.v.):

OpenRouter → Nous Portal → Custom endpoint → Codex OAuth →
API-key providers (z.ai, Kimi, MiniMax, Hugging Face, Anthropic) → give up

Đối với nhiệm vụ tầm nhìn:

Main provider (if vision-capable) → OpenRouter → Nous Portal →
Codex OAuth → Anthropic → Custom endpoint → give up

Nếu nhà cung cấp đã giải quyết không thành công tại thời điểm gọi, Hermes cũng sẽ thử lại nội bộ: nếu nhà cung cấp không phải là OpenRouter và không có base_url rõ ràng nào được đặt, thì nó sẽ thử OpenRouter như một phương án dự phòng cuối cùng.

Định cấu hình nhà cung cấp phụ trợ

Mỗi tác vụ có thể được cấu hình độc lập trong config.yaml :

auxiliary:
vision:
provider: "auto"

# auto

| openrouter | nous | codex

| main | anthropic
model: ""

# e.g. "openai/gpt-4o"
base_url: ""

# direct endpoint (takes precedence over provider)
api_key: ""

# API key for base_url

web_extract:
provider: "auto"
model: ""

compression:
provider: "auto"
model: ""

session_search:
provider: "auto"
model: ""

skills_hub:
provider: "auto"
model: ""

mcp:
provider: "auto"
model: ""

flush_memories:
provider: "auto"
model: ""

Mọi tác vụ ở trên đều tuân theo cùng một mẫu nhà cung cấp / mô hình / base_url. Nén ngữ cảnh sử dụng khối cấp cao nhất của riêng nó:

compression:
summary_provider: main

# Same provider options as auxiliary tasks
summary_model: google/gemini-3-flash-preview
summary_base_url: null

# Custom OpenAI-compatible endpoint

Và mô hình dự phòng sử dụng:

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


# base_url: http://localhost:8000/v1

# Optional custom endpoint

Cả ba — phụ trợ, nén, dự phòng — đều hoạt động theo cùng một cách: đặt provider để chọn người xử lý yêu cầu, model để chọn mô hình nào và base_url để trỏ đến điểm cuối tùy chỉnh (ghi đè nhà cung cấp).

Tùy chọn nhà cung cấp cho nhiệm vụ phụ trợ

| Nhà cung cấp | Mô tả

| Yêu cầu | |----------|-------------|-------------| | "auto" | Hãy thử các nhà cung cấp theo thứ tự cho đến khi một nhà cung cấp hoạt động (mặc định) | Ít nhất một nhà cung cấp được định cấu hình | | "openrouter" | Buộc mởRouter | OPENROUTER_API_KEY | | "nous" | Cổng thông tin buộc Nous | hermes auth | | "codex" | Buộc Codex OAuth | hermes model → Codex | | "main" | Sử dụng bất kỳ nhà cung cấp nào mà đại lý chính sử dụng | Nhà cung cấp chính đang hoạt động được định cấu hình | | "anthropic" | Lực lượng bản địa nhân loại | ANTHROPIC_API_KEY hoặc thông tin xác thực Mã Claude |

Ghi đè điểm cuối trực tiếp

Đối với mọi tác vụ phụ trợ, cài đặt base_url sẽ bỏ qua hoàn toàn độ phân giải của nhà cung cấp và gửi yêu cầu trực tiếp đến điểm cuối đó:

auxiliary:
vision:
base_url: "http://localhost:1234/v1"
api_key: "local-key"
model: "qwen2.5-vl"

base_url được ưu tiên hơn provider . Hermes sử dụng api_key đã định cấu hình để xác thực, quay lại OPENAI_API_KEY nếu không được đặt. Nó không tái sử dụng OPENROUTER_API_KEY cho các điểm cuối tùy chỉnh.


Dự phòng nén ngữ cảnh

Nén bối cảnh có đường dẫn cấu hình cũ ngoài hệ thống phụ trợ:

compression:
summary_provider: "auto"

# auto

| openrouter | nous | main
summary_model: "google/gemini-3-flash-preview"

Điều này tương đương với việc định cấu hình auxiliary.compression.providerauxiliary.compression.model . Nếu cả hai đều được đặt thì giá trị auxiliary.compression sẽ được ưu tiên.

Nếu không có nhà cung cấp nào để nén, Hermes sẽ bỏ các lượt hội thoại ở giữa mà không tạo bản tóm tắt thay vì không thực hiện được phiên.


Ghi đè nhà cung cấp ủy quyền

Các tác nhân phụ do delegate_task sinh ra không sử dụng mô hình dự phòng chính. Tuy nhiên, chúng có thể được chuyển đến một cặp nhà cung cấp:mô hình khác để tối ưu hóa chi phí:

delegation:
provider: "openrouter"

# override provider for all subagents
model: "google/gemini-3-flash-preview"

# override model


# base_url: "http://localhost:1234/v1"

# or use a direct endpoint


# api_key: "local-key"

Xem Ủy nhiệm đại lý phụ để biết chi tiết cấu hình đầy đủ.


Nhà cung cấp việc làm Cron

Công việc định kỳ chạy với bất kỳ nhà cung cấp nào được định cấu hình tại thời điểm thực thi. Họ không hỗ trợ mô hình dự phòng. Để sử dụng một nhà cung cấp khác cho công việc định kỳ, hãy định cấu hình providermodel ghi đè lên chính công việc định kỳ đó:

cronjob(
action="create",
schedule="every 2h",
prompt="Check server status",
provider="openrouter",
model="google/gemini-3-flash-preview"
)

Xem Tác vụ đã lên lịch (Cron) để biết chi tiết cấu hình đầy đủ.


Tóm tắt

Tính năngCơ chế dự phòngVị trí cấu hình
Mô hình đại lý chínhfallback_model trong config.yaml — chuyển đổi dự phòng một lần khi gặp lỗifallback_model: (cấp cao nhất)
Tầm nhìnChuỗi tự động phát hiện + thử lại OpenRouter nội bộauxiliary.vision
Khai thác webChuỗi tự động phát hiện + thử lại OpenRouter nội bộauxiliary.web_extract
Nén bối cảnhChuỗi tự động phát hiện, chuyển sang không có tóm tắt nếu không cóauxiliary.compression hoặc compression.summary_provider
Tìm kiếm phiênChuỗi tự động phát hiệnauxiliary.session_search
Trung tâm kỹ năngChuỗi tự động phát hiệnauxiliary.skills_hub
Người trợ giúp MCPChuỗi tự động phát hiệnauxiliary.mcp
Xả bộ nhớChuỗi tự động phát hiệnauxiliary.flush_memories
Phái đoànChỉ ghi đè nhà cung cấp (không có dự phòng tự động)delegation.provider / delegation.model
Công việc định kỳChỉ ghi đè nhà cung cấp theo công việc (không có dự phòng tự động)Theo công việc provider / model