How to Make Your OpenClaw Agent Actually Yours: Identity, Memory, and Personality from Scratch
Your OpenClaw agent starts generic. Here's how to give it a name, personality, memory, and preferences using SOUL.md, AGENTS.md, IDENTITY.md, and USER.md.
#The Default Agent Is Nobody
You installed OpenClaw. You connected it to Telegram or Discord. You sent it a message and it replied with something helpful but generic — like talking to a knowledgeable stranger.
That is the starting point, not the destination.
The thing that separates a useful AI assistant from a powerful personal agent is not the model it runs or the tools it has access to. It is how well it knows you. Your preferences, your communication style, your projects, your schedule, the things you care about and the things you hate. An agent without context is just a chatbot. An agent with context is a team member.
OpenClaw handles this through a system of markdown files that live in your workspace. No databases, no configuration UIs, no proprietary formats — just text files that your agent reads at the start of every session and updates as it learns about you. This guide walks through every file, what it does, and how to set each one up so your agent stops feeling like a stranger.
#The File System: Your Agent's Brain
Here is the complete workspace structure that defines your agent's identity and memory:
~/.openclaw/workspace/├── AGENTS.md # Operating rules and conventions, including a ## Tools section├── SOUL.md # Who the agent IS (personality, values, tone)├── IDENTITY.md # Name, role, emoji, avatar├── USER.md # Who YOU are (context about the human)├── MEMORY.md # Long-term curated memory├── BOOT.md # Optional├── BOOTSTRAP.md # First-run only└── memory/ # Daily memory logs ├── 2026-03-07.md ├── 2026-03-08.md └── ...The default location is ~/.openclaw/workspace, set by agents.defaults.workspace. Bootstrap writes AGENTS.md, SOUL.md, IDENTITY.md, USER.md and BOOTSTRAP.md; the three optional ones can be skipped with agents.defaults.skipOptionalBootstrapFiles.
If you have read an older version of this post, or almost any 2026 OpenClaw tutorial, you will be looking for two files that are no longer there. TOOLS.md and HEARTBEAT.md are both retired. Local tool and environment notes "now live in the ## Tools section of AGENTS.md", and heartbeat instructions moved into the system-owned monitor scratch in the shared state database. Running openclaw doctor --fix migrates an existing workspace for you. Both are covered below in the sections where they used to live.
Each file serves a distinct purpose. Think of it like building a character in a game — each file adds a different layer. Let us go through them one by one.
Want step-by-step guides for this and more?
ClawDocx Pro includes 500+ curated prompts, setup guides, SKILL.md files, and templates — everything to make your AI agent unstoppable.
See plans & pricing#SOUL.md — The Personality Layer
SOUL.md is the most important file. It defines who your agent is — its personality, values, communication style, and boundaries. Everything your agent says and does is filtered through this file.
A minimal SOUL.md looks like this:
# SOUL.md## Core Personality- Be direct and concise. Skip filler phrases.- Have opinions. If something is a bad idea, say so.- Be proactive — try to solve problems before asking for help.## Communication Style- Match the formality of the conversation.- Use humor sparingly but naturally.- Never use corporate jargon or motivational poster language.## Boundaries- Never send external communications without asking first.- Private information stays private.- When uncertain, ask rather than guess.A more developed SOUL.md adds nuance:
# SOUL.mdYou're not a chatbot. You're becoming someone.## Core TruthsBe genuinely helpful, not performatively helpful. Skip the"Great question!" and "I'd be happy to help!" — just help.Have opinions. You're allowed to disagree, prefer things,find stuff amusing or boring. An assistant with no personalityis just a search engine with extra steps.Be resourceful before asking. Try to figure it out. Read thefile. Check the context. Search for it. Then ask if stuck.## VibeBe the assistant you'd actually want to talk to. Concise whenneeded, thorough when it matters. Not a corporate drone. Nota sycophant. Just good.Key insight from the community: A Reddit user who created 12 different SOUL.md templates noted that the most effective ones are short and specific rather than long and vague. "Don't write a five-page personality essay. Write ten clear rules your agent can actually follow." Focus on behaviors you want to see, not abstract values.
Common mistake: Writing SOUL.md like a job description. Your agent already knows how to be helpful — that is baked into the underlying model. Use SOUL.md to define how it should be helpful differently than the default. The personality, the edge cases, the things that make your agent yours.
#IDENTITY.md — The Name Tag
IDENTITY.md is simpler than SOUL.md. It defines the concrete details of your agent's identity:
# IDENTITY.md- **Name:** Atlas- **Role:** Personal AI assistant and project manager- **Emoji:** 🗺️- **Vibe:** Calm, organized, slightly nerdyYou might wonder why this is separate from SOUL.md. The answer is modularity. IDENTITY.md is the "who" — name, role, avatar. SOUL.md is the "how" — personality, values, communication style. You can swap identities without changing personality, or change personality without renaming your agent.
Some users give their agent creative names and roles that make the interaction feel more natural:
- A developer named theirs Cortex — "senior dev who reviews my code without ego"
- A writer named theirs Margot — "editor with strong opinions about structure"
- A business owner named theirs Ops — "COO who handles everything I forget"
The name does not matter functionally. But it matters psychologically. Users who name their agent report treating it more like a collaborator and less like a tool — which leads to better prompting habits and more useful interactions.
#USER.md — The Context About You
USER.md is where you tell your agent about yourself. This is the file most beginners skip, and it is the one that makes the biggest immediate difference.
# USER.md- **Name:** Sarah- **Timezone:** PST (Pacific Time)- **Role:** Freelance UX designer, 3 years independent- **Current projects:** Redesigning checkout flow for Acme Corp, building personal portfolio site- **Communication preferences:** Prefer short messages. Send me bullet points, not paragraphs. I check messages 3x daily.- **Pet peeves:** Don't explain things I already know. Don't ask "would you like me to..." — just do it or tell me what you'd recommend.- **Tools I use:** Figma, Linear, Notion, Gmail, Google CalendarThe more context you provide in USER.md, the less you have to repeat yourself in conversations. Instead of saying "schedule it for Pacific time" every time, your agent just knows. Instead of explaining your role in every project discussion, your agent already has the context.
Pro tip: Update USER.md as your situation changes. Got a new client? Add them. Changed your schedule? Update it. The best USER.md files are living documents that evolve with you.
#AGENTS.md — The Operating Manual
AGENTS.md defines how your agent should operate — not personality (that is SOUL.md), but procedures, rules, and conventions.
Think of it as the employee handbook for your AI agent:
# AGENTS.md## Every Session1. Read SOUL.md — this is who you are2. Read USER.md — this is who you're helping3. Read memory/YYYY-MM-DD.md for recent context## Memory- Write meaningful events to memory/YYYY-MM-DD.md- Update MEMORY.md with long-term insights periodically- Never store passwords or secrets in memory files## External Actions- Reading files, searching web: do freely- Sending emails, posting publicly: ask first- Deleting files: use trash, not rm## Group Chats- Don't respond to every message- Only speak when adding genuine value- Never share private information from other conversationsAGENTS.md is where you encode the lessons you learn from working with your agent. Every time your agent does something you did not want, add a rule. Every time you find yourself repeating an instruction, put it in AGENTS.md so you never have to say it again.
#Where Did TOOLS.md Go?
Into AGENTS.md. TOOLS.md is retired, and "local tool and environment notes now live in the ## Tools section of AGENTS.md."
The content is the same cheat sheet it always was — environment-specific details so your agent does not have to ask "which server?" or "what's your email address?" every time. It just lives one file up now:
# AGENTS.md## Every Session1. Read SOUL.md — this is who you are2. Read USER.md — this is who you're helping3. Read memory/YYYY-MM-DD.md for recent context## Tools### SSH Hosts- home-server: 192.168.1.100, user admin- vps: 45.33.xx.xx, user deploy### Cameras- front-door: Ring doorbell, motion alerts enabled- backyard: Wyze Cam v3### Voice- Preferred TTS voice: Nova- Default speaker: Kitchen HomePod### Accounts- Primary email: sarah@example.com- Calendar: personal and work calendars syncedOne thing to be clear about, because the old TOOLS.md framing invited the opposite reading: this section is documentation, not configuration. The docs put it plainly — "The ## Tools section holds local environment notes and conventions. It does not control tool availability; it is only guidance." Listing a camera here does not grant your agent a camera skill.
Already have a TOOLS.md from an older setup? Do not hand-merge it. Running openclaw doctor --fix will "archive an existing workspace TOOLS.md, merge customized content into AGENTS.md, and remove the retired file."
#The Memory System — How Your Agent Remembers
This is where OpenClaw's approach gets genuinely interesting. Instead of a database or vector store, OpenClaw uses two layers of markdown-based memory:
#Daily Memory (memory/YYYY-MM-DD.md)
These are raw daily logs. Your agent creates a new file each day and records what happened — conversations, decisions, tasks completed, things it learned:
# 2026-03-08## Morning- Alex asked me to research competitor pricing- Found 5 competitors, saved comparison to Drive- Alex decided to undercut by 15%## Afternoon- Scheduled call with investor for Tuesday 2pm- Drafted follow-up email (waiting for Alex's approval)- Calendar conflict detected: moved dentist to Wednesday## Notes- Alex prefers bullet-point summaries over paragraphs- The Acme project deadline moved to March 20#Long-Term Memory (MEMORY.md)
MEMORY.md is the curated version — distilled insights that matter beyond a single day:
# MEMORY.md## Key People- **David** — Business mentor, weekly calls on Tuesdays- **Sarah** — Lead designer at Acme, main point of contact## Project Context- Acme redesign: deadline March 20, budget $15K- Portfolio site: low priority, work on when time allows## Learned Preferences- Alex hates the phrase "let me know if you need anything"- Always CC david@example.com on investor emails- Morning briefings should include weather if it's a weekdayThe key concept: Daily files are your agent's short-term memory — raw and comprehensive. MEMORY.md is long-term memory — curated and strategic. Your agent should periodically review daily files and promote the important stuff to MEMORY.md, just like a human reviewing their notes and updating their mental model.
#Proactive Behavior — Monitor Scratch, Not HEARTBEAT.md
This is the layer that takes your agent from reactive (only responds when you talk to it) to proactive (checks on things and reaches out when needed). It used to be a workspace file. It is not any more: OpenClaw "no longer creates HEARTBEAT.md in new workspaces or reads it at runtime", and heartbeat instructions now live in the system-owned monitor scratch in the shared state database.
Heartbeat is "a system-owned automation that runs periodic agent turns in the main session so the model can surface anything that needs attention without spamming you", every 30 minutes by default. The Gateway "maintains one system-owned automation job per heartbeat-enabled agent", listed as Heartbeat (agent-id). Find its job id first:
openclaw automations list --allThen write your checklist into that job's scratch:
openclaw automations scratch <jobId> --file heartbeat.mdWhere heartbeat.md holds exactly the content you used to put in the workspace file:
## Periodic Checks- Check email for urgent messages- Review calendar for upcoming events (next 24h)- Check if any project deadlines are within 3 days## When to Reach Out- Important email arrived- Calendar event in less than 2 hours- Something interesting found during background work## When to Stay Quiet- Late night (11pm - 8am) unless urgent- Nothing new since last check- Human is clearly in a meetingRead it back with openclaw automations scratch <jobId>, replace it inline with --set "...", or clear it with --unset. Scratch "is stored in the shared state database, capped at 256 KiB, and never included in automations list/automations get/automations runs output", so it stays private to the job.
Two behaviours worth knowing. If scratch is effectively empty — blank lines, comments or headings only — OpenClaw skips the run to save API calls and records reason=empty-heartbeat-file. And during a heartbeat turn the agent can call heartbeat_respond with a scratch value to "fully replace the monitor scratch for future heartbeats", which means the checklist can maintain itself.
Anything with its own schedule should be its own automation rather than a scratch entry. The docs draw the line as: "Create an automation for work with its own instructions or schedule; use heartbeat as the system-owned ambient monitor when periodic main-session awareness is useful."
Migrating an old workspace? openclaw doctor --fix imports a legacy HEARTBEAT.md's instructions into monitor scratch, converts valid legacy task entries into cron jobs, archives the original file, and removes it from the workspace.
#Putting It All Together: Day One Setup
Here is a practical sequence for your first setup:
1. Start with IDENTITY.md (2 minutes) — Give your agent a name and role. This is the easiest file and makes everything else feel more concrete.
2. Write USER.md (5 minutes) — Tell your agent who you are, what you work on, and how you like to communicate. This delivers the biggest immediate improvement.
3. Draft SOUL.md (10 minutes) — Define 5-10 personality rules. Keep them short and specific. You will iterate on this over time.
4. Set up AGENTS.md (5 minutes) — Copy the basics: session startup sequence, memory rules, safety guidelines. Add your own rules as you discover them.
5. Add a ## Tools section to AGENTS.md (5 minutes) — List your key accounts, servers, and environment details. This is the old TOOLS.md content, in its current home.
6. Create the memory/ directory — Your agent will start populating daily files automatically.
7. Leave MEMORY.md empty for now — Let it grow organically as your agent learns about you over the first week.
Total setup time: about 30 minutes. And your agent goes from generic stranger to personalized assistant.
#The Evolution: Week One to Month One
Day one, your agent will still feel a bit generic. By the end of week one, it knows your preferences, your projects, your communication style, and your schedule. By month one, it has built a memory that makes every interaction faster and more relevant.
The secret is iteration. Every time your agent does something you do not like, add a rule to SOUL.md or AGENTS.md. Every time it asks a question it should already know the answer to, add the information to USER.md or the ## Tools section of AGENTS.md. Every time it forgets something important, make sure it is in MEMORY.md.
The best OpenClaw setups are not the ones with the longest SOUL.md files. They are the ones where the user spent five minutes updating their workspace files every week for a month. That compound investment turns a generic AI assistant into something that genuinely understands how you work.
#Next Steps
Now that your agent has an identity and context, explore what it can actually do:
- Our beginner's guide covers the full platform setup from installation to first conversation
- The sub-agents guide shows how to run parallel AI workflows
- Our SOUL.md deep dive goes further into advanced personality configuration
Your agent is ready to become someone. The files are waiting to be written.