botgithub / config.yaml.template
ruang101's picture
Upload folder using huggingface_hub
38806e2 verified
# ══════════════════════════════════════════════════════════════════════
# HuggingMes + Hermes WebUI β€” Configuration Template
# ══════════════════════════════════════════════════════════════════════
# This template is deployed to /opt/data/config.yaml in the HF Space.
# Environment variables from .env.local override values at boot time.
#
# Priority: Environment variables > This config > Hermes defaults
#
# Documentation: https://hermes-agent.nousresearch.com/docs/user-guide/configuration
# ══════════════════════════════════════════════════════════════════════
# ── Model Configuration ──────────────────────────────────────────────
# The LLM model and provider to use.
# Override via env: LLM_MODEL, HERMES_MODEL, CUSTOM_BASE_URL, CUSTOM_API_KEY
#
# Examples:
# openrouter/free β†’ OpenRouter free-tier models
# anthropic/claude-sonnet-4 β†’ Anthropic Claude
# openai/gpt-4o β†’ OpenAI GPT-4o
# deepseek/deepseek-chat β†’ DeepSeek
# google/gemini-2.0-flash β†’ Google Gemini
#
# For custom endpoints (e.g., Xiaomi MiMo, NVIDIA NIM):
# Set CUSTOM_BASE_URL and CUSTOM_API_KEY in .env.local
# The start.sh script will auto-configure model.base_url and model.api_key
model:
default: "mimo-v2.5-pro"
provider: "custom" # Using Xiaomi MiMo custom endpoint
# base_url: "" # Auto-set from CUSTOM_BASE_URL
# api_key: "" # Auto-set from CUSTOM_API_KEY
# context_length: 1000000 # Auto-set from CUSTOM_MODEL_CONTEXT_LENGTH
# max_tokens: 8192 # Auto-set from CUSTOM_MODEL_MAX_TOKENS
# ── Agent Behavior ────────────────────────────────────────────────────
agent:
max_turns: 90 # Maximum conversation turns per session
tool_use_enforcement: auto # auto, required, or off
# ── Terminal Configuration ────────────────────────────────────────────
# Working directory for shell commands and file operations.
# Override via env: MESSAGING_CWD
terminal:
backend: local # local, docker, or ssh
cwd: "/opt/data/workspace" # Default workspace directory
timeout: 180 # Command timeout in seconds
# ── Context Compression ──────────────────────────────────────────────
# Automatically compress long conversations to stay within token limits.
compression:
enabled: true
threshold: 0.50 # Trigger compression at 50% of context window
target_ratio: 0.20 # Compress to 20% of original size
# ── Display Settings ─────────────────────────────────────────────────
# UI and notification preferences.
# Override via env: HERMES_BACKGROUND_NOTIFICATIONS
display:
skin: default # UI theme (default, minimal, etc.)
tool_progress: true # Show tool execution progress
show_reasoning: false # Show model reasoning steps
show_cost: true # Show token cost per request
background_process_notifications: "result" # result, none, or progress
# ── Security Settings ────────────────────────────────────────────────
# CRITICAL: Always enable secret redaction to prevent credential leakage.
security:
redact_secrets: true # Auto-mask API keys in tool output
redact_pii: false # Auto-mask PII (phone numbers, emails)
tirith_enabled: false # Enable Tirith security scanner
# ── Approval Mode ─────────────────────────────────────────────────────
# Control how destructive commands are handled.
# Options: manual (always prompt), smart (LLM decides), off (no prompts)
approvals:
mode: smart # Recommended: smart for autonomous operation
# ── Memory Configuration ─────────────────────────────────────────────
# Persistent memory across sessions.
memory:
memory_enabled: true # Enable cross-session memory
user_profile_enabled: true # Enable user profile persistence
provider: builtin # builtin, honcho, mem0
# ── Checkpoints ──────────────────────────────────────────────────────
# Filesystem snapshots for rollback capability.
checkpoints:
enabled: true
max_snapshots: 10 # Maximum checkpoints to keep
auto_prune: true # Auto-cleanup old checkpoints
# ── Sessions ─────────────────────────────────────────────────────────
# Session management and cleanup.
sessions:
auto_prune: true # Auto-cleanup old sessions
prune_days: 3 # Delete sessions older than N days
# ── Model Catalog ────────────────────────────────────────────────────
# Disable to reduce context bloat.
model_catalog:
enabled: false # Set true to show model picker in UI
# ── Delegation (Subagents) ───────────────────────────────────────────
# Configuration for delegated subtasks.
delegation:
max_iterations: 50 # Max tool calls per subagent
max_spawn_depth: 1 # Max nesting depth (1 = no nesting)
max_concurrent_children: 3 # Max parallel subagents
# ── Platform Configuration ───────────────────────────────────────────
# Messaging platform integrations.
# Telegram is auto-configured from TELEGRAM_BOT_TOKEN env var.
platforms:
telegram:
enabled: false # Auto-enabled when TELEGRAM_BOT_TOKEN is set
# extra:
# base_url: "" # Auto-set from TELEGRAM_BASE_URL
# base_file_url: "" # Auto-set from TELEGRAM_BASE_FILE_URL
# Uncomment to enable other platforms:
# discord:
# enabled: true
# extra:
# bot_token: "${DISCORD_BOT_TOKEN}"
#
# slack:
# enabled: true
# extra:
# bot_token: "${SLACK_BOT_TOKEN}"
# ── Telegram Access Control ──────────────────────────────────────────
# Comma-separated user IDs allowed to interact with the bot.
# Override via env: TELEGRAM_ALLOWED_USERS, TELEGRAM_USER_ID
telegram:
allow_from: [] # Empty = allow all (not recommended for production)
# ── STT (Speech-to-Text) ─────────────────────────────────────────────
# Voice message transcription.
stt:
enabled: false # Enable voice transcription
provider: local # local, groq, openai, mistral
local:
model: base # tiny, base, small, medium, large-v3
# ── TTS (Text-to-Speech) ─────────────────────────────────────────────
# Voice response generation.
tts:
provider: edge # edge, elevenlabs, openai, minimax, mistral, neutts
# ── MCP Servers ──────────────────────────────────────────────────────
# Model Context Protocol servers for extended tool access.
# IMPORTANT: Use 'mcp_servers:' key, NOT 'mcp:'
mcp_servers:
cloudflare:
url: https://mcp.cloudflare.com/mcp
timeout: 120
headers:
Authorization: Bearer ${CLOUDFLARE_API_TOKEN}
inbox:
url: https://mcp-inbox.cmz.web.id/mcp
timeout: 120
headers:
X-MCP-Secret: ${INBOX_MCP_SECRET}
n8n:
url: https://ruang101-n8n.hf.space/mcp-server/http
timeout: 120
headers:
Authorization: Bearer ${N8N_MCP_API_KEY}
tavily:
url: https://mcp.tavily.com/mcp/?tavilyApiKey=${TAVILY_API_KEY}
exa:
url: https://mcp.exa.ai/mcp?tools=web_search_exa,web_fetch_exa,web_search_advanced_exa
headers:
x-api-key: ${EXA_API_KEY2}
anysearch:
url: https://api.anysearch.com/mcp
headers:
Authorization: Bearer ${ANYSERCH_API_KEY}
google-maps-tools:
url: https://mapstools.googleapis.com/mcp
type: http
secrets:
bitwarden:
enabled: true
access_token_env: BWS_ACCESS_TOKEN
project_id: afa31408-cc79-4dfb-8a35-b4590142ba94
cache_ttl_seconds: 300
override_existing: true
auto_install: true
server_url: ''
# ── Toolsets ─────────────────────────────────────────────────────────
# Explicit tool list. Remove tools to reduce model schema size.
# Default: all tools enabled.
# toolsets:
# - hermes-cli
# - browser
# - file
# - terminal
# - code_execution
# - delegation
# - memory
# - session_search
# - skills
# - web
# - vision
# - image_gen
# - tts
# - cronjob
# - todo
# ── Auxiliary Models ─────────────────────────────────────────────────
# Models for vision, compression, session search, etc.
auxiliary:
vision:
provider: auto # auto, openrouter, google, etc.
model: "" # Leave empty for auto-detection
compression:
provider: auto
model: ""
# ── Cloudflare Integration ───────────────────────────────────────────
# For Telegram proxy and keepalive.
# Override via env: CLOUDFLARE_WORKERS_TOKEN, CLOUDFLARE_PROXY_URL
# cloudflare:
# proxy_url: "" # Auto-set from CLOUDFLARE_PROXY_URL
# keepalive_cron: "*/10 * * * *"
# ── Custom Provider Configuration ────────────────────────────────────
# For non-standard API endpoints (e.g., Xiaomi MiMo, NVIDIA NIM).
# These are auto-configured from env vars by start.sh.
#
# Environment variables:
# CUSTOM_BASE_URL β†’ model.base_url
# CUSTOM_API_KEY β†’ model.api_key
# CUSTOM_MODEL_CONTEXT_LENGTH β†’ model.context_length
# CUSTOM_MODEL_MAX_TOKENS β†’ model.max_tokens
# CUSTOM_PROVIDER β†’ model.provider (default: "custom")
# ── Advanced Settings ────────────────────────────────────────────────
# Uncomment and customize as needed.
# hooks:
# pre_tool_call: "" # Script to run before each tool call
# post_tool_call: "" # Script to run after each tool call
# logging:
# level: info # debug, info, warning, error
# file: "" # Log file path (empty = stdout only)
# ── HF Space Specific ────────────────────────────────────────────────
# These settings are optimized for Hugging Face Spaces deployment.
# Backup dataset for state persistence
# Override via env: BACKUP_DATASET_NAME
backup_dataset: "huggingmes-backup"
# Sync settings for HF Dataset backup
# Override via env: SYNC_INTERVAL, SYNC_POLL_INTERVAL, SYNC_DEBOUNCE_SECONDS
sync:
interval: 60 # Seconds between sync cycles
poll_interval: 2 # Seconds between change detection polls
debounce_seconds: 3 # Seconds to wait after last change
# ══════════════════════════════════════════════════════════════════════
# END OF CONFIGURATION
# ══════════════════════════════════════════════════════════════════════