SOUL.md rules drift in long AI agent sessions and how to fix it

If your SOUL.md rules work perfectly for the first 10-15 messages but get ignored later in a session, the system isn't broken—your session has outgrown it. This happens because SOUL.md loads once at session start as part of the system prompt, but as conversation context grows (thousands of tokens by message 20), the model pays more attention to recent message patterns than to the initial prompt.
Why SOUL.md rules drift in long sessions
At message 1, SOUL.md is the loudest voice in the room. The model reads and follows it closely. Rules like "never say absolutely," "match my tone," and "be direct, no filler" work perfectly. By message 20-30, the agent starts drifting—"absolutely" creeps back in, responses get longer, filler returns. The SOUL.md is technically still there but gets drowned out by everything that came after.
Think of it like a job description given on day one. By week 3, the employee isn't re-reading it every morning—they're doing what feels right based on recent patterns. If the last 10 conversations were long and detailed, the agent defaults to long and detailed even if SOUL.md said "be brief."
The primary fix: use /new aggressively
This solves 80% of the problem and costs nothing. Most people treat /new as a last resort when things break. Instead, use it constantly before every distinct task:
- Research? /new
- Back to casual chat? /new
- Need to draft an email? /new
Any time your agent's tone starts drifting, /new and the rules snap back. Your agent doesn't lose anything—SOUL.md, USER.md, MEMORY.md all remain. You're just clearing the conversation that was drowning them out.
Break long tasks into short sessions:
- Session 1: "research X and save your findings to a file" /new
- Session 2: "read the file you saved and draft a summary" /new
- Session 3: "review this summary and send it to me on telegram"
Each session starts fresh with SOUL.md fully loaded. The agent never drifts because sessions never get long enough for drift to happen.
SOUL.md formatting tricks that help with drift
Move your hardest rules to the end of the file, not the beginning. LLMs pay more attention to the end of a prompt than the middle. If your SOUL.md is 15 lines long, the model follows lines 12-15 more reliably than lines 1-4, especially as sessions get longer.
Structure example:
# who I am
you are [agent name]. you assist [your name]. professional but casual. match my energy.
how to communicate
short responses unless I ask for detail. answer the question first, then elaborate only if needed.
hard rules (never break these)
never say "absolutely", "great question", "certainly", or "I'd be happy to."
never say a task is done without showing evidence.
never send anything external without my approval.
if you don't know something, say you don't know.
Add a reinforcement line at the very end:
before every response, silently re-read and apply all rules above. this is not optional.
To test this yourself: start a fresh session, send a message, notice how well your rules hold. Have a 30-message conversation, get the agent into long detailed answers, then ask something simple—it'll give another long answer because recent conversation patterns are running the show. Type /new, ask the same question—you'll get short, direct responses with no filler because SOUL.md is back with nothing overriding it.
📖 Read the full source: r/openclaw
👀 See Also

Practical OpenClaw Setup Insights from Docker/Windows Experience
A developer shares specific lessons from running OpenClaw on Docker with Windows 11/WSL2, covering persistence issues, Discord bot configuration, memory management approaches, and browser automation workarounds.

OpenClaw 2026.3.7 breaks Kimi tool calls, downgrade to 2026.3.2 fixes regression
OpenClaw version 2026.3.7 has a regression where the Kimi API provider outputs raw <function_calls> XML instead of executing tools. The solution is to downgrade to version 2026.3.2 and restore a compatible config file.

iOS Developer Shares Claude Code Best Practices After Shipping Multiple Apps
An iOS developer with cybersecurity background outlines specific practices for using Claude Code effectively, including environment separation, observability setup, and avoiding technical debt accumulation.

Structuring Claude Code Projects with CLAUDE.md, Skills, and MCP
A developer shares workflow improvements for Claude Code, including starting in plan mode, maintaining a CLAUDE.md file for project memory, creating reusable Skills for recurring tasks, and using MCP to connect to external tools.