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ố:
- 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)
- 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
- 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ả provider và model đề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ấp | Giá trị | Yêu cầu |
|---|---|---|
| Cổng AI | ai-gateway | AI_GATEWAY_API_KEY |
| OpenRouter | openrouter | OPENROUTER_API_KEY |
| Nous Portal | nous | hermes auth (OAuth) |
| OpenAI Codex | openai-codex | hermes model (Trò chuyệnGPT OAuth) |
| GitHub Copilot | copilot | COPILOT_GITHUB_TOKEN , GH_TOKEN hoặc GITHUB_TOKEN |
| GitHub Copilot ACP | copilot-acp | Quy trình bên ngoài (tích hợp trình soạn thảo) |
| Nhân chủng học | anthropic | ANTHROPIC_API_KEY hoặc thông tin đăng nhập Mã Claude |
| z.ai / GLM | zai | GLM_API_KEY |
| Kimi / Moonshot | kimi-coding | KIMI_API_KEY |
| MiniMax | minimax | MINIMAX_API_KEY |
| MiniMax (Trung Quốc) | minimax-cn | MINIMAX_CN_API_KEY |
| DeepSeek | deepseek | DEEPSEEK_API_KEY |
| OpenCode Zen | opencode-zen | OPENCODE_ZEN_API_KEY |
| OpenCode Đi | opencode-go | OPENCODE_GO_API_KEY |
| KiloCode | kilocode | KILOCODE_API_KEY |
| Alibaba / DashScope | alibaba | DASHSCOPE_API_KEY |
| Ôm Mặt | huggingface | HF_TOKEN |
| Custom Endpoint | custom | base_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:
- Giải quyết thông tin xác thực cho nhà cung cấp dự phòng
- Xây dựng ứng dụng khách API mới
- Hoán đổi mô hình, nhà cung cấp và khách hàng tại chỗ
- Đặ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.
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ảnh | Hỗ 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) |
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ìn | Phân tích hình ảnh, ảnh chụp màn hình trình duyệt | auxiliary.vision |
| Trích xuất web | Tóm tắt trang web | auxiliary.web_extract |
| Nén | Tóm tắt nén ngữ cảnh | auxiliary.compression hoặc compression.summary_provider |
| Tìm kiếm phiên | Tóm tắt phiên trước | auxiliary.session_search |
| Trung tâm kỹ năng | Tìm kiếm và khám phá kỹ năng | auxiliary.skills_hub |
| MCP | Hoạt động trợ giúp MCP | auxiliary.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.provider và auxiliary.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 provider và model 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ăng | Cơ chế dự phòng | Vị trí cấu hình |
|---|---|---|
| Mô hình đại lý chính | fallback_model trong config.yaml — chuyển đổi dự phòng một lần khi gặp lỗi | fallback_model: (cấp cao nhất) |
| Tầm nhìn | Chuỗi tự động phát hiện + thử lại OpenRouter nội bộ | auxiliary.vision |
| Khai thác web | Chuỗi tự động phát hiện + thử lại OpenRouter nội bộ | auxiliary.web_extract |
| Nén bối cảnh | Chuỗ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ên | Chuỗi tự động phát hiện | auxiliary.session_search |
| Trung tâm kỹ năng | Chuỗi tự động phát hiện | auxiliary.skills_hub |
| Người trợ giúp MCP | Chuỗi tự động phát hiện | auxiliary.mcp |
| Xả bộ nhớ | Chuỗi tự động phát hiện | auxiliary.flush_memories |
| Phái đoàn | Chỉ 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 |