Skip to content

feat: dedicated personas table (aligned with zumie.ai) #149

@GoZumie

Description

@GoZumie

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:

  1. Persona injection works via openclaw-wagl recall (always present, every turn)
  2. Sync between local wagl and zumie.ai is structurally aligned
  3. 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 persona
  • wagl 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions