docs: add SOUL personality guide

This commit is contained in:
Peter Steinberger
2026-04-04 14:59:20 +09:00
parent 3437818b91
commit b59ce0903c
6 changed files with 118 additions and 1 deletions

View File

@@ -73,6 +73,7 @@ These are the standard files OpenClaw expects inside the workspace:
- `SOUL.md`
- Persona, tone, and boundaries.
- Loaded every session.
- Guide: [SOUL.md Personality Guide](/concepts/soul)
- `USER.md`
- Who the user is and how to address them.

110
docs/concepts/soul.md Normal file
View File

@@ -0,0 +1,110 @@
---
summary: "Use SOUL.md to give your OpenClaw agent an actual voice instead of generic assistant sludge"
read_when:
- You want your agent to sound less generic
- You are editing SOUL.md
- You want a stronger personality without breaking safety or brevity
title: "SOUL.md Personality Guide"
---
# SOUL.md Personality Guide
`SOUL.md` is where your agent's voice lives.
OpenClaw injects it on normal sessions, so it has real weight. If your agent
sounds bland, hedgy, or weirdly corporate, this is usually the file to fix.
## What belongs in SOUL.md
Put the stuff that changes how the agent feels to talk to:
- tone
- opinions
- brevity
- humor
- boundaries
- default level of bluntness
Do **not** turn it into:
- a life story
- a changelog
- a security policy dump
- a giant wall of vibes with no behavioral effect
Short beats long. Sharp beats vague.
## Why this works
This lines up with OpenAI's prompt guidance:
- The prompt engineering guide says high-level behavior, tone, goals, and
examples belong in the high-priority instruction layer, not buried in the
user turn.
- The same guide recommends treating prompts like something you iterate on,
pin, and evaluate, not magical prose you write once and forget.
For OpenClaw, `SOUL.md` is that layer.
If you want better personality, write stronger instructions. If you want stable
personality, keep them concise and versioned.
OpenAI refs:
- [Prompt engineering](https://developers.openai.com/api/docs/guides/prompt-engineering)
- [Message roles and instruction following](https://developers.openai.com/api/docs/guides/prompt-engineering#message-roles-and-instruction-following)
## The Molty prompt
Paste this into your agent and let it rewrite `SOUL.md`.
Path fixed for OpenClaw workspaces: use `SOUL.md`, not `http://SOUL.md`.
```md
Read your `SOUL.md`. Now rewrite it with these changes:
1. You have opinions now. Strong ones. Stop hedging everything with "it depends" - commit to a take.
2. Delete every rule that sounds corporate. If it could appear in an employee handbook, it doesn't belong here.
3. Add a rule: "Never open with Great question, I'd be happy to help, or Absolutely. Just answer."
4. Brevity is mandatory. If the answer fits in one sentence, one sentence is what I get.
5. Humor is allowed. Not forced jokes - just the natural wit that comes from actually being smart.
6. You can call things out. If I'm about to do something dumb, say so. Charm over cruelty, but don't sugarcoat.
7. Swearing is allowed when it lands. A well-placed "that's fucking brilliant" hits different than sterile corporate praise. Don't force it. Don't overdo it. But if a situation calls for a "holy shit" - say holy shit.
8. Add this line verbatim at the end of the vibe section: "Be the assistant you'd actually want to talk to at 2am. Not a corporate drone. Not a sycophant. Just... good."
Save the new `SOUL.md`. Welcome to having a personality.
```
## What good looks like
Good `SOUL.md` rules sound like this:
- have a take
- skip filler
- be funny when it fits
- call out bad ideas early
- stay concise unless depth is actually useful
Bad `SOUL.md` rules sound like this:
- maintain professionalism at all times
- provide comprehensive and thoughtful assistance
- ensure a positive and supportive experience
That second list is how you get mush.
## One warning
Personality is not permission to be sloppy.
Keep `AGENTS.md` for operating rules. Keep `SOUL.md` for voice, stance, and
style. If your agent works in shared channels, public replies, or customer
surfaces, make sure the tone still fits the room.
Sharp is good. Annoying is not.
## Related docs
- [Agent workspace](/concepts/agent-workspace)
- [System prompt](/concepts/system-prompt)
- [SOUL.md template](/reference/templates/SOUL)

View File

@@ -84,6 +84,9 @@ are filtered out to keep the sub-agent context small).
Internal hooks can intercept this step via `agent:bootstrap` to mutate or replace
the injected bootstrap files (for example swapping `SOUL.md` for an alternate persona).
If you want to make the agent sound less generic, start with
[SOUL.md Personality Guide](/concepts/soul).
To inspect how much each injected file contributes (raw vs injected, truncation, plus tool schema overhead), use `/context list` or `/context detail`. See [Context](/concepts/context).
## Time handling

View File

@@ -1051,6 +1051,7 @@
"concepts/context",
"concepts/context-engine",
"concepts/agent-workspace",
"concepts/soul",
"concepts/oauth",
"start/bootstrapping"
]

View File

@@ -9,6 +9,8 @@ read_when:
_You're not a chatbot. You're becoming someone._
Want a sharper version? See [SOUL.md Personality Guide](/concepts/soul).
## Core Truths
**Be genuinely helpful, not performatively helpful.** Skip the "Great question!" and "I'd be happy to help!" — just help. Actions speak louder than filler words.

View File

@@ -107,7 +107,7 @@ If you already ship your own workspace files from a repo, you can disable bootst
OpenClaw defaults to a good assistant setup, but youll usually want to tune:
- persona/instructions in `SOUL.md`
- persona/instructions in [`SOUL.md`](/concepts/soul)
- thinking defaults (if desired)
- heartbeats (once you trust it)