Fallback 제공자
Hermes Agent는 제공자가 문제점을 명중할 때 세션을 유지하는 탄력의 3개의 층을 가지고 있습니다:
- Credential Pools — same 제공자를 위한 다수 API 열쇠의 맞은편에 자전합니다 (첫째로 평가되는)
- ** 일기 모델 fallback** - different 제공자로 자동 전환:주요 모델이 실패했을 때 모델
- ** 보조 작업 fallback** - 비전, 압축 및 웹 추출과 같은 측면 작업에 대한 독립적 인 제공자 해결책
Credential 풀은 동일한 프로비저스 교체(예, 여러 OpenRouter 키)를 처리합니다. 이 페이지는 cross-provider fallback을 다룹니다. 둘 다 선택적이고 자주적으로 일합니다.
모델 Fallback
주요 LLM 제공자가 오류를 발생했을 때 - 속도 제한, 서버 과부하, auth 실패, 연결 방울 - Hermes는 자동으로 백업 제공자로 전환 할 수 있습니다: 대화를 잃지 않고 모델 쌍 중간 세션.
제품 설명
가장 쉬운 경로는 상호 작용하는 매니저입니다:
hermes fallback
``hermes fallback`는 `hermes model`의 공급자 선택기를 재사용합니다. 동일한 공급자 목록, 동일한 자격 증명, 동일한 검증. subcommands `add`, `list` (alias `ls`), `remove` (alias `rm`), `clear`를 사용하여 체인을 관리합니다. 최고 수준의 `fallback_providers:` 목록에서 persist 변경 `config.yaml`.
YAML을 직접 편집하면 `fallback_model` 섹션을 `~/.hermes/config.yaml`에 추가합니다
```yaml
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
둘 다 provider와 model는 ** 필요. 누락 된 경우, fallback은 비활성화됩니다.
fallback_model vs fallback_providersfallback_model (singular)는 레거시 단일 낙하 키입니다. - 헤르메스는 여전히 back-compat를 위해 그것을 존중합니다. fallback_providers (plural, list)는 순서에서 시도한 여러 가지 낙하를 지원합니다. hermes fallback는 이 키에 쓰입니다. 둘 다 놓을 때, 헤르메스는 fallback_providers 우선 순위로 병합합니다.지원되는 공급자
| 회사 소개 | 주요 특징 | 제품 정보 |
|---|---|---|
| AI 게이트웨이 | ai-gateway | AI_GATEWAY_API_KEY |
| 열린Router | openrouter | OPENROUTER_API_KEY |
| Nous 포털 | nous | hermes auth (오우) |
| OpenAI 코드 | openai-codex | hermes model (ChatGPT OAuth) |
| 프로젝트 | copilot | COPILOT_GITHUB_TOKEN, GH_TOKEN, 또는 GITHUB_TOKEN |
| 프로젝트 | copilot-acp | 외부 공정(editor Integration) |
| 인기 카테고리 | anthropic | ANTHROPIC_API_KEY 또는 Claude 코드 자격 증명 |
| z.ai / GLM의 특징 | zai | GLM_API_KEY |
| 김이 / 문샷 | kimi-coding | KIMI_API_KEY |
| 미니 맥스 | minimax | MINIMAX_API_KEY |
| MiniMax (중국) | minimax-cn | MINIMAX_CN_API_KEY |
| 딥스카이 | deepseek | DEEPSEEK_API_KEY |
| NVIDIA의 NIM | nvidia | NVIDIA_API_KEY (선택 사항: NVIDIA_BASE_URL) |
| 사이트맵 클라우드 | gmi | GMI_API_KEY (선택 사항: GMI_BASE_URL) |
| 사이트맵 | stepfun | STEPFUN_API_KEY (선택 사항: STEPFUN_BASE_URL) |
| Ollama 클라우드 | ollama-cloud | OLLAMA_API_KEY |
| 구글 젬니 (OAuth) | google-gemini-cli | hermes model (Google OAuth; 선택 사항: HERMES_GEMINI_PROJECT_ID) |
| Google AI 스튜디오 | gemini | GOOGLE_API_KEY ( 별칭: GEMINI_API_KEY) |
| xAI (그라크) | xai (알리아 grok) | XAI_API_KEY (선택 사항: XAI_BASE_URL) |
| XAI Grok OAuth (슈퍼그라크) | xai-oauth (알리아 grok-oauth) | hermes model → xAI Grok OAuth (브라우저 로그인; SuperGrok 구독) |
| AWS 베드록 | bedrock | 표준 boto3 auth (AWS_REGION + AWS_PROFILE 또는 AWS_ACCESS_KEY_ID) |
| Qwen 포털 (OAuth) | qwen-oauth | hermes model (Qwen Portal OAuth; 옵션: HERMES_QWEN_BASE_URL) |
| 미니 맥스 (OAuth) | minimax-oauth | hermes model (미니맥스 OAuth) |
| OpenCode 젠 | opencode-zen | OPENCODE_ZEN_API_KEY |
| OpenCode 바로가기 | opencode-go | OPENCODE_GO_API_KEY |
| 킬로 코드 | kilocode | KILOCODE_API_KEY |
| 샤오 미모 | xiaomi | XIAOMI_API_KEY |
| 미디어센터 | arcee | ARCEEAI_API_KEY |
| 사이트맵 클라우드 | gmi | GMI_API_KEY |
| Alibaba/대시스코프 | alibaba | DASHSCOPE_API_KEY |
| Alibaba 코딩 계획 | alibaba-coding-plan | ALIBABA_CODING_PLAN_API_KEY (DASHSCOPE_API_KEY로 돌아가십시오) |
| 김이 / 문샷 (중국) | kimi-coding-cn | KIMI_CN_API_KEY |
| 사이트맵 | stepfun | STEPFUN_API_KEY |
| Tencent 토큰 | tencent-tokenhub | TOKENHUB_API_KEY |
| Azure AI 설립자 | azure-foundry | AZURE_FOUNDRY_API_KEY + AZURE_FOUNDRY_BASE_URL |
| LM Studio (현지) | lmstudio | LM_API_KEY (또는 로컬) + LM_BASE_URL |
| Hugging 얼굴 | huggingface | HF_TOKEN |
| 주문 endpoint | custom | base_url + key_env (아래 참조) |
사용자 정의 Endpoint Fallback
사용자 정의 OpenAI 호환 엔드 포인트에 대한, 추가 base_url 및 옵션으로 key_env:
fallback_model:
provider: custom
model: my-local-model
base_url: http://localhost:8000/v1
key_env: MY_LOCAL_KEY # env var name containing the API key
할 때 Fallback 트리거
fallback는 1 차 모델이 실패했을 때 자동으로 활성화합니다
- ** 제한 ** (HTTP 429) - 배기 구출 시도 후
- **서버 오류 ** (HTTP 500, 502, 503) - 배기 구출 시도 후
- **Auth 실패 ** (HTTP 401, 403) - 즉시 (포인트 복원 없음)
- ** 발견되지 않음 ** (HTTP 404) - 즉시
- Invalid responses — API가 변형되거나 빈 응답을 반복적으로 반환할 때
트리거 할 때, 헤르메스:
- fallback 공급자를 위한 자격
- 새로운 API 클라이언트 구축
- 모델, 공급자 및 클라이언트를 교환
- retry 카운터를 재설정하고 대화를 계속합니다
스위치는 완벽합니다 - 대화 기록, 도구 통화 및 컨텍스트가 보존됩니다. 이 에이전트는 정확히에서 왼쪽, 그냥 다른 모델을 사용.
Fallback은 turn-scoped: 각 새로운 사용자 메시지는 1차 모델로 복원됩니다. 1 차가 중간 회전을 실패하면, fallback은 그 차례로 활성화합니다. 다음 메시지에서 Hermes는 다시 한 번 시도합니다. 단일 차례 안에, fallback은 한 번에 활성화합니다. 가을이 실패하면, 일반 오류 처리는 (문자, 오류 메시지). 이 턴 내의 캐스케이드 장애 루프를 방지하고 각 턴을 신선한 기회를 부여합니다.
이름 *
Anthropic native를 위한 fallback으로 OpenRouter:
model:
provider: anthropic
default: claude-sonnet-4-6
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
** OpenRouter에 대한 fallback으로의 포털: **
model:
provider: openrouter
default: anthropic/claude-opus-4
fallback_model:
provider: nous
model: nous-hermes-3
*Local 모델은 클라우드에 대한 fallback으로: * 이름
fallback_model:
provider: custom
model: llama-3.1-70b
base_url: http://localhost:8000/v1
key_env: LOCAL_API_KEY
** 코덱 OAuth 로 fallback:**
fallback_model:
provider: openai-codex
model: gpt-5.3-codex
Fallback 작품
| 설정하기 | 지원되는 Fallback |
|---|---|
| CLI 세션 | ✔ |
| 메시징 게이트웨이(Telegram, Discord 등) | ✔ |
| 시약 위임 | ⊙ (subagents는 fallback config를 상속하지 않습니다) |
| Cron 작업 | ⊙ (고정 공급자로 실행) |
| 보조 작업 (vision, 압축) | ⊙ (자본 공급자 체인 사용 — 아래 참조) |
fallback_model에 대한 환경 변수가 없습니다. config.yaml를 통해서만 구성됩니다. 이것은 의도적입니다: fallback 윤곽은 stale 포탄 수출이 override이어야 하지 않는 deliberate 선택입니다.
보조 작업 Fallback
Hermes는 측면 작업을 위한 별도의 경량 모델을 사용합니다. 각 작업에는 내장 된 fallback 시스템으로 작동하는 자체 공급 업체의 해결 체인이 있습니다.
독립적 인 공급자 해결과 작업
| 기타 | 그것은 무엇입니까 | Config 열쇠 |
|---|---|---|
| - 연혁 | 이미지 분석, 브라우저 스크린샷 | auxiliary.vision |
| 웹 추출 | 웹 페이지 요약 | auxiliary.web_extract |
| 압축 | Context 압축 summaries | auxiliary.compression |
| 세션 검색 | 지난 세션 요약 | auxiliary.session_search |
| 기술 허브 | 기술 검색 및 발견 | auxiliary.skills_hub |
| 사이트맵 | MCP 헬퍼 운영 | auxiliary.mcp |
| 이름 * | Smart command-approval 분류 | auxiliary.approval |
| 제목 생성 | 세션 제목 요약 | auxiliary.title_generation |
| 공급 업체 | hermes kanban specify / 대시보드 ✨ 버튼 - 실제 사양으로 한 라이너 삼가 작업에서 살짝 | auxiliary.triage_specifier |
Auto-Detection 체인
작업 제공자가 "auto" (기본값)로 설정되면, Hermes는 1개의 작품까지 주문할 수 있습니다:
** 텍스트 작업 (압축, 웹 추출물 등): * 이름 * 이름
OpenRouter → Nous Portal → Custom endpoint → Codex OAuth →
API-key providers (z.ai, Kimi, MiniMax, Xiaomi MiMo, Hugging Face, Anthropic) → give up
시력 작업:
Main provider (if vision-capable) → OpenRouter → Nous Portal →
Codex OAuth → Anthropic → Custom endpoint → give up
해결된 공급자가 호출 시간에 실패하면, Hermes는 또한 내부 재량이 있습니다. 공급자가 OpenRouter가 아니며 명시되지 않은 경우 base_url가 설정되어, OpenRouter를 마지막 리조트로 해제합니다.
Auxiliary 공급자 구성
각 작업은 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: ""
timeout: 30
max_concurrency: 3
extra_body: {}
skills_hub:
provider: "auto"
model: ""
mcp:
provider: "auto"
model: ""
위의 모든 작업은 같은 ** 프로바이더 / 모델 / base_url** 패턴을 따릅니다. Context 압축은 auxiliary.compression의 밑에 형성됩니다:
auxiliary:
compression:
provider: main # Same provider options as other auxiliary tasks
model: google/gemini-3-flash-preview
base_url: null # Custom OpenAI-compatible endpoint
그리고 fallback 모형 용도:
fallback_model:
provider: openrouter
model: anthropic/claude-sonnet-4
# base_url: http://localhost:8000/v1 # Optional custom endpoint
``auxiliary.session_search`를 위해, Hermes는 또한 지원합니다:
- `max_concurrency`는 한 번에 여러 세션 요약이 실행되는 방법을 제한합니다
- `extra_body`는 summarization 호출을 통해 제공자 별 OpenAI 호환 요청 필드를 전달합니다
예:
```yaml
auxiliary:
session_search:
provider: main
model: glm-4.5-air
max_concurrency: 2
extra_body:
enable_thinking: false
만약 당신의 제공자가 기본 OpenAI 호환되는 reasoning-control 필드를 지원하지 않는 경우, extra_body는 그 부분에 도움이되지 않습니다; 그 경우 max_concurrency는 여전히 request-burst 429s를 줄이기 위해 유용합니다.
모든 세 가지 - 보조, 압축, 낙하 - 같은 방법을 작동: 요청을 처리하는 것을 선택하기 위해 provider를 설정, model 어떤 모델을 선택, 그리고 base_url 사용자 정의 엔드 포인트에 포인트 (배당 제공 업체).
Auxiliary Tasks에 대한 제공자 옵션
이 옵션은 auxiliary:, compression: 및 fallback_model: configs에만 적용됩니다. - "main"는 ****** 의 최고 수준의 model.provider의 유효 값입니다. 사용자 정의 엔드포인트의 경우, provider: custom를 model: 섹션에서 사용(AI Providers).
| 회사 소개 | 설명 | 제품 정보 |
|---|---|---|
"auto" | 한 작품까지 주문하는 제공자를 시도하세요 (과태) | 적어도 1개의 제공자는 형성했습니다 |
"openrouter" | 힘 OpenRouter | OPENROUTER_API_KEY |
"nous" | 힘 Nous 포털 | hermes auth |
"codex" | 힘 코덱 OAuth | hermes model → 코덱 |
"main" | 주요 에이전트 용도(auxiliary task only)를 어떤 제공자든지 사용하세요 | Active main 제공 업체 구성 |
"anthropic" | 힘 Anthropic 본래 | ANTHROPIC_API_KEY 또는 Claude 코드 자격 증명 |
직접 엔드포인트 Override
어떤 보조 작업을 위해 base_url를 설정하면 제공자의 해상도를 완전히 우회하고 그 엔드포인트에 직접 요청을 보냅니다
auxiliary:
vision:
base_url: "http://localhost:1234/v1"
api_key: "local-key"
model: "qwen2.5-vl"
``base_url`는 `provider`에 대한 선행을 합니다. Hermes는 설정하지 않는 경우 `api_key`를 사용하며, `OPENAI_API_KEY`로 돌아갑니다. 커스텀 엔드포인트를 위해 `OPENROUTER_API_KEY`를 재사용하지 않습니다.
---
## Context 압축 Fallback \{#context-compression-fallback}
Context 압축은 `auxiliary.compression` config 블록을 사용하여 모델 및 공급자가 요약을 처리 할 수 있습니다
```yaml
auxiliary:
compression:
provider: "auto" # auto | openrouter | nous | main
model: "google/gemini-3-flash-preview"
compression.summary_model / compression.summary_provider / compression.summary_base_url 의 이전 구성은 auxiliary.compression.* 로 자동 마이그레이션됩니다.
공급자가 압축을 위해 사용할 수없는 경우 Hermes는 세션을 실패하지 않고 요약을 생성하지 않고 중간 대화를 떨어뜨립니다.
위임 공급자 Override
delegate_task donot에 의해 스팸이 발생했습니다. 그러나, 그들은 다른 공급자에 노선될 수 있습니다: 비용 최적화를 위한 모형 쌍:
delegation:
provider: "openrouter" # 재정의 provider for all subagents
model: "google/gemini-3-flash-preview" # 재정의 model
# base_url: "http://localhost:1234/v1" # or use a direct endpoint
# api_key: "local-key"
전체 구성 세부 사항에 대한 Subagent Delegation를 참조하십시오.
Cron 작업 제공자
Cron 작업은 모든 공급자가 실행 시간에 구성됩니다. 그들은 fallback 모델을 지원하지 않습니다. cron 작업에 대한 다른 제공 업체를 사용하려면 provider 및 model는 cron 작업 자체에 배속합니다
cronjob(
action="create",
schedule="every 2h",
prompt="Check server status",
provider="openrouter",
model="google/gemini-3-flash-preview"
)
전체 구성 세부 사항에 대한 Scheduled Task (Cron)를 참조하십시오.
요약
| 기능 | 폴백 메커니즘 | 설정 위치 |
|---|---|---|
| 메인 에이전트 모델 | config.yaml의 fallback_model. 오류가 난 turn에서만 failover하고 다음 turn에는 primary로 돌아갑니다. | fallback_model: (최상위) |
| 비전 | 자동 감지 체인 + 내부 OpenRouter 재시도 | auxiliary.vision |
| 웹 추출 | 자동 감지 체인 + 내부 OpenRouter 재시도 | auxiliary.web_extract |
| 컨텍스트 압축 | 자동 감지 체인. 사용할 수 없으면 요약 없이 degrade | auxiliary.compression |
| 세션 검색 | 자동 감지 체인 | auxiliary.session_search |
| 스킬 허브 | 자동 감지 체인 | auxiliary.skills_hub |
| MCP 헬퍼 | 자동 감지 체인 | auxiliary.mcp |
| 승인 분류 | 자동 감지 체인 | auxiliary.approval |
| 제목 생성 | 자동 감지 체인 | auxiliary.title_generation |
| 제공자 입력 정리 | 자동 감지 체인 | auxiliary.triage_specifier |
| 위임 | 제공자 override만 사용. 자동 fallback 없음 | delegation.provider / delegation.model |
| Cron 작업 | 작업별 제공자/모델 override만 사용. 자동 fallback 없음 | 작업의 provider / model |