Add Hermes Agent as a second native Matrix presence
Deployed as its own service (pinned nousresearch/hermes-agent:v2026.8.19), own Matrix bot account (@hermes), own OpenRouter-backed model config, and its own OpenAI-compatible API server (internal network only, for possible future use by claude-agent). Joins the same control room but only responds when explicitly @mentioned, restricted to the human user — no conflict with claude-bot's default no-prefix chat routing. claude-agent's router now ignores messages addressed to @hermes so both bots don't answer the same message. Bridge networking (the 'web' network), not the image's default host mode — no reason for an agent container to share the host's network namespace when everything it needs (the homeserver, OpenRouter) is reachable over the existing bridge.
This commit is contained in:
@@ -61,6 +61,33 @@ services:
|
||||
# Internal only — no Traefik labels. No reason to expose an LLM gateway holding a
|
||||
# master key and OAuth-forwarding config to the public internet.
|
||||
|
||||
hermes:
|
||||
# Pinned to a specific dated release, not :latest — same rationale as litellm above.
|
||||
image: nousresearch/hermes-agent:v2026.8.19
|
||||
container_name: hermes
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
HERMES_UID: "1000"
|
||||
HERMES_GID: "1000"
|
||||
# Internal container address, not the public HTTPS one — same docker network as
|
||||
# matrix-homeserver, no reason to round-trip through Traefik/TLS for this.
|
||||
MATRIX_HOMESERVER: http://matrix-homeserver:8008
|
||||
MATRIX_ACCESS_TOKEN: ${HERMES_MATRIX_ACCESS_TOKEN}
|
||||
# Only you can trigger it; and only with an explicit @hermes mention in shared
|
||||
# rooms (DMs to it would respond unprompted, per Hermes's own default behavior).
|
||||
MATRIX_ALLOWED_USERS: ${MATRIX_HUMAN_USER_ID}
|
||||
MATRIX_REQUIRE_MENTION: "true"
|
||||
OPENROUTER_API_KEY: ${OPENROUTER_API_KEY}
|
||||
# Exposed on the internal network only (see claude-agent's LITELLM_BASE_URL-style
|
||||
# usage pattern) — nothing publishes this port externally.
|
||||
API_SERVER_ENABLED: "true"
|
||||
API_SERVER_HOST: 0.0.0.0
|
||||
API_SERVER_KEY: ${HERMES_API_SERVER_KEY}
|
||||
volumes:
|
||||
- /home/william/hermes-data:/opt/data
|
||||
networks:
|
||||
- web
|
||||
|
||||
claude-agent:
|
||||
image: ${GITEA_REGISTRY_IMAGE}
|
||||
depends_on:
|
||||
|
||||
Reference in New Issue
Block a user