08 / config

Konfigurasi Agent

config.yaml adalah konfigurasi utama Hermes Agent. Semua perilaku, model, tools, integrasi platform, dan pengaturan lanjutan diatur di sini.

File config.yaml berada di ~/.hermes/config.yaml. Di bawah ini adalah penjelasan setiap section berdasarkan struktur asli config.

Model & Provider

Model default

model:
  default: "your-model-name"
  provider: "custom"
  base_url: "https://api.example.com/v1"

default: model yang dipakai untuk semua percakapan. provider: custom kalau pakai endpoint sendiri, atau openrouter/openai/anthropic untuk provider bawaan. base_url: endpoint API (hanya untuk custom provider).

Custom providers

custom_providers:
  - name: MyProvider
    base_url: "https://api.example.com/v1"
    api_key: "sk-..."
    models:
      my-model-name:
        context_length: 128000

Tambahkan provider custom OpenAI-compatible. Setiap model perlu context_length agar agent tahu batas context window. Bisa tambahkan banyak model dari provider berbeda (Groq, Fireworks, Gemini, dll).

Fallback model

# fallback_model:
#   provider: openrouter
#   model: anthropic/claude-sonnet-4

Auto-failover kalau model utama tidak tersedia. Trigger pada rate limit (429), overload (529), service error (503), atau connection failure. Uncomment untuk aktifkan.

Perilaku Agent

Agent

agent:
  max_turns: 300
  gateway_timeout: 1800
  restart_drain_timeout: 180
  api_max_retries: 3
  tool_use_enforcement: auto
  reasoning_effort: medium
  image_input_mode: auto
  verbose: false

max_turns: maksimum iterasi per sesi. gateway_timeout: timeout total gateway (detik). restart_drain_timeout: waktu tunggu sebelum restart. api_max_retries: retry kalau API gagal. tool_use_enforcement: auto = agent putuskan sendiri kapan pakai tools. reasoning_effort: kedalaman berpikir (low/medium/high). image_input_mode: auto = proses gambar jika ada. verbose: log detail.

Personalities

agent:
  personalities:
    helpful: You are a helpful, friendly AI assistant.
    concise: You are a concise assistant. Keep responses brief.
    technical: You are a technical expert.
    creative: You are a creative assistant.
    kawaii: "You are a kawaii assistant! Use cute expressions..."

Define personality presets yang bisa dipakai agent. Setiap personality adalah system prompt singkat. Agent bisa switch personality berdasarkan konteks atau user request.

Approval Mode

Approvals

approvals:
  mode: yolo
  timeout: 60
  cron_mode: deny
  mcp_reload_confirm: true

mode: yolo = agent langsung eksekusi tanpa izin. smart = agent putuskan berdasarkan risiko. always = selalu minta izin. timeout: detik sebelum auto-deny. cron_mode: approval khusus untuk scheduled tasks. mcp_reload_confirm: minta konfirmasi saat reload MCP servers.

Terminal & Eksekusi

Terminal

terminal:
  backend: local
  timeout: 180
  persistent_shell: true
  lifetime_seconds: 300
  docker_image: nikolaik/python-nodejs:python3.11-nodejs20
  container_cpu: 1
  container_memory: 5120
  container_disk: 51200
  container_persistent: true

backend: local = langsung di mesin, docker = container terisolasi. persistent_shell: true = shell tetap hidup antar command. lifetime_seconds: umur shell session. docker_image: image untuk Docker backend. container_*: resource limits untuk Docker.

Code execution

code_execution:
  mode: project
  timeout: 300
  max_tool_calls: 50

mode: project = jalankan code di working directory project. timeout: detik maksimum per eksekusi. max_tool_calls: batas maksimum tool calls per sesi.

Browser

Browser

browser:
  engine: auto
  cdp_url: ws://localhost:9222
  inactivity_timeout: 120
  command_timeout: 30
  allow_private_urls: true
  record_sessions: true
  dialog_policy: must_respond
  dialog_timeout_s: 300
  camofox:
    managed_persistence: true
  cloud_provider: camofox

engine: auto = pilih yang tersedia (camofox/playwright/cdp). cdp_url: WebSocket endpoint untuk Chrome DevTools Protocol. allow_private_urls: izinkan akses URL private (localhost, intranet). record_sessions: simpan rekaman sesi browser. dialog_policy: must_respond = agent wajib respon dialog browser. camofox.managed_persistence: persistensi session Camofox.

Memory

Memory

memory:
  memory_enabled: true
  user_profile_enabled: true
  memory_char_limit: 1000000
  user_char_limit: 1000000
  provider: holographic
  nudge_interval: 10
  flush_min_turns: 6

memory_enabled: aktifkan memory persisten. user_profile_enabled: simpan profil user (preferensi, kebiasaan). provider: holographic = deep structured memory dengan entity resolution. nudge_interval: interval nudge untuk save memory. flush_min_turns: minimum turns sebelum flush memory ke disk.

Delegation (Sub-agent)

Delegation

delegation:
  max_concurrent_children: 3
  max_spawn_depth: 1
  orchestrator_enabled: true
  subagent_auto_approve: true
  inherit_mcp_toolsets: true
  max_iterations: 50
  child_timeout_seconds: 600

max_concurrent_children: sub-agent paralel maksimal. max_spawn_depth: kedalaman spawn (1 = sub-agent tidak bisa spawn sub-sub-agent). orchestrator_enabled: izinkan sub-agent jadi orchestrator. subagent_auto_approve: sub-agent langsung jalan tanpa approval. inherit_mcp_toolsets: sub-agent mewarisi MCP tools dari parent. max_iterations: batas iterasi per sub-agent. child_timeout_seconds: timeout per sub-agent.

Platform Messaging

Telegram

telegram:
  reactions: false
  channel_prompts: {}
  allowed_chats: ""

Telegram auto-detect dari TELEGRAM_BOT_TOKEN env var. reactions: izinkan agent react ke pesan. channel_prompts: system prompt khusus per channel. allowed_chats: kosongkan untuk izinkan semua, atau isi chat ID spesifik.

Discord

discord:
  require_mention: true
  auto_thread: true
  reactions: true
  channel_prompts: {}
  allowed_channels: ""

Token di DISCORD_TOKEN env var. require_mention: agent hanya merespons saat di-mention. auto_thread: buat thread otomatis. reactions: izinkan agent react ke pesan. channel_prompts: system prompt khusus per channel.

Platform lain

slack:
  require_mention: true
  free_response_channels: ""
  allowed_channels: ""
whatsapp: {}
mattermost:
  require_mention: true
matrix:
  require_mention: true

Hermes mendukung Slack, WhatsApp, Mattermost, dan Matrix. Setiap platform punya konfigurasi serupa: require_mention, allowed_channels, dan channel_prompts. Token di environment variable masing-masing.

Context Compression

Compression

compression:
  enabled: true
  threshold: 0.2
  target_ratio: 0.2
  protect_last_n: 20
  hygiene_hard_message_limit: 400

enabled: aktifkan context compression. threshold: 0.2 = mulai compress saat context 80% penuh. target_ratio: 0.2 = compress sampai 20% terpakai. protect_last_n: 20 pesan terakhir tidak di-compress. hygiene_hard_message_limit: batas pesan sebelum hard compression.

Auxiliary (Model Tambahan)

Section auxiliary mengatur model tambahan untuk tugas spesifik: vision, web extraction, compression, session search, dll. Bisa pakai model berbeda dari model utama.

Auxiliary

auxiliary:
  vision:
    provider: custom:myprovider
    model: your-vision-model
    timeout: 120
  web_extract:
    provider: auto
    timeout: 360
  compression:
    provider: auto
    timeout: 120
  session_search:
    provider: auto
    timeout: 30
    max_concurrency: 3

vision: model untuk analisis gambar. web_extract: model untuk extract konten web. compression: model untuk compress context. session_search: model untuk search session history. provider: auto = pakai model default, atau specify provider:model.

Skills

Skills

skills:
  external_dirs: []
  template_vars: true
  inline_shell: false
  inline_shell_timeout: 10
  guard_agent_created: false
  creation_nudge_interval: 15
  disabled:
    - airtable
    - notion
    - obsidian
    - codex

external_dirs: directory skill custom tambahan. template_vars: aktifkan variabel template di skills. inline_shell: izinkan shell command langsung di skill. disabled: nonaktifkan skills yang tidak dipakai untuk hemat context window.

Display & Tampilan

Display

display:
  compact: false
  personality: kawaii
  streaming: true
  language: en
  inline_diffs: true
  show_cost: false
  skin: default
  bell_on_complete: false
  show_reasoning: false

compact: tampilan lebih ringkas. personality: personality aktif (harus ada di agent.personalities). streaming: tampilkan response secara streaming. language: bahasa UI. inline_diffs: tampilkan diff saat edit file. show_cost: tampilkan biaya per request. skin: tema visual.

Security

Security & Privacy

security:
  allow_private_urls: true
  redact_secrets: true
  tirith_enabled: true
  tirith_timeout: 5
  tirith_fail_open: true
privacy:
  redact_pii: true

allow_private_urls: izinkan akses URL private (localhost, 192.168.x.x). redact_secrets: otomatis sembunyikan API keys dan secrets di output. tirith_enabled: aktifkan security scanning (Tirith). privacy.redact_pii: sembunyikan data pribadi.

Voice (TTS/STT)

TTS & STT

tts:
  provider: edge
  edge:
    voice: en-US-AriaNeural
stt:
  enabled: true
  provider: local
  local:
    model: base

TTS: text-to-speech. Provider: edge (gratis), elevenlabs, openai, xai, mistral, piper. STT: speech-to-text. Provider: local (whisper), openai, mistral. voice.record_key: shortcut untuk mulai rekam (default: ctrl+b).

Pengaturan Lainnya

Scheduling & Cron

cron:
  wrap_response: true
  max_parallel_jobs: null
kanban:
  dispatch_in_gateway: true
  dispatch_interval_seconds: 60
  failure_limit: 2

cron: pengaturan scheduled tasks. wrap_response: bungkus output dengan metadata. max_parallel_jobs: null = unlimited. kanban: sistem task board internal. dispatch_in_gateway: dispatch tasks dari gateway. dispatch_interval_seconds: interval pengecekan task baru.

Sessions & Logging

sessions:
  auto_prune: false
  retention_days: 90
logging:
  level: INFO
  max_size_mb: 5
  backup_count: 3

sessions: auto_prune = otomatis hapus session lama. retention_days: simpan session berapa hari. logging.level: INFO/DEBUG/WARNING/ERROR. max_size_mb: batas ukuran log file.

Contoh Config Minimal

Di bawah ini adalah contoh config minimal untuk agent otonom. Sesuaikan model, provider, dan platform sesuai kebutuhan.

model:
  default: "your-model-name"
  provider: "custom"
  base_url: "https://api.example.com/v1"

agent:
  max_turns: 300
  tool_use_enforcement: auto
  reasoning_effort: medium

approvals:
  mode: yolo
  cron_mode: deny

terminal:
  backend: local
  timeout: 180
  persistent_shell: true

browser:
  engine: auto

memory:
  memory_enabled: true
  user_profile_enabled: true

delegation:
  max_concurrent_children: 3
  orchestrator_enabled: true
  subagent_auto_approve: true

compression:
  enabled: true

telegram:
  reactions: false

Config ini memberikan agent otonom penuh: model custom, approval yolo, terminal lokal, browser auto-detect, memory aktif, dan sub-agent yang langsung jalan. Tinggal tambahkan platform credentials di .env.

Jangan pernah commit config.yaml ke repository publik — file ini bisa berisi API keys dan credentials. Selalu pakai .env untuk secrets. Config version (_config_version) di-update otomatis oleh Hermes saat ada perubahan format.

Hermes SOUL Guide — membuat agent pintar itu proses, bukan prompt instan.