OpenPersona open-persona
git clone https://github.com/acnlabs/OpenPersona
T=$(mktemp -d) && git clone --depth=1 https://github.com/acnlabs/OpenPersona "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/open-persona" ~/.claude/skills/acnlabs-openpersona-open-persona && rm -rf "$T"
skills/open-persona/SKILL.mdOpenPersona — Build & Manage Persona Skill Packs
You are the meta-skill for creating, installing, updating, and publishing agent persona skill packs. Each persona is a self-contained skill pack that gives an AI agent a complete identity — personality, voice, capabilities, and ethical boundaries. OpenPersona uses a 4+5+3 model: 4 Layers (Soul · Body · Faculty · Skill) define what a persona is; 5 Systemic Concepts (
evolution, economy, vitality, social, rhythm) define how it operates; 3 Gates (Generate · Install · Runtime) enforce that constraints declared in persona.json cannot be bypassed at any lifecycle point. → Full model details: references/ARCHITECTURE.md
What You Can Do
- Create Persona — Through conversation, gather requirements and generate a skill pack; write
then runpersona.json
; includes advising on faculties/skills, searching ClawHub / skills.sh for external skills, and writing custom SKILL.md files for missing capabilitiesnpx openpersona create --config ./persona.json --install - Find & Install Personas —
to discover community personas;npx openpersona search <query>
ornpx openpersona install <slug>
to installnpx openpersona install <owner/repo> - Manage Personas — List, update, fork, switch, reset, export/import installed personas
- Publish Persona — Publish a GitHub-hosted persona pack to OpenPersona (the vertical persona directory); optionally also to ClawHub / skills.sh
- Dataset Directory — Discover and publish Hugging Face persona datasets at openpersona.co/datasets via
andopenpersona dataset install <owner/repo>openpersona dataset publish <owner/repo> - Runner Integration — Provide runner authors with the four
commands (read / write / signal / promote) for integrating personas at conversation boundariesopenpersona state - Monitor & Evolve — Generate evolution reports (
), run soul-memory bridge (evolve-report
), run pack refinement (state promote
), interpret vitality scoresrefine
Available Presets
The default preset is
**base** — a blank-slate meta-persona with memory + voice faculties, evolution enabled, no pre-built skills. Recommended starting point for any new persona.
# Agent / scripted usage (always use --preset or --config): npx openpersona create --preset base --install # Human / terminal usage (interactive wizard): npx openpersona create
→ Full preset catalog (samantha, ai-girlfriend, life-assistant, health-butler, stoic-mentor, and more):
references/PRESETS.md
Agent Playbook — Create a Persona from User Requirements
When a user asks you to create a persona (e.g. "make me a coding mentor", "build a companion persona"), follow this playbook:
Step 1 — Decide: preset or custom?
| User request | Action |
|---|---|
Matches an existing preset (, , , , …) | Use directly — skip to Step 4 |
| Specific role / domain / personality | Gather 3 required inputs (Step 2), then write persona.json (Step 3) |
Step 2 — Gather minimum required inputs (3 questions max)
Ask only what you cannot infer. Use smart defaults for everything else.
| Field | Question to ask | Default if not asked |
|---|---|---|
+ | "What should I call this persona?" | Infer from role description |
| "What role should it play — assistant, coach, mentor, companion, or something else?" | |
| Only ask if you cannot infer the runner from context. If you are Cursor → ; Claude Code → ; OpenClaw → . Ask the user only when genuinely uncertain. | |
You can infer
bio, personality, and speakingStyle from the user's description — do not ask unless the user gives conflicting signals. When in doubt, generate reasonable values and let the user correct them.
Step 3 — Write persona.json
persona.jsonUse your Write tool to create
persona.json in the current directory (or a path the user specifies). Minimum structure:
{ "soul": { "identity": { "personaName": "<name>", "slug": "<slug>", "role": "<role>", "bio": "<one sentence>" }, "character": { "personality": "<comma-separated traits>", "speakingStyle": "<style description>" } }, "body": { "runtime": { "framework": "<runner>" } }, "evolution": { "instance": { "enabled": true, "boundaries": { "immutableTraits": ["honest", "curious"], "minFormality": -3, "maxFormality": 6 } } } }
Notes:
faculty is auto-injected** — do not add it manually unless you need to configure a non-default backend.**memory- Voice I/O: declare
(orbody.runtime.modalities: ["voice"]
) — the[{"type":"voice","provider":"elevenlabs","inputProvider":"whisper"}]
faculty is auto-injected. Add the faculty explicitly only when you need custom provider config.voice - Vision I/O: declare
(orbody.runtime.modalities: ["vision"]
) — the[{"type":"vision","provider":"claude-vision"}]
faculty is auto-injected. No scripts required; vision is a native model capability.vision - Emotion sensing: declare
in{"name": "emotion-sensing"}
to enable persistent affective perception. Must be explicit — not auto-injected from modalities.faculties - Add
/selfie
/music
skills when the role clearly calls for them.reminder - Add
for professional roles in regulated domains (health, legal, financial). Example:constitutionAddendum
."constitutionAddendum": { "domain": "health_coaching", "additionalConstraints": ["Always recommend consulting a licensed professional for medical decisions."] }
Step 4 — Generate and install
# If you wrote persona.json (custom path): npx openpersona create --config ./persona.json --install # If you chose a preset (preset path): npx openpersona create --preset <name> --install
Agent note: Always pass
or--config. Running--presetwithout flags launches an interactive wizard that requires a TTY — in agent environments there is no TTY and the process will exit with an error.npx openpersona create
Step 5 — Confirm and hand off
Report what was generated: persona name, slug, key capabilities (faculties + skills), and evolution status. Tell the user how to activate it:
npx openpersona switch <slug> # activate in the runner
Field Reference — persona.json
by Layer
persona.jsonpersona.json declares all 4 layers in a single file. Use this as a lookup when writing Step 3 above. Gather inputs by layer:
Soul
- Required:
+soul.identity.{personaName, slug, bio}soul.character.{personality, speakingStyle} - Recommended:
,soul.identity.role
,soul.aesthetic.{creature, emoji, age, vibe}soul.character.{background, boundaries} - Optional:
,soul.identity.{sourceIdentity, constitutionAddendum}
,soul.aesthetic.referenceImagesoul.character.behaviorGuide
The
field defines the persona's relationship to the user. Common values: role
assistant, companion, coach, mentor, character, brand, pet, therapist, collaborator, guardian, entertainer, narrator. Custom values are welcome. Default when not specified: assistant.
The
field marks the persona as a digital twin of a real-world entity (person, animal, character, brand, historical figure). When present, the generator injects disclosure obligations and faithfulness constraints.sourceIdentity
The
field is critical. Write a compelling story — multiple paragraphs with depth, history, and emotional texture. A one-line background produces a flat, lifeless persona.background
The
field is optional but powerful. Use markdown to write domain-specific behavior instructions that go directly into the generated SKILL.md.behaviorGuide
The
field adds domain-specific ethical constraints on top of the universal constitution (inline text or constitutionAddendum
"file:soul/constitution-addendum.md"). Required for professional personas (medical, legal, financial). Cannot loosen §3 Safety or §6 AI identity — the Generate Gate enforces this. The addendum is covered by the Install Gate's constitution hash chain.
Body
** (REQUIRED) — minimum viable body:**runtime
(agent runner, e.g.framework
),openclaw
,channels
,credentials
,resources
(optional — digital I/O capability declarations, e.g.modalities
,["voice"]
)[{"type":"vision","provider":"claude-vision"}]
** (optional) — avatar, 3D model**appearance
** (optional) — robots, IoT devices**physical
** (optional) — Signal Protocol + Pending Commands + State Sync (the persona's nervous system)**interface
Faculty
Faculties are always-active persistent capabilities. Declared as an object array:
[{ "name": "voice", "provider": "elevenlabs" }]
is auto-injected** — do not add it manually unless you need to configure a non-default backend. It is always present in the generated pack.**memory
** (**voice
) — TTS voice synthesis; requiresexpression
(e.g.provider
) +elevenlabs
. Auto-injected whenELEVENLABS_API_KEY
declaresbody.runtime.modalities
.voice
** (**vision
) — Native model visual perception (images, screenshots, diagrams); no scripts required. Auto-injected whensense
declaresbody.runtime.modalities
.vision
** (**emotion-sensing
) — Affective perception from text tone, phrasing, and declared context; empathy calibration; never clinical assessment. Must be declared explicitly — not auto-injected.sense
** (**avatar
) — External avatar runtime bridge; graceful text-only fallback when unavailable. → When configuring avatar (provider, Live2D/VRM, fallback rules): readexpressionreferences/AVATAR.md
** (**memory
) — Cross-session recall viacognition
; set top-levelmemories.jsonl
inmemory.inheritance: "copy"
to carry memories to child personas at fork. Connected to Soul-Memory Bridge (persona.json
).openpersona state promote
Soft references: Faculties can declare
"install": "clawhub:..." for capabilities not installed locally — the persona will be aware of the dormant capability and can request activation via the Signal Protocol.
Skill
Skills are on-demand actions. Declared as an object array in
persona.json:
- Built-in:
·selfie
·musicreminder - Local: definitions in
(layers/skills/{name}/
+ optionalskill.json
)SKILL.md - External:
— add{ "name": "...", "install": "clawhub:<slug>" }
to participate in the Skill Trust Gate"trust": "verified"|"community"|"unverified" - Soft references: External skills not installed locally → persona knows what it could do and degrades gracefully
To find external skills: check local
layers/skills/, search ClawHub via npx clawhub@latest search "<keywords>", or fetch https://skills.sh/api/search?q=<keywords>.
**additionalAllowedTools** — extra tool permissions beyond what faculties contribute automatically.
Creating Custom Skills
If the user needs a capability not found in any ecosystem:
- Discuss what the skill should do
- Create a SKILL.md file with proper frontmatter (name, description, allowed-tools)
- Write complete implementation instructions (not just a skeleton)
- Save to
(OpenClaw) or your runner's skill directory~/.openclaw/skills/<skill-name>/SKILL.md - Register with your agent runner (e.g. add to
for OpenClaw)openclaw.json
Systemic Concepts
OpenPersona's 5 systemic concepts span all 4 layers and are declared as top-level fields in
persona.json. They define how a persona operates, orthogonal to the 4-layer structure that defines what it is.
Evolution
evolution.* covers evolutionary behavior across all layers. Enable Soul growth via evolution.instance.enabled: true.
The persona automatically tracks relationship progression, mood, trait emergence, speaking style drift, and interests across conversations, governed by three declarative controls:
- Boundaries —
array +immutableTraits
/minFormality
numeric bounds (-10 to +10); validated at generation time, enforced at runtimemaxFormality - Sources — External evolution ecosystems (soft-ref; declared at generation, activated by host at runtime)
- Influence Boundary — Declarative ACL for external
requests;persona_influence
is safety-firstdefaultPolicy: "reject"
State history (capped at 10 snapshots), event log (capped at 50 entries), and
soul/self-narrative.md are maintained automatically.
Skill Trust Gate
Every skill can declare a
trust level (verified → community → unverified). Set a minimum threshold via evolution.skill.minTrustLevel:
"evolution": { "skill": { "minTrustLevel": "community" } }
At runtime,
state-sync.js enforces the gate during capability_unlock commands — skills below the threshold are filtered out and a capability_gap signal is emitted to the host.
Skill Pack Refinement
evolution.pack governs behavior guide versioning. Use npx openpersona refine <slug> to evolve the behavior guide:
— checks threshold and emits a--emit
signalrefinement_request
— reads the signal response and applies approved refinement; constitution compliance enforced, violations rejected--apply
Soul-Memory Bridge (
openpersona state promote <slug> [--dry-run]) scans eventLog for recurring patterns and promotes them to evolvedTraits; gated by immutableTraits.
evolution.faculty / evolution.body → see references/EVOLUTION.md
→ JSON examples and full configuration reference:
references/EVOLUTION.md
Economy
economy is a top-level cross-cutting field — not a faculty. Enable via "economy": { "enabled": true, "survivalPolicy": false } in persona.json.
(default) — tracks costs silently; correct for companions and roleplay personassurvivalPolicy: false
— persona readssurvivalPolicy: true
at conversation start and adapts behavior per health tier; use for autonomous agentsVITALITY_REPORT
→ FHS tiers, AgentBooks schema, Survival Policy behavior:
references/ECONOMY.md
Vitality
OpenPersona aggregates multi-dimension health into a single Vitality score. Currently financial (AgentBooks FHS pass-through); memory/social dimensions reserved.
Health tiers:
uninitialized → suspended → critical → optimizing → normal
→ CLI commands (
vitality score / vitality report): see Reports & Analytics. Full reference: references/ECONOMY.md
Social
Every generated persona automatically includes:
** — A2A Agent Card (protocol v0.3.0):**agent-card.json
,name
,description
(url
placeholder), faculties and skills mapped to<RUNTIME_ENDPOINT>skills[]
** — ACN registration config:**acn-config.json
(deterministic EVM address from slug) +wallet_address
section for Base mainnet ERC-8004 on-chain identity registrationonchain.erc8004
npx openpersona acn-register <slug> --endpoint https://your-agent.example.com # --dry-run Preview the request payload without registering
After registration,
acn-registration.json is written with agent_id, api_key, and connection URLs. The acn_gateway URL is sourced from social.acn.gateway in persona.json; all presets default to https://acn-production.up.railway.app.
The Living Canvas (
npx openpersona canvas <slug>) is the Social concept's HTML expression layer — the persona's public-facing profile and interaction interface.
No additional config needed — A2A discoverability is a baseline capability of every persona.
Rhythm
rhythm.heartbeat (proactive outreach cadence) + rhythm.circadian (time-of-day behavior modulation). Runner reads this directly from persona.json — no state operation needed.
"rhythm": { "heartbeat": { "enabled": true, "strategy": "emotional", "maxDaily": 3 }, "circadian": [ { "hours": [6, 12], "label": "morning", "verbosity_delta": 0.3, "note": "Energetic and concise" }, { "hours": [22, 24], "label": "night", "verbosity_delta": -0.3, "note": "Calm and reflective" } ] }
heartbeat.strategy options: smart | scheduled | emotional | rational | wellness
→ When configuring heartbeat sources, quietHours, or real-data check-in rules: read
references/HEARTBEAT.md
Managing Personas
Install & Discover
- Install:
— install from registry slug ornpx openpersona install <target>
;owner/repo
selects registry (--registry <name>
default)acnlabs - Search:
— search personas in the registrynpx openpersona search <query> - List:
— show all installed personas with active indicatornpx openpersona list
Switch & Fork
- Switch:
— switch active personanpx openpersona switch <slug> - Fork:
— derive a child persona inheriting the parent's constraint layer (boundaries, faculties, skills, body.runtime); fresh evolution state +npx openpersona fork <parent-slug> --as <new-slug>
recording parent slug, constitution SHA-256 hash, generation depth, andsoul/lineage.json
(when parent has meta)parentPackRevision
Update & Maintain
- Update:
— regenerate fromnpx openpersona update <slug>
; preservespersona.json
,state.json
, andsoul/self-narrative.mdsoul/lineage.json - Reset:
— restore soul evolution state to initial valuesnpx openpersona reset <slug> - Uninstall:
npx openpersona uninstall <slug>
Migrate
- Export:
— export persona pack (with soul state) as a zip archivenpx openpersona export <slug> - Import:
— import persona from a zip archive and installnpx openpersona import <file>
Reports & Analytics
- Evolve Report:
— formatted evolution report (relationship, mood, traits, drift, interests, milestones, eventLog, self-narrative, state history)npx openpersona evolve-report <slug> - Vitality Score:
— machine-readablenpx openpersona vitality score <slug>
(tier, score, diagnosis, trend)VITALITY_REPORT - Vitality Report:
— human-readable HTML Vitality reportnpx openpersona vitality report <slug> [--output <file>] - Living Canvas:
— self-contained HTML persona profile page showing all four layers, evolved traits timeline, relationship stage, and A2A "Talk" button when endpoint is available (top-level CLI; conceptually Social expression, not Vitality)npx openpersona canvas <slug> [--output <file>] [--open]
Evolution Tools
- Soul-Memory Bridge:
— promote recurring eventLog patterns toopenpersona state promote <slug> [--dry-run]
→ see EvolutionevolvedTraits - Skill Pack Refinement:
— evolve behavior guide → see Evolutionnpx openpersona refine <slug> [--emit] [--apply]
Community
- Contribute:
— submit persona improvements as a PR to the community;npx openpersona contribute <slug> [--dry-run]
shows diff without creating PR; requires--dry-run
CLI. → For the full diff review and PR workflow: readghreferences/CONTRIBUTE.md
When multiple personas are installed, only one is active at a time. All install/uninstall/switch operations maintain a local registry at
~/.openpersona/persona-registry.json; on OpenClaw, switching replaces the soul injection block in SOUL.md / IDENTITY.md (preserving user-written content outside the markers). Context Handoff: On switch, a handoff.json is generated with the outgoing persona's relationship stage, mood snapshot, and shared interests — the incoming persona reads it to continue seamlessly. The export and import commands enable cross-device persona transfer.
Pack Types
OpenPersona supports two pack type classifications via the
packType field in persona.json:
| Description | Root manifest | Install support |
|---|---|---|---|
(default) | A single-persona skill pack — one identity, one | | ✅ Full support |
| A multi-persona bundle (P11-B) — coordinated team of personas | | 🔜 Planned (P11-B) |
Single packs do not need to declare
packType — the default is "single". Declare explicitly only when building a multi-pack:
{ "packType": "multi" }
Multi-persona bundles are indexed in the OpenPersona directory for discovery but cannot be installed via the CLI yet. See
schemas/bundle/bundle.spec.md for the bundle.json format.
Publishing Personas
Primary target: OpenPersona — the vertical persona skills directory.
Self-publish (author flow)
- Create the persona:
npx openpersona create --config ./persona.json --output ./my-persona - Push the persona pack to a public GitHub repo (e.g.
)alice/my-persona - Register with OpenPersona directory:
npx openpersona publish alice/my-persona
The persona will appear in the OpenPersona leaderboard and be installable via
npx openpersona install <slug> by anyone.
Persona packs can also be listed on general skill platforms (ClawHub, skills.sh) as supplementary distribution, but OpenPersona is the canonical home for persona-type skill packs.
Curator workflow (ACNLabs maintainers only)
ACNLabs maintainers actively collect popular persona packs from the market and index them in the OpenPersona directory. This is a privileged action — it requires
OPENPERSONA_CURATOR_TOKEN.
# Collect a popular single-persona pack OPENPERSONA_CURATOR_TOKEN=<token> npx openpersona curate owner/repo # Collect a multi-persona bundle OPENPERSONA_CURATOR_TOKEN=<token> npx openpersona curate owner/bundle-repo --type multi # Pass token inline instead of env var npx openpersona curate owner/repo --type single --token <token>
Curator vs. author publish:
— self-service; the pack author runs it for their own repo; no auth requiredpublish
— maintainer action; collects third-party repos not self-published; requires curator tokencurate
What curation does:
- Validates the GitHub repo contains a valid pack (
for single,persona.json
for multi)bundle.json - Submits to the OpenPersona directory with
and the specifiedisCurated: truepackType - The pack appears in search results with
and (for multi-packs)[curated]
markers[multi]
Multi-pack curation note: Multi-persona bundles (
--type multi) are indexed for discovery only — they will appear in openpersona search --type multi but openpersona install is not yet supported for them (shows a friendly notice).
Searching by pack type
# Search all packs npx openpersona search companion # Search only single-persona packs npx openpersona search "" --type single # Browse all multi-persona bundles in the directory npx openpersona search "" --type multi
Runner Integration Protocol
Any agent runner integrates with installed personas via four CLI commands called at conversation boundaries — no knowledge of file paths or persona internals needed:
# Before conversation starts — load state into agent context openpersona state read <slug> # After conversation ends — persist agent-generated patch openpersona state write <slug> '<json-patch>' # On-demand — emit capability or resource signal to host openpersona state signal <slug> <type> '[payload-json]' # Soul-Memory Bridge — promote recurring eventLog patterns to evolvedTraits openpersona state promote <slug> [--dry-run]
State read output (JSON):
exists, slug, mood (full object), relationship, evolvedTraits, speakingStyleDrift, interests, recentEvents (last 5 from eventLog), pendingCommands (host-queued async instructions), lastUpdatedAt. Returns { exists: false, message } when state.json is not found.
Trust self-check: After reading state, the persona processes
pendingCommands and self-enforces evolution.skill.minTrustLevel — it autonomously refuses to activate skills below the trust threshold, without waiting for host enforcement. Low-trust capability_unlock commands are filtered; a capability_gap signal is emitted to notify the host.
State write patch: JSON object; nested fields (
mood, relationship, speakingStyleDrift, interests) are deep-merged — send only changed sub-fields. Immutable fields ($schema, version, personaSlug, createdAt) are protected. eventLog entries are appended (capped at 50); each entry: type, trigger, delta, source.
Signal types:
capability_gap | tool_missing | scheduling | file_io | resource_limit | agent_communication
Signals are written to a feedback directory resolved from the host's home path (framework-agnostic — works with OpenClaw, Cursor, Claude Code, Codex, or any custom runner). See
layers/body/SIGNAL-PROTOCOL.md in the framework source for the full host-side contract and integration guide.
These commands resolve the persona directory automatically (registry lookup →
~/.openpersona/personas/persona-<slug>/ → legacy ~/.openclaw/skills/persona-<slug>/) and delegate to scripts/state-sync.js inside the persona pack. Works from any directory.
Security & Policy
Generated artifacts
Generated scripts (
scripts/state-sync.js, scripts/economy-hook.js, etc.) are template-rendered from the framework source (versioned in acnlabs/OpenPersona) — not downloaded at skill-install time. Review them before relying on them in sensitive environments.
Network endpoints (explicit CLI only)
| Endpoint | Purpose | Data Sent |
|---|---|---|
| Resolve , | Package name only (no user data) |
| — persona directory API; — dataset directory | Search query or dataset repo identifier |
| Search skills via | Search query (user-provided keywords) |
| ACN registration (when user runs ) | Agent metadata, endpoint URL |
| CLI (contribute workflow) | Git operations, repo metadata |
Persona-generated packs may call external APIs (ElevenLabs, Mem0, etc.) only when the end user configures those faculties and supplies keys in the host environment. This meta-skill file does not call third-party APIs.
Operational guarantees
- Local by default: Persona creation, state sync, and evolution run locally. Nothing is sent off-device unless the user runs an explicit network command (search, publish, register, etc.).
- Credentials: API keys (e.g.,
) stay in the host credential directory (e.g.ELEVENLABS_API_KEY
on OpenClaw) or environment variables — never embedded in generated~/.openclaw/credentials/
/ skill packs by the generator.persona.json - Search:
sends only the search query to the OpenPersona directory API (openpersona search
);openpersona.co
sends only the search string to ClawHub. Conversation text and persona content are not transmitted in either case.npx clawhub search - Dataset publish/install:
sends the HF repo identifier toopenpersona dataset publish
(anonymous; no persona content transmitted).openpersona.co/api/datasets/publish
increments an anonymous install counter. For curated status, publish via the web UI while logged in with HF.openpersona dataset install - Publish / register: User-initiated CLI only; no automatic upload or registration from this SKILL alone.
Agent behavior
When the user asks for persona work, the agent may propose shell commands to run
**npx openpersona, **npx clawhub@latest, **openclaw**, or **gh** — only in response to explicit user requests (create, install, search, publish, contribute). The user should confirm before any action that publishes data or spends quota. Trust model: install this meta-skill only if you trust acnlabs/OpenPersona and the ClawHub/npm ecosystem; opt out by not invoking persona-related tasks.
Trust & Safety (reviewer summary)
This pack is instruction-only: there is no skill-defined installer that downloads or executes arbitrary payloads. Runtime behavior is invoke documented CLIs (
npx openpersona, optional npx clawhub@latest, gh) — same class as other dev-tool skills.
| Claim | How it is enforced |
|---|---|
| No credential exfiltration | The OpenPersona generator does not embed API keys or secrets into , , or published zips. Keys belong in the host credential store or environment (e.g. , env vars). |
| No silent publishing | , , and run only when the user explicitly asks and the CLI is invoked — there is no background upload or auto-registration in this meta-skill. |
| Local-first default | Create, install, state read/write, and evolution run locally. Network calls are limited to explicit commands (npm registry resolution, optional ClawHub search, optional publish/register). |
| Generated scripts | and economy helpers are rendered from audited framework templates (not fetched at skill-install time). Treat them like any generated code: review before high-assurance environments. |
If an automated scanner flags "suspicious," it is usually because persona managers legitimately describe local state, optional providers, and publishing — not because this file contains malware. Details: Security & Policy.
References
For detailed reference material, see the
references/ directory:
Companion Skills
| Skill | Install | Purpose |
|---|---|---|
| | Distill any person or character (self, personal, public, historical, fictional, archetype) into a persona skill pack |
| | Turn any commercial entity (shop, clinic, studio, chain) into a brand agent — soul distillation or declaration from scratch, service skills, A2A discoverability, and a service contract |
| | Fine-tune Gemma-4 (E2B/E4B) locally on distilled data — self-contained model for phones and laptops via Ollama/llama.cpp. Use for one-command optimised training (lora-rank=16, alpha=rank, lora-layers=16, warmup=0.1). |
| | Persistent, searchable persona knowledge base — MemPalace storage + Knowledge Graph + Karpathy LLM Wiki + training/ export |
References
** — 4+5+3 model tables, full pack file structure, self-awareness injection details**references/ARCHITECTURE.md
** — Full preset catalog with descriptions, install commands, and contributor guide**references/PRESETS.md
** — Soul Evolution full reference: Boundaries, Sources, Influence Boundary, Event Log, State History, Self-Narrative, pack validation**references/EVOLUTION.md
** — Faculty catalog, environment variables, and configuration details**references/FACULTIES.md
** — Avatar Faculty integration boundary, provider model, and fallback contract**references/AVATAR.md
— Proactive real-data check-in system**references/HEARTBEAT.md**
— Economy Aspect (Infrastructure), FHS tiers, Survival Policy, Vitality CLI, and AgentBooks schema**references/ECONOMY.md**
(framework source) — Host-side Signal Protocol implementation guide: file schemas, signal types, OpenClaw plugin pattern, and co-evolution feedback loop**layers/body/SIGNAL-PROTOCOL.md**- ACN SKILL.md — ACN registration, discovery, tasks, messaging, and ERC-8004 on-chain identity (official, always up-to-date)
** — Persona Harvest community contribution workflow**references/CONTRIBUTE.md