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