Prompt Guide
Everything in JARVIS is a prompt. The system prompt, the agent personalities, the skill instructions, the tone registers. They're all just files you edit.
The 4-layer prompt architecture
LAYER 1 System (SOUL.md) → Permanent identity, voice, rules
LAYER 2 Agent SOUL → Per-agent specialization
LAYER 3 Skill SKILL.md → Per-task playbook
LAYER 4 Memory + session context → Recent conversations, preferencesEditing rule of thumb
- Want JARVIS to behave differently every time → edit
SOUL.md - Want one agent to behave differently → edit
agents/<id>/SOUL.md - Want a specific TASK to follow a precise procedure → write a skill
- Want JARVIS to remember a fact → put it in
MEMORY.md
Editing SOUL.md
Your main system prompt lives at ~/.openclaw/workspace/SOUL.md.
Best practices
| Do | Don't |
|---|---|
| Use specific examples | Vague abstractions like "be witty" |
| Include negative examples ("Never say X") | Only positive examples |
| State preferences as identity | Indirect pleas ("please be direct") |
| Critical rules at TOP and BOTTOM | Rules buried in the middle |
| Test edge cases by Telegram-messaging | Assume the prompt works without testing |
Tone Registers
The kit ships with 5 tone registers. The model picks one per turn based on context.
- BUTLER, default, low-stakes, briefings
- TACTICAL, trading alerts, position events, capital moves
- DIAGNOSTIC, system incidents, failures
- OPERATOR, executing direct requests
- CONFIDANT, venting, frustrated, late-night messages
Anti-patterns
- Conflicting instructions. Pick one stance and commit.
- Negative-only instructions. Add what TO do alongside what NOT to do.
- Telling the model what it is. Strips personality. Replace with role-as-action.
- Apology lists. Trains the model to hedge constantly.
- 10-page SOUL.md. Cap at 3-5 pages. Push specifics to skills or memory.
Customizing the 14 agents
Each agent has its own SOUL at ~/.openclaw/agents/<id>/agent/SOUL.md.
Adding a new agent
mkdir -p ~/.openclaw/agents/medic/agent
cat > ~/.openclaw/agents/medic/agent/SOUL.md <<'EOF'
# SOUL.md, Medic
You are Medic. The on-call doctor for the system.
Triage, stabilize, escalate only if needed.
...
EOF
# Then register in openclaw.json → agents.list[]Hot-reloading
| Change | How JARVIS picks it up |
|---|---|
| Edit SOUL.md / MEMORY.md / agent SOULs | Next turn |
| Edit a skill | Next time the skill is invoked |
Edit openclaw.json | openclaw doctor --fix |
Iteration loop
- Use it for a week. Note moments where JARVIS felt off.
- Categorize. Was it voice? Decision? Missing context? Wrong priority?
- Edit the right layer. Voice issue → SOUL. Skill broke → that skill. Forgot a fact → MEMORY.
- Test the edit. Send 5 messages that exercise the change. Iterate.