openclaw-hermes-arch
Use when understanding the relationship between OpenClaw Gateway and Hermes Agent.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when understanding the relationship between OpenClaw Gateway and Hermes Agent.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when Hermes Agent needs X/Twitter search, public signal research, monitoring, or approval-gated account actions through the Hermes Tweet plugin.
Router Learning System — 越用越聰明嘅任務路由引擎。 每個 task 有最佳 path,Router 自動記錄經驗、動態調整、跳過爛 path。
Use when signaling work status across autonomous sessions.
Use when needing to standardize descriptions across many skill files at once — change format, fix wording, or enforce a convention like 'Use when...' prefix.
Use before making irreversible changes (deleting files, destructive git operations, large refactors). Use when you need the ability to roll back if something goes wrong. Use at the start of any task that modifies multiple files.
Use when the context window is getting full and tasks need breaking down.
| name | openclaw-hermes-arch |
| description | Use when understanding the relationship between OpenClaw Gateway and Hermes Agent. |
| metadata | {"hermes":{"platform":["cursor","codex","claude-code"]}} |
| domain | integration |
| subdomain | architecture |
| tokens | {"scan":105,"load":1140,"category":"standard"} |
Hermes Agent runs locally on the user's iMac, NOT on a cloud VM. This was discovered mid-session when tailscale status showed only one node (chrisimac), hostname returned ChrisdeiMac.local, and tailscale ip -1 returned 100.94.45.30 — the same Tailscale IP as the iMac.
Implication: All prior SSH setup (key generation, from= IP restriction, Tailscale tunnel) was unnecessary — Hermes was SSH-ing into its own machine. The SSH key setup hermes_to_chris served no real purpose since Hermes already has local terminal access.
Critical finding: OpenClaw Gateway and Hermes Agent are two separate systems on the same machine (iMac M1). They are not the same thing.
| OpenClaw Gateway | Hermes Agent | |
|---|---|---|
| Process manager | PM2 | macOS launchd |
| Config | Shared .env | Shared .env |
| Telegram Token | Must NOT share | Must NOT share |
| Service file | PM2 list | ~/Library/LaunchAgents/hermes*.plist |
| Heartbeat | ~60 mins (token drain) | None by default |
Both using same Telegram Bot Token = packet loss / no response. Telegram delivers to whichever grabs it first. OpenClaw heartbeat drains rate limit.
Fix: Use a separate dedicated Telegram Bot for Hermes. Create via @BotFather, give new token to Hermes only.
Current state: Hermes runs with the original OpenClaw bot token. Architecture is independent but bot identity is inherited. To truly separate, create a new bot via @BotFather and update TELEGRAM_BOT_TOKEN in .env (line 28).
Hermes Agent does NOT natively read these environment variables — they are OpenClaw-era artifacts:
LOGIC_MODEL=deepseek-chat — inert. Hermes uses model.default in config.yaml.CODING_MODEL=deepseek-coder — inert. Hermes has no internal code to read this.CODING_PROVIDER — inert.DEFAULT_MODEL / LLM_MODEL — also inert if config.yaml sets model.default.Actual model routing in Hermes: Uses smart_model_routing config in config.yaml. The env-var-based approach from OpenClaw does not carry over.
Note: deepseek-coder has been merged into deepseek-chat since early 2025.
launchctl unload ~/Library/LaunchAgents/com.hermes.gateway.plist && launchctl load ~/Library/LaunchAgents/com.hermes.gateway.plistpm2 stop openclaw-gatewayterminal() — full shell access as current useropen -a Safari http://localhost:8080/...sudo anything — macOS demands interactive TTY for passwordosascript keystroke blocked (error 1002)open -a Terminalecho "command" | pbcopy