5 Lessons for an Agent Personality File: Get OpenClaw and Hermes Past the Generic Assistant
An agent's personality file does three things: how it talks to you by default, what it remembers, and how it handles the repetitive work. Most people write a personality by stretching the prompt
Written by
Voxyz AI

An agent's personality file does three things: how it talks to you by default, what it remembers, and how it handles the repetitive work. Most people write a personality by stretching the prompt longer, piling up adjectives like "smart, warm, reliable." The more you write, the more it sounds like a generic assistant, and the file turns into a junk drawer you throw everything into. OpenClaw and Hermes both have one personality file, SOUL.md. The difference is how they store it. OpenClaw spreads the personality across a set of readable files in a working directory it calls a workspace. Hermes packs it into one archive you can copy and move whole, called a profile. These are 5 lessons for writing that SOUL.md well, all of them from my own mistakes, and they apply to both OpenClaw and Hermes. By the end, hopefully your agent feels a bit more like your own.
- Write How It Acts by Default The thing that matters is default behavior. No pile of adjectives changes how it works. You have to spell out what it does by default when a real situation shows up. OpenClaw's SOUL guide is basically one line: put voice, opinions, and boundaries in there, don't write a bio. It even ships an official "Molty prompt" you paste into your agent to make it rewrite its own SOUL with some actual opinions:
What worked best for me, weirdly, was that last one. Let it curse once when it fits and the whole stiff tone cracks. One well-placed curse does more than ten rules telling it to "be direct." I kept the rest as-is and it started telling me the truth. I float a bad idea, it says no. One boundary: only open up swearing for DMs and your own agent. In group chats, client channels, and public replies, keep it clean.
- SOUL.md Is for Voice, Not a Junk Drawer Cram project rules, user prefs, tool notes, and long-term memory all into SOUL.md and you don't get more personality. You just get a mess. OpenClaw splits the agent into a set of files by default, each one holding a layer. Hermes says it plainly too: anything that follows you everywhere goes in SOUL.md, anything that belongs to one project goes in AGENTS.md. Here's how I split it:
That row of files is the workspace from the intro, laid out flat. Split this way, the voice survives a project switch, and changing a rule means opening one layer instead of digging through a file that holds everything. There's a more practical reason to keep it short: write SOUL.md too long and the agent may not read all of it. It can only read so much per run, and past that the file is still on disk but it never sees the bottom. You think it's ignoring the rule. It never read the rule.
- Keep Memory Out of the Personality File When the personality starts drifting, the first instinct is to make SOUL.md longer. Usually wrong. The personality file is for character, memory is for continuity. Two different jobs, and stretching one dilutes the other. OpenClaw's memory is just plain markdown in the working directory: the files are the source of truth, the model only remembers what got written to disk. Hermes is more engineered: memory is a fixed-size snapshot, frozen at the start of a session, and when it fills up the agent merges old entries. Anything older than that, it searches back through its history.
Splitting it isn't enough, though. The part that bites you is this: a plain fact you write down can get acted on like an instruction. Note "user is thinking about changing pricing" and one day it just changes the price. When you record something, spell out whether it can act on it, and when:
Good memory writes down not just what happened, but what the agent is allowed to do about it later.
- Skills Are the Personality's Muscle Memory Personality isn't only how it talks. It's also how it handles the work it does over and over. A skill is just a written-down procedure, saved as a SKILL.md. The agent normally only sees a list of skills and pulls the full one in when it's actually needed, so it doesn't sit in context. Both frameworks work this way, and the key part is the agent can save a working approach as a new skill and reuse it. The official term for it is procedural memory: like riding a bike, once it's learned you don't think it through every time. Hermes ships a batch of skills out of the box, from managing Obsidian notes to reading papers, and the agent can write its own. OpenClaw has the ClawHub marketplace to pull from. Same SKILL.md works for both.
Once it's a skill, I never explain that flow a second time, it just runs. One trap, though: don't let it freeze a wrong turn into a skill too. Hermes can create and rewrite its own skills, which is handy, but one bad run saved as a skill turns a bug into a habit. New skills, I read once and confirm they're right before letting it lean on them.
- New Machine, New Platform, Still the Same Agent The voice, memory, and skills you build up are wasted if they only hold inside this one chat. The real test is what happens the next day: it wakes up on its own, you switch to Telegram or Discord, you move it to another profile, someone else installs it. Is it still the same agent? This is where the two differ most. OpenClaw has a thing called heartbeat: it wakes up every so often, takes a look, and if nothing's going on it quietly checks in and leaves you alone. Whether it can stay quiet when nothing's happening tells you more about its personality than how often it pings you. Running on Telegram, Slack, and Discord at once, it also has to know a DM and a group chat are different rooms. Hermes goes further with the profile: its own config, SOUL, memory, sessions, skills, and schedule, all isolated, and one command copies the whole thing to another machine. OpenClaw's take is the working directory itself: the files, memory, and skills all live around that one home.
Get it right and you reopen it on a new machine and it's the same judgment, the same temper.
A Skeleton You Can Copy Straight In This is the part to save. SOUL.md keeps only the voice. Paste it in, swap the example for yours, and you're set:
Then four moves from that skeleton: Delete every "be helpful / professional / reliable" default line from SOUL.md Replace them with 4 to 8 rules that actually change behavior: blunt or not, push back or not, ask first or not Move project rules, user prefs, and durable facts into AGENTS.md / USER.md / MEMORY.md Turn a repeated task into a skill instead of adding one more adjective to the personality
To Close
By now you can probably see it: SOUL.md is just the nameplate on the door. What actually gets your agent past the generic assistant is the system behind the nameplate: its voice, its memory, the work it knows how to do.
The bigger question is this. When everyone can call the same top model, what makes your agent yours?
The base models only get stronger, and more alike. You can't stop that. What you can hold onto is the part you feed it day by day. You can't download it, you can't buy it, you can only grind it out yourself. The longer you do, the more it sounds like you, and the harder it is to copy. An agent that works for you while you sleep is one only you can raise.
Open your SOUL.md tonight and write the first rule only you would teach it. Then delete an adjective and move a memory each day. A week in, you won't want to go back to the one that sounds like everyone else's.
For more of what I'm building as I go, follow @Voxyz_ai, new stuff every week. Full notes at voxyz.ai/insights.
Hope this was useful, Vox ❤️
References
Want to dig in yourself? These official docs are enough to build the whole thing:
OpenClaw (376K stars):
github.com/openclaw/openclaw
OpenClaw SOUL.md guide: docs.openclaw.ai/concepts/soul
OpenClaw Agent Workspace (file layering): docs.openclaw.ai/concepts/agent-workspace
OpenClaw Cron vs Heartbeat: docs.openclaw.ai/automation/cron-vs-heartbeat
Hermes Agent (174K stars):
github.com/NousResearch/hermes-agent
Hermes Personality & SOUL.md: hermes-agent.nousresearch.com/docs/user-guide/features/personality
Hermes Profiles (isolation / cloning): hermes-agent.nousresearch.com/docs/user-guide/profiles
Hermes Skills (procedural memory): hermes-agent.nousresearch.com/docs/user-guide/features/skills
Hermes Memory (bounded memory + history search): hermes-agent.nousresearch.com/docs/user-guide/features/memory

Next step
If you want to build your own system from this article, choose the next step that matches what you need right now.
Related insights
From One AI Loop to an AI Team Workflow With Hermes and OpenClaw
A lot of people want AI to do their work for them, so they open a dozen windows, wire up a dozen tools, and after all that the most automated thing in the whole pipeline is still them, shuttling data
Read nextHow I run my AI team's simplest loop with OpenClaw and Hermes
This article is about how I run a minimal AI team loop with OpenClaw and Hermes: one agent wakes up on schedule, reads a small slice of state, does one narrow job, leaves a packet I can review, and
Read next20 Ways to Stop Wasting Tokens With Your OpenClaw / Hermes
A builder replied to my post today: "I think I will go broke with all these agents 😭…. Fking 200+ USD every month on ai is too much now and I noticed only 5-10$ of those are productive rest is bs…"
Read next