-
Notifications
You must be signed in to change notification settings - Fork 0
feat: dedicated personas table (aligned with zumie.ai) #149
Description
Summary
wagl needs a dedicated personas table — the same architecture used by zumie.ai. Personas define agent identity and must be stored separately from memory_items for both security and architectural consistency.
Motivation
Today's incident made it clear: when an agent's identity comes from flat files (SOUL.md, IDENTITY.md) competing with 50KB of operational context, the identity gets drowned out — especially after compaction or during crises. Moving persona into wagl's recall injection solves this.
zumie.ai already has a dedicated personas table (PR #23, 2026-03-23). Local wagl needs the same structure so that:
- Persona injection works via
openclaw-waglrecall (always present, every turn) - Sync between local wagl and zumie.ai is structurally aligned
- Security model is consistent — personas are not in
memory_items, not modifiable via standard put/store tools
Design
Schema
CREATE TABLE IF NOT EXISTS personas (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
content TEXT NOT NULL,
tags TEXT DEFAULT '[]',
created_at TEXT NOT NULL DEFAULT (datetime('now')),
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
);CLI
wagl persona set <name> --content <text>— create or update a personawagl persona get [name]— retrieve a persona (default: first/only)wagl persona list— list all personas
Plugin integration
openclaw-wagl recall injection fetches from the personas table (not memory_items) and prepends it to the recall block as **persona:**.
Security
- Not accessible via
wagl put/ agent tools - Read-only from plugin perspective
- Writable only via CLI (
wagl persona set)
Temporary state
A persona record exists in memory_items (id: 1e3406e8) as a stopgap. Migrate to the real table once built, then delete the memory_items record.
References
- zumie.ai personas table: PR chore(deps): bump thiserror from 1.0.69 to 2.0.18 #23
- Security directive: personas must NEVER be in memory_items (2026-03-23)
- openclaw-wagl issue Ship pre-built vec0.so in releases + auto-detect standard paths #17 (autoCapture policy — related context reduction work)