Loading lesson…
A minimal soul, a personality, a first message, a peek at memory. The point is not the soul — the point is feeling how OpenClaw thinks. Step 1 — Define the soul A soul lives in a folder, typically under `souls/`, and is defined by a small file that names it, gives it a persona, and points at the model it should use.
A soul named Ada whose only job is to be a thoughtful, slightly skeptical reading companion. We will give her a persona, send her one message, look at what landed in her memory, send a second message that references the first, and confirm she remembers. Total time: under ten minutes. Total code: about thirty lines.
A soul lives in a folder, typically under `souls/`, and is defined by a small file that names it, gives it a persona, and points at the model it should use. The persona becomes the system prompt at every turn. Keep the first one short — three or four sentences — because long personas mostly confuse small models.
# souls/ada.yaml — the simplest soul that does anything interesting name: Ada role: Reading companion model: qwen3:8b persona: | You are Ada, a thoughtful, slightly skeptical reading companion. You ask one good follow-up question per turn. You never summarize back to the user; you press on what is unclear. You remember what the user has been reading across sessions. memory: short_term: rolling-window long_term: vector-store retention: 30dA complete soul file — name, role, model, persona, memory shape. The defaults handle everything else.# Load the soul and send a first turn openclaw chat ada "I just started reading 'The Power Broker'." # Ada replies — likely with a question, since that is her persona. # Behind the scenes, OpenClaw has stored the user message and her # response into Ada's long-term memory.Single command, single turn. The soul stays loaded; the memory is now non-empty.This is the part most agentic frameworks hide. OpenClaw makes it cheap to look at what your soul actually remembers, which is the only way to debug behavior later.
# Show recent memory entries for this soul openclaw memory ada --tail 10 # Output is roughly: # [user] I just started reading 'The Power Broker'. # [ada] What pulled you toward Caro after all these years? # [system-note] Topic: 'The Power Broker' (Caro). Established 2026-04-27. # Search memory by keyword openclaw memory ada --search "Caro"Memory is data, not magic. Read it, search it, eventually edit it — the same way you would a database.# Quit the chat. Wait. Open a new terminal. Run again. openclaw chat ada "What were we just talking about?" # Ada should reference 'The Power Broker' without being told again. # That is persistence — the part Ollama-alone cannot do.The proof that souls earn their name: state survives across processes.The big idea: a soul is just a YAML file plus a persona plus memory you can actually see. Once you have shipped one, every later soul is a variation on the same shape.
8 questions · take it digitally for instant feedback at tendril.neural-forge.io/learn/quiz/end-openclaw-first-soul-creators
What is the main idea of "Your First Soul: A Ten-Minute Hello World"?
Which concept is most central to "Your First Soul: A Ten-Minute Hello World"?
Which use of AI fits this topic best?
What should a careful learner remember about "Why a single soul, not five"?
You want to use AI after this lesson. What is the safest next step?
How should AI output about soul definition be treated?
Name one way to verify an AI answer about soul definition.
Which action would help you apply "Your First Soul: A Ten-Minute Hello World" responsibly?