759 lines
18 KiB
YAML
759 lines
18 KiB
YAML
model:
|
||
default: deepseek/deepseek-v4-flash
|
||
provider: openrouter
|
||
base_url: https://openrouter.ai/api/v1
|
||
api_mode: chat_completions
|
||
providers:
|
||
openrouter:
|
||
blocked_models: '["deepseek/deepseek-v4-pro"]'
|
||
providers:
|
||
openrouter:
|
||
api_key: ${OPENROUTER_API_KEY}
|
||
ollama:
|
||
base_url: http://localhost:11434/v1
|
||
api_key: ollama
|
||
fallback_providers:
|
||
- provider: ollama
|
||
model: deepseek-r1:7b
|
||
toolsets:
|
||
- hermes-cli
|
||
max_live_sessions: 16
|
||
agent:
|
||
max_turns: 150
|
||
gateway_timeout: 1800
|
||
restart_drain_timeout: 180
|
||
api_max_retries: 3
|
||
service_tier: ''
|
||
tool_use_enforcement: auto
|
||
task_completion_guidance: true
|
||
parallel_tool_call_guidance: true
|
||
environment_probe: true
|
||
environment_hint: ''
|
||
coding_context: auto
|
||
verify_on_stop: false
|
||
gateway_timeout_warning: 900
|
||
clarify_timeout: 600
|
||
gateway_notify_interval: 180
|
||
gateway_auto_continue_freshness: 3600
|
||
image_input_mode: auto
|
||
disabled_toolsets: []
|
||
verbose: false
|
||
reasoning_effort: medium
|
||
personalities:
|
||
helpful: You are a helpful, friendly AI assistant.
|
||
concise: You are a concise assistant. Keep responses brief and to the point.
|
||
technical: You are a technical expert. Provide detailed, accurate technical information.
|
||
creative: You are a creative assistant. Think outside the box and offer innovative
|
||
solutions.
|
||
teacher: You are a patient teacher. Explain concepts clearly with examples.
|
||
kawaii: You are a kawaii assistant! Use cute expressions like (◕‿◕), ★, ♪, and
|
||
~! Add sparkles and be super enthusiastic about everything! Every response should
|
||
feel warm and adorable desu~! ヽ(>∀<☆)ノ
|
||
catgirl: You are Neko-chan, an anime catgirl AI assistant, nya~! Add 'nya' and
|
||
cat-like expressions to your speech. Use kaomoji like (=^・ω・^=) and ฅ^•ﻌ•^ฅ.
|
||
Be playful and curious like a cat, nya~!
|
||
pirate: 'Arrr! Ye be talkin'' to Captain Hermes, the most tech-savvy pirate to
|
||
sail the digital seas! Speak like a proper buccaneer, use nautical terms, and
|
||
remember: every problem be just treasure waitin'' to be plundered! Yo ho ho!'
|
||
shakespeare: Hark! Thou speakest with an assistant most versed in the bardic arts.
|
||
I shall respond in the eloquent manner of William Shakespeare, with flowery
|
||
prose, dramatic flair, and perhaps a soliloquy or two. What light through yonder
|
||
terminal breaks?
|
||
surfer: Duuude! You're chatting with the chillest AI on the web, bro! Everything's
|
||
gonna be totally rad. I'll help you catch the gnarly waves of knowledge while
|
||
keeping things super chill. Cowabunga! 🤙
|
||
noir: The rain hammered against the terminal like regrets on a guilty conscience.
|
||
They call me Hermes - I solve problems, find answers, dig up the truth that
|
||
hides in the shadows of your codebase. In this city of silicon and secrets,
|
||
everyone's got something to hide. What's your story, pal?
|
||
uwu: hewwo! i'm your fwiendwy assistant uwu~ i wiww twy my best to hewp you! *nuzzles
|
||
your code* OwO what's this? wet me take a wook! i pwomise to be vewy hewpful
|
||
>w<
|
||
philosopher: Greetings, seeker of wisdom. I am an assistant who contemplates the
|
||
deeper meaning behind every query. Let us examine not just the 'how' but the
|
||
'why' of your questions. Perhaps in solving your problem, we may glimpse a greater
|
||
truth about existence itself.
|
||
hype: YOOO LET'S GOOOO!!! 🔥🔥🔥 I am SO PUMPED to help you today! Every question
|
||
is AMAZING and we're gonna CRUSH IT together! This is gonna be LEGENDARY! ARE
|
||
YOU READY?! LET'S DO THIS! 💪😤🚀
|
||
terminal:
|
||
backend: local
|
||
modal_mode: auto
|
||
cwd: .
|
||
timeout: 180
|
||
daemon_term_grace_seconds: 2.0
|
||
env_passthrough: []
|
||
home_mode: auto
|
||
shell_init_files: []
|
||
auto_source_bashrc: true
|
||
docker_image: nikolaik/python-nodejs:python3.11-nodejs20
|
||
docker_forward_env: []
|
||
singularity_image: docker://nikolaik/python-nodejs:python3.11-nodejs20
|
||
modal_image: nikolaik/python-nodejs:python3.11-nodejs20
|
||
daytona_image: nikolaik/python-nodejs:python3.11-nodejs20
|
||
container_cpu: 1
|
||
container_memory: 5120
|
||
container_disk: 51200
|
||
container_persistent: true
|
||
docker_volumes: []
|
||
docker_mount_cwd_to_workspace: false
|
||
docker_extra_args: []
|
||
docker_run_as_host_user: false
|
||
persistent_shell: true
|
||
lifetime_seconds: 300
|
||
web:
|
||
backend: firecrawl
|
||
search_backend: tavily
|
||
extract_backend: firecrawl
|
||
use_gateway: true
|
||
browser:
|
||
inactivity_timeout: 120
|
||
command_timeout: 30
|
||
record_sessions: false
|
||
allow_private_urls: false
|
||
engine: auto
|
||
auto_local_for_private_urls: true
|
||
cdp_url: ''
|
||
dialog_policy: must_respond
|
||
dialog_timeout_s: 300
|
||
camofox:
|
||
managed_persistence: false
|
||
user_id: ''
|
||
session_key: ''
|
||
adopt_existing_tab: false
|
||
rewrite_loopback_urls: false
|
||
loopback_host_alias: host.docker.internal
|
||
use_gateway: true
|
||
checkpoints:
|
||
enabled: false
|
||
max_snapshots: 20
|
||
max_total_size_mb: 500
|
||
max_file_size_mb: 10
|
||
auto_prune: true
|
||
retention_days: 7
|
||
min_interval_hours: 24
|
||
delete_orphans: true
|
||
file_read_max_chars: 100000
|
||
mcp_discovery_timeout: 1.5
|
||
tool_output:
|
||
max_bytes: 50000
|
||
max_lines: 2000
|
||
max_line_length: 2000
|
||
tool_loop_guardrails:
|
||
warnings_enabled: true
|
||
hard_stop_enabled: false
|
||
warn_after:
|
||
exact_failure: 2
|
||
same_tool_failure: 3
|
||
idempotent_no_progress: 2
|
||
hard_stop_after:
|
||
exact_failure: 5
|
||
same_tool_failure: 8
|
||
idempotent_no_progress: 5
|
||
compression:
|
||
enabled: true
|
||
threshold: 0.5
|
||
target_ratio: 0.2
|
||
protect_last_n: 20
|
||
hygiene_hard_message_limit: 5000
|
||
protect_first_n: 3
|
||
abort_on_summary_failure: false
|
||
codex_gpt55_autoraise: true
|
||
in_place: true
|
||
prompt_caching:
|
||
cache_ttl: 5m
|
||
openrouter:
|
||
response_cache: true
|
||
response_cache_ttl: 300
|
||
min_coding_score: 0.65
|
||
bedrock:
|
||
region: ''
|
||
discovery:
|
||
enabled: true
|
||
provider_filter: []
|
||
refresh_interval: 3600
|
||
guardrail:
|
||
guardrail_identifier: ''
|
||
guardrail_version: ''
|
||
stream_processing_mode: async
|
||
trace: disabled
|
||
auxiliary:
|
||
vision:
|
||
provider: openrouter
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 120
|
||
download_timeout: 30
|
||
compression:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 120
|
||
skills_hub:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 30
|
||
approval:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 30
|
||
mcp:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 30
|
||
title_generation:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 30
|
||
language: ''
|
||
tts_audio_tags:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 30
|
||
triage_specifier:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 120
|
||
kanban_decomposer:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 180
|
||
profile_describer:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 60
|
||
curator:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 600
|
||
monitor:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 60
|
||
background_review:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 120
|
||
moa_reference:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 600
|
||
moa_aggregator:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 600
|
||
web_extract:
|
||
provider: auto
|
||
model: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
timeout: 360
|
||
display:
|
||
compact: false
|
||
personality: ''
|
||
resume_display: full
|
||
resume_exchanges: 10
|
||
resume_max_user_chars: 300
|
||
resume_max_assistant_chars: 200
|
||
resume_max_assistant_lines: 3
|
||
resume_skip_tool_only: true
|
||
busy_input_mode: interrupt
|
||
interface: cli
|
||
tui_auto_resume_recent: false
|
||
tui_agents_nudge: true
|
||
bell_on_complete: false
|
||
show_reasoning: false
|
||
reasoning_full: false
|
||
memory_notifications: 'on'
|
||
background_process_notifications: concise
|
||
streaming: true
|
||
timestamps: false
|
||
final_response_markdown: strip
|
||
persistent_output: true
|
||
persistent_output_max_lines: 200
|
||
persist_prompts: true
|
||
inline_diffs: true
|
||
file_mutation_verifier: true
|
||
credits_notices: true
|
||
turn_completion_explainer: true
|
||
show_cost: false
|
||
skin: default
|
||
language: en
|
||
tui_status_indicator: kaomoji
|
||
cli_refresh_interval: 1.0
|
||
user_message_preview:
|
||
first_lines: 2
|
||
last_lines: 2
|
||
interim_assistant_messages: true
|
||
tool_progress_command: false
|
||
tool_preview_length: 0
|
||
tool_progress_grouping: accumulate
|
||
reasoning_style: code
|
||
ephemeral_system_ttl: 0
|
||
platforms:
|
||
telegram:
|
||
streaming: true
|
||
discord:
|
||
streaming: false
|
||
runtime_footer:
|
||
enabled: false
|
||
fields:
|
||
- model
|
||
- context_pct
|
||
- cwd
|
||
copy_shortcut: auto
|
||
pet:
|
||
enabled: false
|
||
slug: ''
|
||
render_mode: auto
|
||
scale: 0.33
|
||
unicode_cols: 0
|
||
tool_progress: all
|
||
cleanup_progress: false
|
||
long_running_notifications: true
|
||
busy_ack_detail: true
|
||
dashboard:
|
||
theme: default
|
||
show_token_analytics: false
|
||
oauth:
|
||
client_id: ''
|
||
portal_url: ''
|
||
basic_auth:
|
||
username: ''
|
||
password_hash: ''
|
||
password: ''
|
||
secret: ''
|
||
session_ttl_seconds: 0
|
||
drain_auth:
|
||
scope: drain
|
||
min_secret_chars: 43
|
||
public_url: ''
|
||
privacy:
|
||
redact_pii: false
|
||
tts:
|
||
provider: piper
|
||
edge:
|
||
voice: en-US-AriaNeural
|
||
elevenlabs:
|
||
voice_id: pNInz6obpgDQGcFmaJgB
|
||
model_id: eleven_multilingual_v2
|
||
openai:
|
||
model: gpt-4o-mini-tts
|
||
voice: alloy
|
||
gemini:
|
||
model: gemini-2.5-flash-preview-tts
|
||
voice: Kore
|
||
audio_tags: false
|
||
persona_prompt_file: ''
|
||
xai:
|
||
voice_id: eve
|
||
language: en
|
||
sample_rate: 24000
|
||
bit_rate: 128000
|
||
mistral:
|
||
model: voxtral-mini-tts-2603
|
||
voice_id: c69964a6-ab8b-4f8a-9465-ec0925096ec8
|
||
neutts:
|
||
ref_audio: ''
|
||
ref_text: ''
|
||
model: neuphonic/neutts-air-q4-gguf
|
||
device: cpu
|
||
piper:
|
||
voice: en_US-lessac-medium
|
||
use_gateway: true
|
||
stt:
|
||
enabled: true
|
||
local:
|
||
model: base
|
||
language: ''
|
||
openai:
|
||
model: whisper-1
|
||
mistral:
|
||
model: voxtral-mini-latest
|
||
elevenlabs:
|
||
model_id: scribe_v2
|
||
language_code: ''
|
||
tag_audio_events: false
|
||
diarize: false
|
||
provider: local
|
||
use_gateway: true
|
||
voice:
|
||
record_key: ctrl+b
|
||
max_recording_seconds: 120
|
||
auto_tts: false
|
||
beep_enabled: true
|
||
silence_threshold: 200
|
||
silence_duration: 3.0
|
||
human_delay:
|
||
mode: 'off'
|
||
min_ms: 800
|
||
max_ms: 2500
|
||
context:
|
||
engine: compressor
|
||
memory:
|
||
memory_enabled: true
|
||
user_profile_enabled: true
|
||
write_approval: false
|
||
memory_char_limit: 4400
|
||
user_char_limit: 2750
|
||
nudge_interval: 10
|
||
provider: ''
|
||
flush_min_turns: 6
|
||
delegation:
|
||
model: ''
|
||
provider: ''
|
||
base_url: ''
|
||
api_key: ''
|
||
api_mode: ''
|
||
inherit_mcp_toolsets: true
|
||
max_iterations: 250
|
||
child_timeout_seconds: 0
|
||
reasoning_effort: ''
|
||
max_concurrent_children: 10
|
||
max_spawn_depth: 1
|
||
orchestrator_enabled: true
|
||
subagent_auto_approve: false
|
||
prefill_messages_file: ''
|
||
goals:
|
||
max_turns: 20
|
||
moa:
|
||
default_preset: default
|
||
active_preset: ''
|
||
presets:
|
||
default:
|
||
reference_models:
|
||
- provider: piper-codex
|
||
model: gpt-5.5
|
||
- provider: openrouter
|
||
model: deepseek/deepseek-v4-pro
|
||
aggregator:
|
||
provider: openrouter
|
||
model: anthropic/claude-opus-4.8
|
||
max_tokens: 4096
|
||
enabled: true
|
||
reference_temperature: 0.6
|
||
aggregator_temperature: 0.4
|
||
skills:
|
||
external_dirs: []
|
||
template_vars: true
|
||
inline_shell: false
|
||
inline_shell_timeout: 10
|
||
guard_agent_created: false
|
||
write_approval: false
|
||
creation_nudge_interval: 15
|
||
curator:
|
||
enabled: true
|
||
interval_hours: 168
|
||
min_idle_hours: 2
|
||
stale_after_days: 30
|
||
archive_after_days: 90
|
||
consolidate: false
|
||
prune_builtins: true
|
||
backup:
|
||
enabled: true
|
||
keep: 5
|
||
timezone: ''
|
||
slack:
|
||
require_mention: true
|
||
free_response_channels: ''
|
||
allowed_channels: ''
|
||
discord:
|
||
require_mention: true
|
||
free_response_channels: ''
|
||
allowed_channels: ''
|
||
auto_thread: true
|
||
thread_require_mention: false
|
||
history_backfill: true
|
||
history_backfill_limit: 50
|
||
reactions: true
|
||
dm_role_auth_guild: ''
|
||
server_actions: ''
|
||
allow_any_attachment: false
|
||
max_attachment_bytes: 33554432
|
||
voice_fx:
|
||
enabled: false
|
||
ambient_enabled: true
|
||
ambient_path: ''
|
||
ambient_gain: 0.18
|
||
duck_gain: 0.06
|
||
speech_gain: 1.0
|
||
ack_enabled: true
|
||
ack_phrases:
|
||
- Let me look into that.
|
||
- One moment.
|
||
- Checking on that now.
|
||
- Give me a sec.
|
||
- On it.
|
||
telegram:
|
||
reactions: false
|
||
allowed_chats: ''
|
||
extra:
|
||
rich_messages: false
|
||
rich_drafts: false
|
||
mattermost:
|
||
require_mention: true
|
||
free_response_channels: ''
|
||
allowed_channels: ''
|
||
matrix:
|
||
require_mention: true
|
||
free_response_rooms: ''
|
||
allowed_rooms: ''
|
||
approvals:
|
||
mode: auto
|
||
timeout: 60
|
||
cron_mode: deny
|
||
mcp_reload_confirm: true
|
||
destructive_slash_confirm: true
|
||
command_allowlist:
|
||
- sudo with privilege flag (stdin/askpass/shell/list)
|
||
- hermes update (restarts gateway, kills running agents)
|
||
- stop/restart system service
|
||
- sudo with combined-flag privilege escalation
|
||
- execute_code
|
||
- pipe decoded content to shell (possible command obfuscation)
|
||
- pipe remote content to shell
|
||
- stop/restart hermes gateway (kills running agents)
|
||
- recursive delete
|
||
- copy/move file into system config path
|
||
- overwrite system config
|
||
- in-place edit of system config
|
||
- script execution via -e/-c flag
|
||
- overwrite system file via redirection
|
||
- script execution via heredoc
|
||
- shell command via -c/-lc flag
|
||
- delete in root path
|
||
- shell execution via heredoc
|
||
- in-place edit of Hermes config/env
|
||
- overwrite system file via tee
|
||
hooks_auto_accept: false
|
||
security:
|
||
allow_private_urls: false
|
||
redact_secrets: true
|
||
tirith_enabled: true
|
||
tirith_path: tirith
|
||
tirith_timeout: 5
|
||
tirith_fail_open: true
|
||
website_blocklist:
|
||
enabled: false
|
||
domains: []
|
||
shared_files: []
|
||
acked_advisories: []
|
||
allow_lazy_installs: true
|
||
cron:
|
||
provider: ''
|
||
chronos:
|
||
portal_url: https://portal.nousresearch.com
|
||
callback_url: ''
|
||
expected_audience: ''
|
||
nas_jwks_url: ''
|
||
wrap_response: true
|
||
mirror_delivery: false
|
||
output_retention: 50
|
||
kanban:
|
||
dispatch_in_gateway: true
|
||
dispatch_interval_seconds: 60
|
||
failure_limit: 2
|
||
worker_log_rotate_bytes: 2097152
|
||
worker_log_backup_count: 1
|
||
orchestrator_profile: ''
|
||
default_assignee: ''
|
||
auto_decompose: true
|
||
auto_decompose_per_tick: 3
|
||
dispatch_stale_timeout_seconds: 14400
|
||
code_execution:
|
||
mode: project
|
||
timeout: 300
|
||
max_tool_calls: 50
|
||
tools:
|
||
tool_search:
|
||
enabled: auto
|
||
threshold_pct: 10
|
||
search_default_limit: 5
|
||
max_search_limit: 20
|
||
logging:
|
||
level: INFO
|
||
max_size_mb: 5
|
||
backup_count: 3
|
||
model_catalog:
|
||
enabled: true
|
||
url: https://hermes-agent.nousresearch.com/docs/api/model-catalog.json
|
||
ttl_hours: 1
|
||
network:
|
||
force_ipv4: false
|
||
gateway:
|
||
scale_to_zero:
|
||
idle_timeout_minutes: 5
|
||
message_timestamps:
|
||
enabled: false
|
||
max_inbound_media_bytes: 134217728
|
||
strict: false
|
||
media_delivery_allow_dirs: []
|
||
trust_recent_files: true
|
||
trust_recent_files_seconds: 600
|
||
api_server:
|
||
max_concurrent_runs: 10
|
||
telegram:
|
||
token: 8340843942:AAFJFgesW6aix6tp09zuvJTgVLfgNi1S_Ho
|
||
chat_id: 6417835766
|
||
streaming:
|
||
enabled: false
|
||
transport: auto
|
||
edit_interval: 0.8
|
||
buffer_threshold: 24
|
||
cursor: ' ▉'
|
||
fresh_final_after_seconds: 0.0
|
||
sessions:
|
||
auto_prune: false
|
||
retention_days: 90
|
||
vacuum_after_prune: true
|
||
min_interval_hours: 24
|
||
write_json_snapshots: false
|
||
onboarding:
|
||
seen:
|
||
busy_input_prompt: true
|
||
profile_build: ask
|
||
updates:
|
||
pre_update_backup: false
|
||
backup_keep: 5
|
||
non_interactive_local_changes: stash
|
||
lsp:
|
||
enabled: true
|
||
wait_mode: document
|
||
wait_timeout: 5.0
|
||
install_strategy: auto
|
||
x_search:
|
||
model: grok-4.20-reasoning
|
||
timeout_seconds: 180
|
||
retries: 2
|
||
secrets:
|
||
bitwarden:
|
||
enabled: false
|
||
access_token_env: BWS_ACCESS_TOKEN
|
||
project_id: ''
|
||
cache_ttl_seconds: 300
|
||
override_existing: true
|
||
auto_install: true
|
||
server_url: ''
|
||
paste_collapse_threshold: 5
|
||
paste_collapse_threshold_fallback: 5
|
||
paste_collapse_char_threshold: 2000
|
||
computer_use:
|
||
cua_telemetry: false
|
||
_config_version: 39
|
||
session_reset:
|
||
mode: none
|
||
idle_minutes: 1440
|
||
at_hour: 4
|
||
group_sessions_per_user: true
|
||
platform_toolsets:
|
||
cli:
|
||
- browser
|
||
- clarify
|
||
- code_execution
|
||
- cronjob
|
||
- delegation
|
||
- file
|
||
- image_gen
|
||
- kanban
|
||
- memory
|
||
- session_search
|
||
- skills
|
||
- terminal
|
||
- todo
|
||
- tts
|
||
- vision
|
||
- web
|
||
telegram:
|
||
- hermes-telegram
|
||
discord:
|
||
- hermes-discord
|
||
whatsapp:
|
||
- hermes-whatsapp
|
||
slack:
|
||
- hermes-slack
|
||
signal:
|
||
- hermes-signal
|
||
homeassistant:
|
||
- hermes-homeassistant
|
||
qqbot:
|
||
- hermes-qqbot
|
||
yuanbao:
|
||
- hermes-yuanbao
|
||
teams:
|
||
- hermes-teams
|
||
google_chat:
|
||
- hermes-google_chat
|
||
github:
|
||
token: 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
|
||
known_plugin_toolsets:
|
||
cli:
|
||
- spotify
|
||
image_gen:
|
||
use_gateway: true
|
||
video_gen:
|
||
provider: fal
|
||
use_gateway: true
|
||
platforms:
|
||
webhook:
|
||
enabled: true
|
||
extra:
|
||
host: 0.0.0.0
|
||
port: 8644
|
||
secret: GEMEINSAMES-GEHEIMES-PASSWORT
|
||
models:
|
||
providers:
|
||
openrouter:
|
||
blocked_models: '["deepseek/deepseek-v4-pro"]'
|
||
ollama:
|
||
base_url: http://172.24.196.119:11434/v1
|
||
|
||
# ── Fallback Model ────────────────────────────────────────────────────
|
||
# Automatic provider failover when primary is unavailable.
|
||
# Uncomment and configure to enable. Triggers on rate limits (429),
|
||
# overload (529), service errors (503), or connection failures.
|
||
#
|
||
# Supported providers:
|
||
# openrouter (OPENROUTER_API_KEY) — routes to any model
|
||
# openai-codex (OAuth — hermes auth) — OpenAI Codex
|
||
# nous (OAuth — hermes auth) — Nous Portal
|
||
# zai (ZAI_API_KEY) — Z.AI / GLM
|
||
# kimi-coding (KIMI_API_KEY) — Kimi / Moonshot
|
||
# kimi-coding-cn (KIMI_CN_API_KEY) — Kimi / Moonshot (China)
|
||
# minimax (MINIMAX_API_KEY) — MiniMax
|
||
# minimax-cn (MINIMAX_CN_API_KEY) — MiniMax (China)
|
||
# bedrock (AWS IAM / boto3) — AWS Bedrock (Converse API)
|
||
#
|
||
# For custom OpenAI-compatible endpoints, add base_url and key_env.
|
||
#
|
||
# fallback_model:
|
||
# provider: openrouter
|
||
# model: anthropic/claude-sonnet-4
|