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:
2026-08-23 15:46:58 +00:00
parent 5461754f23
commit 9fa025f7d5
3 changed files with 42 additions and 0 deletions
+4
View File
@@ -49,6 +49,10 @@ export async function startMatrixBot() {
if (event.sender === BOT_USER_ID) return;
const body = event.content?.body;
if (!body) return;
// Messages explicitly addressed to another agent in this room (currently just
// @hermes) are that agent's to answer — without this, claude-bot's classifier would
// also see and reply to them, since it otherwise treats every message as its own.
if (/^@hermes\b/i.test(body.trim())) return;
try {
const decision = await routeMessage(body, KNOWN_REPOS);