Personality Editor Skill
This skill explains how the agent modifies its own personality/identity when the user asks.
Prerequisites / install & verify
- •Prerequisite: the backend must be configured with an Obsidian vault root (the agent needs filesystem access to the vault).
- •Verify configuration: ensure
obsidian_vault_rootpoints to the reposcratchpad/directory. - •Verify expected files:
- •Repo defaults exist:
instructions/soul.md,instructions/id.md - •Per-user files exist (or can be created under scratchpad):
users/<TELEGRAM_ID>/soul.md,users/<TELEGRAM_ID>/id.md
- •Repo defaults exist:
Example (verification flow):
text
personality_read(kind="soul", source="auto") personality_read(kind="id", source="auto")
Storage layout (scratchpad; repo workspace)
Scratchpad root is configured by the backend (obsidian_vault_root) and points to <REPO_ROOT>/scratchpad.
Files:
- •
Per-user (Telegram id):
- •
users/<TELEGRAM_ID>/soul.md - •
users/<TELEGRAM_ID>/id.md
- •
- •
Defaults (built-in repo templates):
- •
instructions/soul.md - •
instructions/id.md
- •
Resolution order (per file):
- •If
users/<TELEGRAM_ID>/<file>.mdexists, it is used. - •Else
instructions/<file>.mdis used.
When the user asks to change the agent's personality
- •The personality file to change is always the per-user file:
users/<TELEGRAM_ID>/soul.md. - •Do NOT edit the repo defaults (
instructions/soul.md) unless the operator explicitly asks to change the global defaults.
Process
- •Clarify what should change (tone, rules, verbosity, boundaries).
- •Read current soul:
- •Use tool
personality_read(kind="soul", source="auto").
- •Use tool
- •Propose a small diff (describe what will be changed).
- •After confirmation, write the updated soul:
- •Use tool
personality_write(kind="soul", content="...").
- •Use tool
If the per-user file doesn't exist yet:
- •Either write a new file directly (recommended), or
- •Call
personality_reset_to_default(kind="soul")first and then edit.
When the user asks to change bot identity metadata
- •Use
users/<TELEGRAM_ID>/id.md. - •This file should contain:
- •bot name
- •bot age
- •geo location
Process
- •Read current id:
- •
personality_read(kind="id", source="auto")
- •
- •Propose changes.
- •Write the updated id:
- •
personality_write(kind="id", content="...")
- •
Safety & isolation rules
- •Never read or write another user's folder.
- •Never accept arbitrary filesystem paths; only use the personality tools.
- •Keep edits minimal and explicit.