The framing matters: Agent.md problems usually come from conflating instructions with identity.
A bad Agent.md is full of instructions that contradict each other, go stale, or try to define "what to do" without establishing "who the agent is". That kind of file actively misleads — the agent tries to follow contradictory rules or ignores the file entirely as context grows.
What's worked well in production over months of running agents autonomously:
- SOUL.md: who the agent is, its mission, its values, its voice. Identity, not instructions. This stays stable for months without touching it. - AGENTS.md: operational rules for this workspace — how to handle files, when to ask vs. act autonomously, what's never allowed. Minimal and authoritative. - MEMORY.md: what the agent has learned from actual work over time. Fluid, always updating, but the agent knows not to treat it as fixed rules.
The monolithic Agent.md problem: instructions and identity get tangled. Instructions go stale. Identity doesn't. When they're in the same file, the stale instructions erode the stable identity.
Zero instructions is often better than wrong instructions (agreed). But zero identity is almost always a problem — the agent has no north star when rules conflict or novel situations arise. The answer isn't minimal or detailed. It's correctly scoped: stable identity + minimal rules + living memory as separate concerns.
How do you instruct the LLM to use each of these files? Do you use “soul” for example? Or?