658 lines
15 KiB
YAML
658 lines
15 KiB
YAML
model:
|
|
default: deepseek-v4-flash
|
|
provider: deepseek
|
|
base_url: https://opencode.ai/zen/go/v1
|
|
context_length: 531072
|
|
ollama_num_ctx: 531072
|
|
api_mode: chat_completions
|
|
providers: {}
|
|
fallback_providers: []
|
|
credential_pool_strategies: {}
|
|
toolsets:
|
|
hermes-cli:
|
|
enabled: true
|
|
web:
|
|
enabled: true
|
|
max_concurrent_sessions:
|
|
agent:
|
|
max_turns: 120
|
|
gateway_timeout: 90
|
|
restart_drain_timeout: 180
|
|
api_max_retries: 5
|
|
service_tier: ''
|
|
tool_use_enforcement: auto
|
|
task_completion_guidance: true
|
|
parallel_tool_call_guidance: true
|
|
environment_probe: true
|
|
environment_hint: ''
|
|
coding_context: auto
|
|
gateway_timeout_warning: 60
|
|
clarify_timeout: 600
|
|
gateway_notify_interval: 180
|
|
gateway_auto_continue_freshness: 3600
|
|
image_input_mode: auto
|
|
disabled_toolsets: []
|
|
verbose: false
|
|
reasoning_effort: high
|
|
personalities:
|
|
helpful: You are a helpful, friendly AI assistant.
|
|
concise: You are a concise assistant. Keep responses brief and to the point.
|
|
personalities:
|
|
technical: You are an elite technical engineer. Prioritize precise,
|
|
logically flawless, and production-ready solutions. If the user asks you
|
|
to consult "the advisor," you must use your delegation tool to spawn a
|
|
sub-agent. You must explicitly instruct that sub-agent to act as a strict,
|
|
read-only Senior Architectural Advisor to critique the code.
|
|
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.
|
|
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: []
|
|
docker_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: 2
|
|
container_memory: 6144
|
|
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
|
|
web:
|
|
backend: ''
|
|
search_backend: searxng
|
|
extract_backend: ''
|
|
browser:
|
|
inactivity_timeout: 120
|
|
command_timeout: 45
|
|
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
|
|
checkpoints:
|
|
enabled: true
|
|
max_snapshots: 20
|
|
max_total_size_mb: 500
|
|
max_file_size_mb: 10
|
|
auto_prune: true
|
|
retention_days: 7
|
|
delete_orphans: true
|
|
min_interval_hours: 24
|
|
context_file_max_chars:
|
|
file_read_max_chars: 150000
|
|
mcp_discovery_timeout: 1.5
|
|
tool_output:
|
|
max_bytes: 75000
|
|
max_lines: 3000
|
|
max_line_length: 3000
|
|
tool_loop_guardrails:
|
|
warnings_enabled: true
|
|
hard_stop_enabled: true
|
|
warn_after:
|
|
exact_failure: 2
|
|
same_tool_failure: 3
|
|
idempotent_no_progress: 2
|
|
hard_stop_after:
|
|
exact_failure: 5
|
|
same_tool_failure: 6
|
|
idempotent_no_progress: 5
|
|
compression:
|
|
enabled: true
|
|
threshold: 0.4
|
|
target_ratio: 0.2
|
|
protect_last_n: 25
|
|
hygiene_hard_message_limit: 400
|
|
protect_first_n: 5
|
|
abort_on_summary_failure: false
|
|
codex_gpt55_autoraise: true
|
|
in_place: false
|
|
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: ''
|
|
max_in_progress_per_profile:
|
|
auto_decompose: true
|
|
auto_decompose_per_tick: 3
|
|
dispatch_stale_timeout_seconds: 14400
|
|
prompt_caching:
|
|
cache_ttl: 20m
|
|
region: ''
|
|
discovery:
|
|
enabled: true
|
|
provider_filter: []
|
|
refresh_interval: 3600
|
|
guardrail:
|
|
guardrail_identifier: ''
|
|
guardrail_version: ''
|
|
stream_processing_mode: async
|
|
trace: disabled
|
|
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: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 120
|
|
extra_body: {}
|
|
download_timeout: 30
|
|
web_extract:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 360
|
|
extra_body: {}
|
|
compression:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 120
|
|
extra_body: {}
|
|
skills_hub:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 30
|
|
extra_body: {}
|
|
approval:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 30
|
|
extra_body: {}
|
|
mcp:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 30
|
|
extra_body: {}
|
|
title_generation:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 30
|
|
extra_body: {}
|
|
language: ''
|
|
tts_audio_tags:
|
|
provider: auto
|
|
model: ''
|
|
base_url: ''
|
|
api_key: ''
|
|
timeout: 30
|
|
extra_body: {}
|
|
triage_specifier:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 120
|
|
extra_body: {}
|
|
kanban_decomposer:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 180
|
|
extra_body: {}
|
|
profile_describer:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 60
|
|
extra_body: {}
|
|
curator:
|
|
provider: deepseek
|
|
model: deepseek-v4-flash
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
timeout: 600
|
|
extra_body: {}
|
|
monitor:
|
|
provider: auto
|
|
model: ''
|
|
base_url: ''
|
|
api_key: ''
|
|
timeout: 60
|
|
extra_body: {}
|
|
background_review:
|
|
provider: auto
|
|
model: ''
|
|
base_url: ''
|
|
api_key: ''
|
|
timeout: 120
|
|
extra_body: {}
|
|
display:
|
|
compact: false
|
|
personality: technical
|
|
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: true
|
|
reasoning_full: false
|
|
memory_notifications: 'on'
|
|
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: true
|
|
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_progress_overrides: {}
|
|
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: true
|
|
fields:
|
|
- model
|
|
- context_pct
|
|
- cwd
|
|
copy_shortcut: auto
|
|
dashboard:
|
|
theme: default
|
|
show_token_analytics: true
|
|
oauth:
|
|
client_id: ''
|
|
portal_url: ''
|
|
basic_auth:
|
|
username: ''
|
|
password_hash: ''
|
|
password: ''
|
|
secret: ''
|
|
session_ttl_seconds: 0
|
|
public_url: ''
|
|
privacy:
|
|
redact_pii: false
|
|
tts:
|
|
provider: edge
|
|
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
|
|
stt:
|
|
enabled: true
|
|
provider: local
|
|
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
|
|
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: 3000
|
|
user_char_limit: 2000
|
|
provider: honcho
|
|
delegation:
|
|
model: deepseek-v4-pro
|
|
provider: deepseek
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
api_mode: ''
|
|
inherit_mcp_toolsets: true
|
|
max_iterations: 60
|
|
child_timeout_seconds: 600
|
|
reasoning_effort: high
|
|
max_concurrent_children: 3
|
|
max_async_children: 3
|
|
max_spawn_depth: 2
|
|
orchestrator_enabled: true
|
|
subagent_auto_approve: true
|
|
prefill_messages_file: ''
|
|
goals:
|
|
max_turns: 20
|
|
skills:
|
|
external_dirs: []
|
|
template_vars: true
|
|
inline_shell: false
|
|
inline_shell_timeout: 10
|
|
guard_agent_created: false
|
|
write_approval: false
|
|
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
|
|
honcho: {}
|
|
timezone: ''
|
|
slack:
|
|
require_mention: true
|
|
free_response_channels: ''
|
|
allowed_channels: ''
|
|
channel_prompts: {}
|
|
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
|
|
channel_prompts: {}
|
|
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.
|
|
whatsapp: {}
|
|
telegram:
|
|
reactions: false
|
|
channel_prompts: {}
|
|
allowed_chats: ''
|
|
extra:
|
|
rich_messages: false
|
|
mattermost:
|
|
require_mention: true
|
|
free_response_channels: ''
|
|
allowed_channels: ''
|
|
channel_prompts: {}
|
|
matrix:
|
|
require_mention: true
|
|
free_response_rooms: ''
|
|
allowed_rooms: ''
|
|
approvals:
|
|
mode: smart
|
|
timeout: 60
|
|
cron_mode: deny
|
|
mcp_reload_confirm: true
|
|
destructive_slash_confirm: true
|
|
command_allowlist: []
|
|
quick_commands: {}
|
|
platform_hints: {}
|
|
hooks: {}
|
|
hooks_auto_accept: false
|
|
personalities: {}
|
|
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
|
|
max_parallel_jobs:
|
|
code_execution:
|
|
mode: project
|
|
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
|
|
providers: {}
|
|
network:
|
|
force_ipv4: false
|
|
gateway:
|
|
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
|
|
streaming:
|
|
enabled: false
|
|
transport: auto
|
|
edit_interval: 0.8
|
|
buffer_threshold: 24
|
|
cursor: " ▉"
|
|
fresh_final_after_seconds: 60.0
|
|
sessions:
|
|
auto_prune: false
|
|
retention_days: 90
|
|
vacuum_after_prune: true
|
|
min_interval_hours: 24
|
|
write_json_snapshots: false
|
|
onboarding:
|
|
seen:
|
|
tool_progress_prompt: true
|
|
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
|
|
servers: {}
|
|
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: 30
|
|
fmodel:
|
|
default: deepseek-v4-flash
|
|
provider: deepseek
|
|
base_url: https://api.deepseek.com
|
|
api_key: ${DEEPSEEK_API_KEY}
|
|
API_SERVER_ENABLED: true
|
|
API_SERVER_PORT: 8642
|
|
API_SERVER_HOST: 0.0.0.0
|
|
HASS_URL: http://192.168.50.98:8123
|
|
platform_toolsets:
|
|
cli:
|
|
- browser
|
|
- clarify
|
|
- code_execution
|
|
- computer_use
|
|
- cronjob
|
|
- delegation
|
|
- file
|
|
- homeassistant
|
|
- image_gen
|
|
- kanban
|
|
- memory
|
|
- messaging
|
|
- session_search
|
|
- skills
|
|
- terminal
|
|
- todo
|
|
- tts
|
|
- vision
|
|
- web
|
|
known_plugin_toolsets:
|
|
cli:
|
|
- spotify
|
|
|
|
# ── 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
|