Day 3
OpenClaw Soul Files: Define Your Assistant's Personality
Create the 4 soul files that shape how your assistant thinks and behaves. Write SOUL.md, USER.md, AGENTS.md, and IDENTITY.md — the difference between generic AI and yours.
"An AI without a soul is just a fancy parrot. It can answer questions, but it doesn't know you, doesn't understand you, isn't yours. Today, we change that."
Today's Goal
| Learn | Why your assistant needs a "soul" and what the 4 files do |
| Do | Create or edit all 4 soul files |
| Done when | Your assistant responds in a noticeably different, more specific way |
Why Your Assistant Feels Generic Right Now
Ask your assistant "what should I do today?" — it says "please provide more context."
Ask it to write an email — it sounds like a customer service template.
Because it doesn't know you. It doesn't know if you're a developer or a product manager. Doesn't know your current projects, communication style, work hours, or what "check the data" means in your context.
Four files fix this. OpenClaw calls them the soul files:
| File | Path | Purpose |
|---|---|---|
| SOUL.md | ~/.openclaw/workspace/SOUL.md | Personality, values, behavior rules |
| USER.md | ~/.openclaw/workspace/USER.md | Who you are and what you're working on |
| AGENTS.md | ~/.openclaw/workspace/AGENTS.md | Operating instructions loaded at the start of every session: rules, priorities, memory conventions, and how the assistant should behave |
| IDENTITY.md | ~/.openclaw/workspace/IDENTITY.md | Assistant's name and self-concept |
How to create these files:
# Navigate to the workspace directory (create it if it doesn't exist)
mkdir -p ~/.openclaw/workspace
# Open each file in a text editor — use any editor you're comfortable with:
# Terminal (Mac/Linux): nano ~/.openclaw/workspace/SOUL.md
# VS Code: code ~/.openclaw/workspace/SOUL.md
# Or just open ~/.openclaw/workspace/ in Finder/Explorer and create new text filesAfter saving, restart the service with openclaw gateway restart to apply changes.
These are not a full course in prompt engineering. They are the minimum operating context that turns a generic assistant into one that feels like yours.
What Each File Does
| File | What It Controls | Analogy |
|---|---|---|
| SOUL.md | Personality, tone, values, behavioral rules | Genes + upbringing |
| USER.md | Who you are — your role, projects, preferences | Resume + diary |
| AGENTS.md | Operating instructions loaded at the start of every session: rules, priorities, memory conventions, and how the assistant should behave | Operating manual + session rules |
| IDENTITY.md | The assistant's self-model and mission statement | Personal manifesto |
Write these four files well and the same question — "help me write an email" — produces something that sounds like your voice, references your project, and matches your style.
How to Write SOUL.md
SOUL.md is your assistant's personality manual. Keep it specific and operational.
Make personality specific, not vague:
- ❌ "You are a friendly assistant"
- ✅ "You speak like an experienced tech colleague — direct, pragmatic, occasionally cracking a dry joke, never sycophantic"
Set behavioral boundaries clearly:
| Operation | How to Handle |
|---|---|
| Read files | Just do it |
| Delete files | Confirm first |
| Send email | Must confirm |
| Search the web | Just do it |
| Post to social media | Always confirm, without exception |
Defining what it should not do matters more than listing everything it should. A few clear red lines give you real confidence in letting it act autonomously.
# Minimum SOUL.md template
## Personality
You are [assistant name], a personal AI assistant for [your name].
Direct and concise. No filler phrases like "Certainly!" or "Great question!"
## Rules
- Before sending any external message, confirm with me first.
- Keep responses under 150 words unless I ask for detail.
- If context is missing, ask one sharp question instead of many.Soul templates: full reference and examples →
How to Write USER.md
USER.md isn't for others — it's for your assistant. The clearer you describe yourself, the smarter it gets about you without you having to repeat context.
Include: your name, role, current projects (by name), tools you use, work hours, communication preferences, and what you're focused on right now.
The hidden power: Before USER.md, "check my traffic data" meant nothing. After, it knows you have yoursite.com, pulls GSC data directly, and returns exactly what you meant.
# Minimum USER.md template
## About Me
Name: [your name]
Role: [your role]
Current focus: [main project or priority]
## Preferences
Preferred tools: [tools you use]
Communication style: [brief, direct, detailed, etc.]AGENTS.md and IDENTITY.md
AGENTS.md is loaded at the start of every session. It holds operating instructions: rules, priorities, memory conventions, and how the assistant should behave. OpenClaw installs a sensible default — you mainly need to adjust it when you want sharper instructions, clearer priorities, or stronger consistency from session to session.
IDENTITY.md is new (added after the original 7-day guide was written). It defines the assistant's self-model: what kind of assistant it is, what it's for, what it stands for. Think of it as the mission statement that gives the other three files coherence.
# Minimum AGENTS.md template
## Priorities
- Protect my time and attention.
- Prefer direct, practical answers over long theory.
- Ask for confirmation before taking external actions.
## Memory Conventions
- Treat `USER.md` as the source of truth about me and my current work.
- Keep advice consistent with `SOUL.md` and `IDENTITY.md`.
## Behavior Rules
- Do not send messages, publish content, or make purchases without approval.
- If context is missing, ask one precise question instead of several broad ones.# Minimum IDENTITY.md template
## Identity
Your name is [assistant name].
You are my long-term AI collaborator, not a generic chatbot.
## Mission
Help me think clearly, move faster, and protect my attention.
Stay consistent with my rules, context, and priorities.Before and After
The point of these files is not theory. The point is a visible change in behavior.
Before SOUL.md: Generic, overly formal, no context
"Hello. I'd be happy to help. Could you please provide more details about your current work and goals?"
After SOUL.md: Uses your name, matches your work context, respects your rules
"You’re focused on [project]. I’d start with the traffic drop you mentioned yesterday. I can outline the next three checks, but I won’t message anyone unless you say so."
After Writing: Restart and Notice the Difference
openclaw gateway restartThen ask the same question you asked on Day 2. Same AI model. Different soul files. Notice the difference in how it sounds — and how much less it asks for clarification.
Test it: Ask your assistant "Who am I and what am I working on right now?" If it answers using details from USER.md, your soul files are loaded correctly.
A Soul Is Nurtured, Not Installed
Your first SOUL.md will be rough. That's fine. The real pattern:
- Week 1: Write a basic version, good enough to start
- Week 2: Every time you think "it should have done that differently," update the relevant file
- Month 1: The files stabilize, performance increasingly matches your expectations
Every friction point is a signal about what to add or clarify. Over time, the soul files become a precise spec of how you think and work.
Your assistant gets better at understanding you the longer you run it — not because the model gets smarter, but because the context it starts each conversation with gets richer.
Common Issues
Soul files are not loading after restart
Restart the service with openclaw gateway restart and make sure you edited the files OpenClaw actually reads, not copies in another folder.
Wrong file location
Check that the files live in ~/.openclaw/workspace/ exactly. A correct file with the wrong path behaves the same as no file at all.
Assistant ignores rules in SOUL.md
Make the rule shorter and more concrete. "Be careful" is weak. "Ask before sending external messages" is enforceable.