1b2b935832
- Platform-based architecture (Windows/Linux/Mac) - Agent instance registry (agents.yaml) - Management dashboard with cross-platform monitoring - xmpp_bot with HTTP bridge + health endpoints - wechat_agent with WeChat-Hermes bridging - Platform services: ProcessGuardian, HealthProbe, APIRouter, ChannelBridge - Deployment: systemd (Linux) + PowerShell (Windows) - Monitoring: SSH+ejabberdctl for cross-platform presence
560 lines
12 KiB
YAML
560 lines
12 KiB
YAML
_config_version: 28
|
|
agent:
|
|
api_max_retries: 3
|
|
clarify_timeout: 600
|
|
disabled_toolsets: []
|
|
environment_hint: ''
|
|
environment_probe: true
|
|
gateway_auto_continue_freshness: 3600
|
|
gateway_notify_interval: 180
|
|
gateway_timeout: 1800
|
|
gateway_timeout_warning: 900
|
|
image_input_mode: auto
|
|
max_turns: 90
|
|
restart_drain_timeout: 60
|
|
service_tier: ''
|
|
task_completion_guidance: true
|
|
tool_use_enforcement: auto
|
|
approvals:
|
|
cron_mode: deny
|
|
destructive_slash_confirm: true
|
|
mcp_reload_confirm: true
|
|
mode: manual
|
|
timeout: 60
|
|
auxiliary:
|
|
approval:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 30
|
|
compression:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 120
|
|
curator:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 600
|
|
kanban_decomposer:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 180
|
|
mcp:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 30
|
|
profile_describer:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 60
|
|
skills_hub:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 30
|
|
title_generation:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 30
|
|
triage_specifier:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 120
|
|
vision:
|
|
api_key: ''
|
|
base_url: ''
|
|
download_timeout: 30
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 120
|
|
web_extract:
|
|
api_key: ''
|
|
base_url: ''
|
|
extra_body: {}
|
|
model: ''
|
|
provider: auto
|
|
timeout: 360
|
|
bedrock:
|
|
discovery:
|
|
enabled: true
|
|
provider_filter: []
|
|
refresh_interval: 3600
|
|
guardrail:
|
|
guardrail_identifier: ''
|
|
guardrail_version: ''
|
|
stream_processing_mode: async
|
|
trace: disabled
|
|
region: ''
|
|
browser:
|
|
allow_private_urls: false
|
|
auto_local_for_private_urls: true
|
|
camofox:
|
|
adopt_existing_tab: false
|
|
loopback_host_alias: host.docker.internal
|
|
managed_persistence: false
|
|
rewrite_loopback_urls: false
|
|
session_key: ''
|
|
user_id: ''
|
|
cdp_url: ''
|
|
command_timeout: 30
|
|
dialog_policy: must_respond
|
|
dialog_timeout_s: 300
|
|
engine: auto
|
|
inactivity_timeout: 120
|
|
record_sessions: false
|
|
checkpoints:
|
|
auto_prune: true
|
|
delete_orphans: true
|
|
enabled: false
|
|
max_file_size_mb: 10
|
|
max_snapshots: 20
|
|
max_total_size_mb: 500
|
|
min_interval_hours: 24
|
|
retention_days: 7
|
|
code_execution:
|
|
mode: project
|
|
command_allowlist:
|
|
- stop/restart system service
|
|
- script execution via heredoc
|
|
- shell command via -c/-lc flag
|
|
- script execution via -e/-c flag
|
|
compression:
|
|
abort_on_summary_failure: false
|
|
codex_gpt55_autoraise: true
|
|
enabled: false
|
|
hygiene_hard_message_limit: 100000
|
|
protect_first_n: 3
|
|
protect_last_n: 200
|
|
target_ratio: 0.2
|
|
threshold: 0.99
|
|
context:
|
|
engine: compressor
|
|
credential_pool_strategies: {}
|
|
cron:
|
|
max_parallel_jobs: null
|
|
wrap_response: true
|
|
curator:
|
|
archive_after_days: 90
|
|
backup:
|
|
enabled: true
|
|
keep: 5
|
|
enabled: true
|
|
interval_hours: 168
|
|
min_idle_hours: 2
|
|
prune_builtins: true
|
|
stale_after_days: 30
|
|
dashboard:
|
|
basic_auth:
|
|
password: ''
|
|
password_hash: ''
|
|
secret: ''
|
|
session_ttl_seconds: 0
|
|
username: ''
|
|
oauth:
|
|
client_id: ''
|
|
portal_url: ''
|
|
public_url: ''
|
|
show_token_analytics: false
|
|
theme: default
|
|
delegation:
|
|
api_key: ''
|
|
api_mode: ''
|
|
base_url: ''
|
|
child_timeout_seconds: 600
|
|
inherit_mcp_toolsets: true
|
|
max_concurrent_children: 3
|
|
max_iterations: 50
|
|
max_spawn_depth: 1
|
|
model: ''
|
|
orchestrator_enabled: true
|
|
provider: ''
|
|
reasoning_effort: ''
|
|
subagent_auto_approve: false
|
|
discord:
|
|
allow_any_attachment: false
|
|
allowed_channels: ''
|
|
auto_thread: true
|
|
channel_prompts: {}
|
|
dm_role_auth_guild: ''
|
|
free_response_channels: ''
|
|
history_backfill: true
|
|
history_backfill_limit: 50
|
|
max_attachment_bytes: 33554432
|
|
reactions: true
|
|
require_mention: true
|
|
server_actions: ''
|
|
thread_require_mention: false
|
|
voice_fx:
|
|
ack_enabled: true
|
|
ack_phrases:
|
|
- Let me look into that.
|
|
- One moment.
|
|
- Checking on that now.
|
|
- Give me a sec.
|
|
- On it.
|
|
ambient_enabled: true
|
|
ambient_gain: 0.18
|
|
ambient_path: ''
|
|
duck_gain: 0.06
|
|
enabled: false
|
|
speech_gain: 1.0
|
|
display:
|
|
bell_on_complete: false
|
|
busy_input_mode: interrupt
|
|
compact: false
|
|
copy_shortcut: auto
|
|
ephemeral_system_ttl: 0
|
|
file_mutation_verifier: true
|
|
final_response_markdown: strip
|
|
inline_diffs: true
|
|
interface: cli
|
|
interim_assistant_messages: true
|
|
language: en
|
|
persistent_output: true
|
|
persistent_output_max_lines: 200
|
|
personality: ''
|
|
platforms:
|
|
discord:
|
|
streaming: false
|
|
telegram:
|
|
streaming: true
|
|
resume_display: full
|
|
resume_exchanges: 10
|
|
resume_max_assistant_chars: 200
|
|
resume_max_assistant_lines: 3
|
|
resume_max_user_chars: 300
|
|
resume_skip_tool_only: true
|
|
runtime_footer:
|
|
enabled: false
|
|
fields:
|
|
- model
|
|
- context_pct
|
|
- cwd
|
|
show_cost: false
|
|
show_reasoning: false
|
|
skin: default
|
|
streaming: false
|
|
timestamps: false
|
|
tool_preview_length: 0
|
|
tool_progress_command: false
|
|
tool_progress_overrides: {}
|
|
tui_agents_nudge: true
|
|
tui_auto_resume_recent: false
|
|
tui_status_indicator: kaomoji
|
|
turn_completion_explainer: true
|
|
user_message_preview:
|
|
first_lines: 2
|
|
last_lines: 2
|
|
fallback_providers:
|
|
- model: deepseek-v4-flash
|
|
provider: ocg-new
|
|
- model: deepseek-v4-flash
|
|
provider: ocg-old
|
|
file_read_max_chars: 100000
|
|
gateway:
|
|
media_delivery_allow_dirs: []
|
|
strict: false
|
|
trust_recent_files: true
|
|
trust_recent_files_seconds: 600
|
|
goals:
|
|
max_turns: 20
|
|
honcho: {}
|
|
hooks: {}
|
|
hooks_auto_accept: false
|
|
human_delay:
|
|
max_ms: 2500
|
|
min_ms: 800
|
|
mode: 'off'
|
|
kanban:
|
|
auto_decompose: true
|
|
auto_decompose_per_tick: 3
|
|
default_assignee: ''
|
|
dispatch_in_gateway: true
|
|
dispatch_interval_seconds: 60
|
|
dispatch_stale_timeout_seconds: 14400
|
|
failure_limit: 2
|
|
max_in_progress_per_profile: null
|
|
orchestrator_profile: ''
|
|
worker_log_backup_count: 1
|
|
worker_log_rotate_bytes: 2097152
|
|
logging:
|
|
backup_count: 3
|
|
level: INFO
|
|
max_size_mb: 5
|
|
lsp:
|
|
enabled: true
|
|
install_strategy: auto
|
|
servers: {}
|
|
wait_mode: document
|
|
wait_timeout: 5.0
|
|
matrix:
|
|
allowed_rooms: ''
|
|
free_response_rooms: ''
|
|
require_mention: true
|
|
mattermost:
|
|
allowed_channels: ''
|
|
channel_prompts: {}
|
|
free_response_channels: ''
|
|
require_mention: true
|
|
mcp_servers:
|
|
agentmemory:
|
|
args:
|
|
- -y
|
|
- '@agentmemory/mcp'
|
|
command: npx
|
|
env:
|
|
AGENTMEMORY_URL: http://localhost:3111
|
|
PATH: /home/hmo/.nvm/versions/node/v20.20.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
|
websearch:
|
|
args:
|
|
- mcp-server-websearch
|
|
command: uvx
|
|
env:
|
|
HTTPS_PROXY: http://192.168.1.16:15000
|
|
HTTP_PROXY: http://192.168.1.16:15000
|
|
http_proxy: http://192.168.1.16:15000
|
|
https_proxy: http://192.168.1.16:15000
|
|
memory:
|
|
memory_char_limit: 2200
|
|
memory_enabled: true
|
|
provider: ''
|
|
user_char_limit: 1375
|
|
user_profile_enabled: true
|
|
model:
|
|
default: deepseek-v4-flash
|
|
provider: ocg-old
|
|
model_catalog:
|
|
enabled: true
|
|
providers: {}
|
|
ttl_hours: 1
|
|
url: https://hermes-agent.nousresearch.com/docs/api/model-catalog.json
|
|
network:
|
|
force_ipv4: false
|
|
onboarding:
|
|
profile_build: ask
|
|
seen:
|
|
busy_input_prompt: true
|
|
tool_progress_prompt: true
|
|
openrouter:
|
|
min_coding_score: 0.65
|
|
response_cache: true
|
|
response_cache_ttl: 300
|
|
paste_collapse_char_threshold: 2000
|
|
paste_collapse_threshold: 5
|
|
paste_collapse_threshold_fallback: 5
|
|
personalities: {}
|
|
platforms:
|
|
api_server:
|
|
enabled: true
|
|
extra:
|
|
host: 0.0.0.0
|
|
key: hermes123
|
|
port: 8642
|
|
session_rewrite:
|
|
'@chatroom': sisyphus
|
|
wxid_: sisyphus
|
|
vocechat:
|
|
enabled: true
|
|
plugins:
|
|
enabled:
|
|
- vocechat
|
|
prefill_messages_file: ''
|
|
privacy:
|
|
redact_pii: false
|
|
prompt_caching:
|
|
cache_ttl: 5m
|
|
providers:
|
|
ocg-new:
|
|
api_key: ${OCG_NEW_KEY}
|
|
base_url: https://opencode.ai/zen/go/v1
|
|
ocg-old:
|
|
api_key: ${OCG_OLD_KEY}
|
|
base_url: https://opencode.ai/zen/go/v1
|
|
volcengine:
|
|
api_key: ${VOLCENGINE_KEY}
|
|
base_url: https://ark.cn-beijing.volces.com/api/coding/v3
|
|
quick_commands: {}
|
|
secrets:
|
|
bitwarden:
|
|
access_token_env: BWS_ACCESS_TOKEN
|
|
auto_install: true
|
|
cache_ttl_seconds: 300
|
|
enabled: false
|
|
override_existing: true
|
|
project_id: ''
|
|
server_url: ''
|
|
security:
|
|
acked_advisories: []
|
|
allow_lazy_installs: true
|
|
allow_private_urls: false
|
|
redact_secrets: true
|
|
tirith_enabled: true
|
|
tirith_fail_open: true
|
|
tirith_path: tirith
|
|
tirith_timeout: 5
|
|
website_blocklist:
|
|
domains: []
|
|
enabled: false
|
|
shared_files: []
|
|
sessions:
|
|
auto_prune: false
|
|
min_interval_hours: 24
|
|
retention_days: 90
|
|
vacuum_after_prune: true
|
|
write_json_snapshots: false
|
|
skills:
|
|
external_dirs: []
|
|
guard_agent_created: false
|
|
inline_shell: false
|
|
inline_shell_timeout: 10
|
|
template_vars: true
|
|
slack:
|
|
allowed_channels: ''
|
|
channel_prompts: {}
|
|
free_response_channels: ''
|
|
require_mention: true
|
|
streaming:
|
|
buffer_threshold: 24
|
|
cursor: ' �?
|
|
edit_interval: 0.8
|
|
enabled: false
|
|
fresh_final_after_seconds: 60.0
|
|
transport: auto
|
|
stt:
|
|
elevenlabs:
|
|
diarize: false
|
|
language_code: ''
|
|
model_id: scribe_v2
|
|
tag_audio_events: false
|
|
enabled: true
|
|
local:
|
|
language: ''
|
|
model: base
|
|
mistral:
|
|
model: voxtral-mini-latest
|
|
openai:
|
|
model: whisper-1
|
|
provider: local
|
|
telegram:
|
|
allowed_chats: ''
|
|
channel_prompts: {}
|
|
reactions: false
|
|
terminal:
|
|
auto_source_bashrc: true
|
|
backend: local
|
|
container_cpu: 1
|
|
container_disk: 51200
|
|
container_memory: 5120
|
|
container_persistent: true
|
|
cwd: .
|
|
daytona_image: nikolaik/python-nodejs:python3.11-nodejs20
|
|
docker_env: {}
|
|
docker_extra_args: []
|
|
docker_forward_env: []
|
|
docker_image: nikolaik/python-nodejs:python3.11-nodejs20
|
|
docker_mount_cwd_to_workspace: false
|
|
docker_run_as_host_user: false
|
|
docker_volumes: []
|
|
env_passthrough: []
|
|
modal_image: nikolaik/python-nodejs:python3.11-nodejs20
|
|
modal_mode: auto
|
|
persistent_shell: true
|
|
shell_init_files: []
|
|
singularity_image: docker://nikolaik/python-nodejs:python3.11-nodejs20
|
|
timeout: 180
|
|
timezone: ''
|
|
tool_loop_guardrails:
|
|
hard_stop_after:
|
|
exact_failure: 5
|
|
idempotent_no_progress: 5
|
|
same_tool_failure: 8
|
|
hard_stop_enabled: false
|
|
warn_after:
|
|
exact_failure: 2
|
|
idempotent_no_progress: 2
|
|
same_tool_failure: 3
|
|
warnings_enabled: true
|
|
tool_output:
|
|
max_bytes: 50000
|
|
max_line_length: 2000
|
|
max_lines: 2000
|
|
tools:
|
|
tool_search:
|
|
enabled: auto
|
|
max_search_limit: 20
|
|
search_default_limit: 5
|
|
threshold_pct: 10
|
|
toolsets:
|
|
- hermes-cli
|
|
tts:
|
|
edge:
|
|
voice: en-US-AriaNeural
|
|
elevenlabs:
|
|
model_id: eleven_multilingual_v2
|
|
voice_id: pNInz6obpgDQGcFmaJgB
|
|
mistral:
|
|
model: voxtral-mini-tts-2603
|
|
voice_id: c69964a6-ab8b-4f8a-9465-ec0925096ec8
|
|
neutts:
|
|
device: cpu
|
|
model: neuphonic/neutts-air-q4-gguf
|
|
ref_audio: ''
|
|
ref_text: ''
|
|
openai:
|
|
model: gpt-4o-mini-tts
|
|
voice: alloy
|
|
piper:
|
|
voice: en_US-lessac-medium
|
|
provider: edge
|
|
xai:
|
|
bit_rate: 128000
|
|
language: en
|
|
sample_rate: 24000
|
|
voice_id: eve
|
|
updates:
|
|
backup_keep: 5
|
|
non_interactive_local_changes: stash
|
|
pre_update_backup: false
|
|
voice:
|
|
auto_tts: false
|
|
beep_enabled: true
|
|
max_recording_seconds: 120
|
|
record_key: ctrl+b
|
|
silence_duration: 3.0
|
|
silence_threshold: 200
|
|
web:
|
|
backend: ''
|
|
extract_backend: ''
|
|
search_backend: ''
|
|
whatsapp: {}
|
|
x_search:
|
|
model: grok-4.20-reasoning
|
|
retries: 2
|
|
timeout_seconds: 180
|