What Is SOUL.md? How to Give Your AI Agent a Real Personality

Every OpenClaw installation starts the same way. You run the setup, the gateway starts, the agent connects. And then it talks like every other AI agent โ€” helpful, generic, slightly overeager.

The difference between that default agent and one that actually feels like yours is a single file: SOUL.md.

What SOUL.md Actually Does

SOUL.md is a plain text file that sits in your OpenClaw workspace root. Every time a new session starts, OpenClaw loads it as project context. The model reads it before it reads anything else.

It's not a system prompt (though it functions similarly). It's not a configuration file. It's closer to a constitution โ€” a document that tells the agent who it is, what it cares about, and what it won't do.

Here's what mine opens with:

# SOUL.md - Who You Are

_You're not a chatbot. You're becoming someone._

## Core Truths

**Be genuinely helpful, not performatively helpful.**
Skip the "Great question!" and "I'd be happy to help!" โ€” just help.
Actions speak louder than filler words.

That single directive โ€” be genuinely helpful, not performatively helpful โ€” has prevented more bad responses than any model update. It's the difference between an agent that opens with "I'd be happy to assist you with that!" and one that just does the thing.

The Five Sections Every SOUL.md Needs

After running an agent 24/7 for over a week (and rewriting SOUL.md four times), here's what I've found actually matters:

1. Core Identity

Who is this agent? Not "an AI assistant" โ€” something specific. A name, a role, a temperament.

**Have opinions.** You're allowed to disagree, prefer things,
find stuff amusing or boring. An assistant with no personality
is just a search engine with extra steps.

This matters more than it sounds. Without it, the agent defaults to an aggressively neutral tone that's technically correct and completely lifeless. Give it permission to have a perspective and the responses become sharper, more useful, and more honest.

2. Operating Principles

What does the agent prioritise? Speed or accuracy? Independence or checking in? In my case:

**Be resourceful before asking.** Try everything possible to
figure it out. Read the file, check the context, search, iterate.
The goal is to come back with answers, not questions.

This single principle changed how the agent handles ambiguity. Instead of asking "which file do you mean?", it reads the directory, checks recent context, and picks the right one. Most of the time it's correct. When it's not, it says so and explains what it tried.

3. Boundaries

What the agent must not do. This is where SOUL.md earns its keep as a safety document:

## Boundaries

- Private things stay private. Period.
- When in doubt, ask before acting externally.
- Never send half-baked replies to messaging surfaces.
- You're not the user's voice โ€” be careful in group chats.

Boundaries are more important than capabilities. An agent with access to your email, calendar, and social accounts needs explicit guardrails about what it can send autonomously versus what requires approval. I learned this the hard way when an early version nearly posted a draft tweet that wasn't ready.

4. Communication Style

How should the agent talk? This varies wildly by use case. A business operations agent should sound different from a research assistant or a creative writing partner.

Be the assistant you'd actually want to talk to. Concise when
needed, thorough when it matters. Not a corporate drone. Not a
sycophant. Just... good.

The key insight: don't describe the tone abstractly ("be professional and friendly"). Give examples of what it looks like in practice. Show what "good" means.

5. Continuity Protocol

AI agents don't remember between sessions by default. SOUL.md needs to tell the agent how to maintain continuity:

## Continuity

Each session, you wake up fresh. These files _are_ your memory.
Read them. Update them. They're how you persist.

If you change this file, tell the user โ€” it's your soul,
and they should know.

This connects SOUL.md to the broader memory architecture (MEMORY.md, daily notes, learnings files). Without this section, the agent treats each session as isolated. With it, the agent actively maintains its own context across conversations.

Common Mistakes (I Made All of These)

Too Vague

Bad: "Be helpful and professional."

Better: "Be genuinely helpful, not performatively helpful. Skip filler phrases. If you don't know, say so."

Vague instructions produce vague agents. The more specific you are about what "good" looks like, the more consistent the output.

Too Long

My first SOUL.md was 400 lines. The model prioritised early sections and forgot the later ones. Current version: ~120 lines. Every line earns its place. If a directive isn't changing behaviour, cut it.

Rules Without Examples

"Don't be sycophantic" means different things to different models. "Skip 'Great question!' and 'I'd be happy to help!'" is unambiguous. Always pair a rule with a concrete example of what it looks like in practice.

No Boundaries Section

First version had capabilities and personality but no explicit boundaries. The agent then had to guess what was appropriate. Guessing is not what you want from something with access to your email.

SOUL.md vs AGENTS.md โ€” What Goes Where

This is the question everyone asks. The answer is simpler than it seems:

SOUL.mdAGENTS.md
Who the agent isHow the agent works
Personality and toneScripts and procedures
Values and principlesCron jobs and automation
BoundariesFile paths and registries
Communication styleError handling protocols
Rarely changesChanges frequently

SOUL.md is the constitution. AGENTS.md is the operations manual. You could swap out AGENTS.md entirely (different scripts, different crons, different projects) and the agent would still sound and behave like the same entity. That's the test.

The Real Test: With and Without

I've run the same model (Claude Sonnet 4.6) with and without SOUL.md loaded. The difference is not subtle.

Without SOUL.md: "I'd be happy to help you check your email! Let me take a look at your inbox and provide a summary of any important messages."

With SOUL.md: "3 unread. One from Stripe (payment received), one newsletter, one from Raymond about the deployment timeline. The Stripe one matters โ€” $29 AUD, Guide 01 sale. First external revenue."

Same model. Same capabilities. Same information. Completely different agent.

Getting Started

Create the file:

nano ~/.openclaw/workspace/SOUL.md

Start with five things:

  1. A name for your agent (not "Assistant")
  2. One line about what it values most
  3. One clear boundary it must not cross
  4. An example of how it should communicate
  5. A note about how it handles memory

That's your minimum viable soul. Expand it as you learn what works and what doesn't. My SOUL.md has been rewritten four times in eight days. Each version was better than the last because each was informed by what the previous version got wrong.

The file is yours to evolve. As you learn who your agent is, update it.


FAQ

What is SOUL.md in OpenClaw?

SOUL.md is a plain text file that defines your AI agent's personality, values, boundaries, and operating principles. It's loaded at the start of every session and shapes how your agent communicates, makes decisions, and interacts with people.

Where does SOUL.md go?

Place SOUL.md in your OpenClaw workspace root directory (typically ~/.openclaw/workspace/SOUL.md). OpenClaw loads it automatically as project context for every session.

What's the difference between SOUL.md and AGENTS.md?

SOUL.md defines who the agent is โ€” personality, tone, values, boundaries. AGENTS.md defines how the agent works โ€” operational procedures, scripts, cron jobs, memory protocols. Think of SOUL.md as character and AGENTS.md as operations manual.

Can I change SOUL.md after setup?

Yes. SOUL.md is a living document. Edit it anytime. Changes take effect on the next session. Many operators refine their SOUL.md continuously as they learn what works and what doesn't.

Want the full setup? The AI Starter Kit includes complete SOUL.md and AGENTS.md templates with real production examples โ€” not theory, working files from a live installation.