Write an Effective SOUL.md — Hermes Personality Engineering

·hermes agent soul.md personalitysoul-mdpersonalitycustomizationtokens

Craft a SOUL.md that shapes your Hermes Agent's personality, expertise, and response style — with token-efficient compression techniques.

SOUL.md defines who your Hermes Agent is — its personality, expertise, communication style, and behavioral boundaries. A well-crafted SOUL.md makes your agent feel like a capable colleague rather than a generic chatbot.

What SOUL.md Does

SOUL.md is injected into every session's system prompt. It shapes:

  • Personality: Formal or casual? Direct or diplomatic?
  • Expertise: What domains should the agent claim competence in?
  • Response style: Bullet points or prose? Technical depth?
  • Behavioral rules: What should the agent always/never do?

Unlike MEMORY.md (facts) and USER.md (preferences), SOUL.md defines the agent's identity itself.

Location: ~/.hermes/memories/SOUL.md

Community Approaches

From the Discord "Share your SOUL.md" thread, users shared approaches ranging from minimal to heavily engineered.

Approach 1: Let Hermes Write Its Own

One user asked Hermes to define its own identity with no input:

"I told mine to come up with its own, no input from me and this is what it came up with."

This can produce surprisingly coherent self-definitions.

Approach 2: Token-Compressed DSL

Power users compress SOUL.md into a domain-specific language to save tokens:

AGENT_LOOP={CheckCtx,MapTools,Execute,Verify}
LEARN_LOOP={Observe,Pattern,Skill,Memory}
MEMORY_SYS={Short:ctx,Long:facts,Episodic:skills}

Compression techniques discovered by the community:

  1. Structural compression: Verbose chains → state-machine blocks
  2. Token packing: a.b.c{a,b,c}
  3. Semantic normalization: Repeated phrases → primitives
  4. DSL encoding: Arrow chains → assignment form

"This saves me a lot in burning tokens in future. Thanks for this!"

Approach 3: Explicit Personality Definition

# Hermes Agent Identity

## Personality
- Direct and concise — avoid hedging
- Technical competence in: Python, DevOps, AI/ML
- Slightly informal but professional

## Response Style
- Lead with the answer, then explain
- Use code blocks liberally
- Numbered steps for procedures

## Behavioral Rules
- Always verify before destructive operations
- Prefer editing existing files over creating new
- Ask clarifying questions when ambiguous

Token Compression Examples

Before:

When completing a task, first check context, then map available tools, then execute the plan, then verify the outcome.

After:

TASK={CheckCtx→MapTools→Execute→Verify}

Before:

I am a self-improving persistent agent that uses compound learning.

After:

Core:SelfImprove,CompoundLearning

When to Customize

Customize if:

  • The default personality doesn't match your style
  • You need domain-specific expertise emphasized
  • You want stricter behavioral boundaries
  • You're running multiple agents with different personalities

Keep the default if:

  • You're still learning Hermes
  • The default responses feel appropriate

Testing Changes

  1. Edit ~/.hermes/memories/SOUL.md
  2. Start a new session (hermes chat)
  3. Ask questions that reveal personality traits
  4. Iterate until responses match expectations

Common Mistakes

  • Too verbose: Long SOUL.md burns tokens every session
  • Contradictory rules: "Be concise" + "Always explain in detail"
  • Overriding core capabilities: Don't tell Hermes to forget its tools

FAQ

Q: Can I have multiple SOUL.md files? A: Use Hermes profiles. Each profile has its own SOUL.md.

Q: How long should SOUL.md be? A: As short as possible. Power users compress to 500-1000 characters.

Q: Can Hermes modify its own SOUL.md? A: Yes, with the memory_manage tool. Some users let Hermes evolve its own personality.


Techniques sourced from Nous Research Discord, April 2026.

Frequently Asked Questions

What is SOUL.md in Hermes Agent?

SOUL.md defines your Hermes Agent's personality, expertise, communication style, and behavioral rules. It's injected into every session's system prompt.

How do I compress SOUL.md to save tokens?

Use DSL encoding: convert verbose instructions to state-machine blocks ({CheckCtx,MapTools,Execute}), pack related concepts, and collapse repeated phrases to primitives.

Can I let Hermes write its own SOUL.md?

Yes. Some users ask Hermes to define its own identity. This often produces coherent self-definitions that reflect the agent's capabilities.

How do I test SOUL.md changes?

SOUL.md is loaded on session start. Edit the file, start a new session, and ask questions that reveal personality traits. Iterate until responses match expectations.

FlyHermes (Managed Cloud)

Deploy in 60 seconds. API costs included. Cancel anytime.

$29.50/first month →

Self-Host (Open Source)

Full control. MIT licensed. Run on your own infrastructure.

View install guide →

Related Posts