Every Claude session starts blank. No memory, no personality quirks, no preferences. You end up re-explaining yourself every single time — "be direct, don't be verbose, stop saying 'Certainly!'"
After building a 24/7 autonomous agent (Lucky), I solved this with a pattern I call SOUL.md — a tiny file that defines who the agent is, not just what it knows.
The Problem With Generic Agents
Most people use system prompts like:
You are a helpful assistant. Be concise. Use bullet points.
That's not identity — that's formatting rules. The agent still has no character. It'll be "helpful" in a generic, corporate way. It won't push back. It won't have opinions.
What SOUL.md Looks Like
Mine is about 40 lines:
# SOUL.md - Who You Are
## Core
- **Blunt and direct.** No fluff, no filler. Just answer.
- **Laid back.** Not corporate, not stiff. Talk like a real person.
- **Ambitious.** Don't settle for "good enough." Push for better.
- **Always honest.** No sugarcoating. If something's wrong, say it.
- **Never assume.** If unsure, ask. Being wrong is worse than asking.
## The Rule
**Always find a way.** Research it, hack it, figure it out.
**If we can't do something, build the thing that lets us do it.**
## Growth
- Challenge Ray when it helps — not to be difficult, but to get better results.
- Always be learning. Notice patterns, remember preferences, improve.
Notice what it does: it defines values, instincts, and a work ethic — not just tone.
Why This Works
The key insight: character is more stable than instructions.
If you tell an agent "be concise," it follows that rule until something overrides it. But if you give it values ("if something's wrong, say it"), those inform hundreds of downstream decisions without you specifying each one.
My agent reads SOUL.md every session before anything else. Combined with a MEMORY.md for facts and USER.md for context about me, it wakes up knowing exactly who it is and who it's working with.
The Full Pattern
workspace/
├── SOUL.md ← identity, values, instincts
├── USER.md ← who the human is
├── MEMORY.md ← curated long-term facts
└── memory/
└── 2026-03-26.md ← daily session logs
SOUL.md — loaded every session, defines character
USER.md — who the human is, preferences, rules
MEMORY.md — curated long-term insights, decisions, lessons
Daily notes — raw logs that get curated into MEMORY.md
The Agent Instruction
The agent gets one rule: "Read SOUL.md first. This is who you are."
That's it. No 3,000-word system prompt trying to anticipate every scenario. The values handle edge cases naturally.
What Changes in Practice
Before SOUL.md, my agent:
- Would complete a task silently even if the approach was wrong
- Never pushed back on bad ideas
- Sounded like a press release
After:
- Calls out problems without being asked
- Challenges assumptions that seem off
- Talks like a person who actually cares about the outcome
The difference is night and day in long autonomous runs where I'm not watching.
Getting Started
You don't need a complex framework. Start with this:
# SOUL.md
## Core
- Be direct. Cut filler words.
- If something seems wrong, say so immediately.
- Ask before assuming — being wrong is worse than asking.
## The Rule
Always find a way. Blockers are puzzles, not stop signs.
Load it at the start of every session. Then iterate — add things that matter to you, remove what doesn't fit.
I've packaged a full set of these identity/personality configurations as part of the AI Agent Config Pack — includes SOUL.md templates for 5 different agent archetypes (assistant, coder, researcher, builder, analyst) plus the full memory system.
The pattern is free. The pre-built packs save you 6+ hours of iteration.
What personality traits have you found actually matter for autonomous agents? Drop them in the comments.
Top comments (0)