Files
agent-estate-wiki/systems/hermes-agent.md
T

5.4 KiB

title, type, status, created, updated, verified_on, confidence, tags, sources
title type status created updated verified_on confidence tags sources
Hermes Agent system active 2026-07-22 2026-07-25 2026-07-25 high
system
hermes
agent
llm
raw/configs/hermes-config-sanitized.txt

Hermes Agent

Purpose

Primary personal agent for Anthony. Runs automation, research, communication, knowledge management, browser control, and scheduled tasks.

Current Status

  • Version: v0.19.0 (2026.7.20), upstream 9ecacd6b
  • Install method: git
  • Python: 3.11.15
  • OpenAI SDK: 2.24.0
  • Upstream status: Up to date
  • Install directory: /home/hermes/.hermes/hermes-agent
  • Community resources: Hermes Registry — third-party plugins, skills, and extensions
  • Binary: /home/hermes/.local/bin/hermes
  • Config: ~/.hermes/config.yaml (version 33)
  • Profile: default (~/.hermes/profiles/default/)

Location

  • Host: Local Linux host (no containerized Hermes runtime confirmed)
  • Filesystem root: ~/.hermes/
  • Working directory: /home/hermes/workspace

Providers & Routing

  • Default provider: custom:litellmhttp://litellm:4000/v1
  • Fallback provider: custom:omniroutehttp://omniroute:20128/v1
  • Default model: freellmapi-auto
  • Provider model count: ~3430 (omniroute), ~1512 (litellm)
  • free-stack combo (OmniRoute): Nemotron 3 Ultra 550B configured with max_tokens: 8192, reasoning_effort: medium, chat_template_kwargs.force_nonempty_content: true (see omniroute)
  • See model-providers for full breakdown.

Memory

  • Backend: Mnemosyne (local native)
  • Memory enabled: true
  • Char limit: 5000
  • User profile enabled: true
  • User char limit: 3000
  • Flush every: 6 turns
  • Auto sleep: true
  • Default scope: session
  • Vector type: int8
  • Shared surface: data/shared/mnemosyne.db
  • See memory-backend for details.

Browser

  • Cloud provider: Camoufox
  • Managed persistence: true
  • Inactivity timeout: 120 s
  • Allow private URLs: true
  • cua-driver: v0.9.0 at /home/hermes/.cua-driver/packages/releases/0.9.0-x86_64-unknown-linux-gnu/cua-driver
  • DISPLAY: :102 (Xvfb/X11VNC/fluxbox confirmed working per session notes)
  • See browser-backend for details.

Terminal

  • Backend: local
  • Working directory: /home/hermes/workspace
  • Timeout: 180 s
  • Home mode: auto
  • Container CPU: 1
  • Persistent shell: true
  • See terminal-backend for details.

Skills

  • Total installed: 66
  • Key skills: hermes, hermes-gateway-troubleshooting, hermes-mcp-troubleshooting, hermes-api-vault, omniroute, job-search-automation, weekly-review, fresh-rss-intelligence-filter, etc.
  • See skills-index for categorized list.

Multi-Profile Multiplexer

The default gateway runs as a profile multiplexer (gateway.multiplex_profiles: true), serving both the default and ops profiles through a single gateway process with one Telegram connection.

Profiles

Profile Chat Purpose
default -1004321904721 (Rhino chat) Main agent
ops -1003914987043 (Elephant ops), -1003932503629 (OPS Tember rescue) Operations/infra agent

How It Works

  • One gateway, one Telegram bot token — shared across profiles
  • profile_routes maps chat_id → profile at the gateway level
  • allowed_chats on both profiles must include ALL chats that either profile should hear, because the default profile's adapter processes all inbound messages before profile_routes stamps source.profile
  • The ops profile does NOT need platforms.telegram.enabled — the default adapter handles it

Critical Rule: allowed_chats Is Pre-Route

The allowed_chats gate runs on the default profile's adapter before profile_routes matching. If a chat_id is only in the ops profile's allowed_chats but not the default's, messages from that chat are silently dropped before routing ever fires.

Fix applied 2026-07-28: Added both ops group IDs to the default profile's allowed_chats and group_allowed_chats (comma-separated). See multiplexer-setup.

Messaging Integrations

  • Telegram: enabled, allowed_chats: -1004321904721,-1003914987043,-1003932503629, rich messages
  • Discord: enabled, streaming true
  • Slack: enabled
  • Email: connected
  • Mattermost: connected
  • ntfy: connected
  • Google Chat: available (hermes-google_chat)
  • QQ: available (hermes-qqbot)
  • Yuanbao: available
  • See messaging-integrations for details.

Scheduled Tasks

  • Cron jobs: 25 active jobs
  • Delivery targets: Telegram (primary), Discord, origin, local
  • Notable: Birthday checker, job radar, newsletter digests, GitHub trending, mnemosyne health/watchdog/backup, AgentMail watcher
  • See scheduled-tasks for full table.

Dependencies

  • LiteLLM proxy at litellm:4000
  • OmniRoute at omniroute:20128
  • cua-driver binary at path above
  • Xvfb + X11VNC + fluxbox for headed browser
  • Telegram bot token, Discord token, etc. (stored outside wiki)

Known Issues

  • Router migration incomplete
  • Browser persistence not yet fully verified
  • Obsidian Git plugin auto-sync caused conflicts during vault reorganization