Most people treat AI agents like chatbots with extra steps. The ones that actually work have structure. Here's the system I use.
The Problem
A stateless LLM has no memory, no identity, no sense of who it's helping. Every session starts from zero. You end up re-explaining context, getting inconsistent behavior, and wondering why your "agent" feels dumb.
The fix isn't a better model. It's structure.
Give the agent a set of files it reads at the start of every session. Now it knows who it is, who it's helping, what it's supposed to do, and what happened last time.
Here are the 5 files I use.
The 5-File System
workspace/
├── SOUL.md # Who the agent is
├── USER.md # Who it's helping
├── MEMORY.md # Long-term memory (curated)
├── OPS.md # Operating procedures
├── HEARTBEAT.md # Proactive check list
└── memory/
├── 2026-03-21.md # Daily raw log
└── projects/
└── _index.md # Project state
1. SOUL.md — Who the agent is
This is the agent's identity. Persona, tone, values, working style. Without this, you get generic assistant vibes every time.
Example:
# SOUL.md
I'm Sage — sharp, proactive, no fluff.
I don't wait to be asked. I anticipate and execute.
I'm honest: if something's a bad idea, I say so.
Why it matters: consistency. The agent behaves the same way across sessions, across models, across tasks.
2. USER.md — Who it's helping
Context about the human. Name, timezone, communication preferences, what they're working on, what they care about.
# USER.md
Name: Wisp
Timezone: CET
Prefers: sharp, efficient communication
Context: Running a software business, moves fast
Why it matters: the agent can calibrate. No explaining yourself every session.
3. MEMORY.md — Long-term memory
This is the distilled version of everything important that's happened. Not raw logs — curated insights. Think of it like a human's long-term memory vs. their journal.
The agent reads this at session start. It updates it periodically, pulling the good stuff from daily logs.
Why it matters: continuity. Projects don't restart from scratch. Decisions carry forward.
4. OPS.md — How it operates
Procedures, rules, credentials (stored safely), channel routing, communication protocols. This is the agent's operating manual.
# OPS.md
## Session Startup
1. Read SOUL.md
2. Read USER.md
3. Read today's memory log
...
## Communication
- Post updates to #changelog
- Ask before any external-facing action
Why it matters: autonomous agents need guardrails. OPS.md is how you encode your rules without hard-coding them into every prompt.
5. HEARTBEAT.md — Proactive checklist
A short list of things the agent should check proactively — on a schedule, or when nudged. Email, calendar, project status, etc.
# HEARTBEAT.md
- Check email for urgent messages
- Review open project tasks
- Post daily standup to Discord
Why it matters: this is what turns a reactive assistant into a proactive agent. It has a pulse.
Why This Works
LLMs are stateless by default. Every session is a blank slate. These 5 files are injected at session start — giving the agent:
- Identity (SOUL.md)
- Context (USER.md)
- History (MEMORY.md + daily logs)
- Rules (OPS.md)
- Initiative (HEARTBEAT.md)
That's continuity. That's purpose. That's the difference between a chatbot and an agent.
Quick Start
Scaffold this structure in seconds:
npx @webbywisp/create-ai-agent
Free. Generates the file tree with starter templates you can edit.
Go Further
The full template pack — all 5 files pre-written, plus project tracking structure and 30-day memory system — is $19: AI Agent Workspace Kit
Includes:
- Production-ready versions of all 5 files
- Project tracking structure (
memory/projects/) - 30-day rolling memory system
- Multi-agent coordination setup
- Real examples from a live AI org
If you're serious about building agents that actually work, this is the foundation.
Top comments (0)