✦
Hermes Agent

How-To Guide

Set Up Multiple Hermes Agents on One Machine

Run multiple Hermes agents with different personalities, skills, and channels — each with isolated memory.

Quick answer

Run multiple Hermes agents by giving each its own Hermes home and config so memory and channels stay isolated — a personal agent, a work agent on company Slack, a community agent on Discord. Separate homes prevent context bleed between agents that should never share private memory.

Running multiple Hermes agents lets you separate concerns — a personal agent with your private context, a work agent connected to your company Slack, a community agent for your Discord. Each has isolated memory and channels.

Deploy Hermes faster with FlyHermes

Managed cloud · API costs included · Skill library · Cancel anytime

Before you start:

  • ☑Hermes Agent installed
  • ☑Enough server resources: each agent needs at least 256MB RAM
  • ☑Separate bot tokens for each agent's messaging channels

Steps

  1. 1

    Plan your agents

    Decide how many agents you need and their roles (personal, work, community, etc.)

  2. 2

    Create separate configs

    Create config files for each: config-personal.yaml, config-work.yaml, etc.

  3. 3

    Isolate data directories

    Set different dataDir: paths in each config to keep memory and skills separate

  4. 4

    Assign different channels

    Each agent gets its own Telegram bot, Discord bot, or Slack app

  5. 5

    Start each agent

    hermes start --config config-personal.yaml for each agent, or use PM2 ecosystem file

  6. 6

    Monitor all agents

    Use pm2 list to see all running agents and their status

Pro Tips

  • 💡Use Hermes profiles (v0.6.0+) instead of separate configs for the cleanest isolation — 'hermes profile create work' sets up a fully isolated environment
  • 💡Name your PM2 processes clearly: 'pm2 start hermes --name hermes-personal -- --profile personal'
  • 💡Each profile gets its own web UI port — document these to avoid confusion when connecting channels

Troubleshooting

❌ Two agents interfere with each other's memory

✅ Check that 'dataDir' is set to different paths in each config. By default both use ~/.hermes/ — override this explicitly for each agent.

❌ Can't tell which agent is which in Telegram

✅ Give each bot a distinct name and profile picture in @BotFather. Use the bot's display name to distinguish them when messaging.

❌ Port conflict when starting a second agent

✅ Each Hermes instance needs its own web UI port. Set 'web: port: 3001' for the second agent. Check for conflicts with 'ss -tlnp | grep 300'.

FAQ

How do I keep multiple agents' memory separate?

Give each agent its own Hermes home directory and config. Isolated ~/.hermes state means a personal agent's private memory never leaks into a work or community agent.

Can different agents use different channels and models?

Yes. Each agent has its own config, so you can point one at Slack and a cheap model and another at Discord and a premium model, independently.

Should agents share memory?

Only deliberately. Default isolation is safest; if several agents genuinely need common knowledge, use a shared-memory layer rather than pointing them at the same private store.

Related Guides