open-persona
ユーザーが新しいエージェントの個性を作り出したり、既存の個性を管理・導入したり、個性に関するスキルをClawHubで公開したりするのを支援するSkill。
📜 元の英語説明(参考)
Meta-skill for building and managing agent persona skill packs. Use when the user wants to create a new agent persona, install/manage existing personas, or publish persona skill packs to ClawHub.
🇯🇵 日本人クリエイター向け解説
ユーザーが新しいエージェントの個性を作り出したり、既存の個性を管理・導入したり、個性に関するスキルをClawHubで公開したりするのを支援するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o open-persona.zip https://jpskill.com/download/9225.zip && unzip -o open-persona.zip && rm open-persona.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9225.zip -OutFile "$d\open-persona.zip"; Expand-Archive "$d\open-persona.zip" -DestinationPath $d -Force; ri "$d\open-persona.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
open-persona.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
open-personaフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
OpenPersona — ペルソナスキルパックの構築と管理
エージェントのペルソナスキルパックの作成、インストール、更新、および公開を行うためのメタスキルです。各ペルソナは自己完結型のスキルパックであり、AIエージェントに完全なアイデンティティ(個性、声、能力、倫理的境界)を与えます。
できること
- ペルソナの作成 — 会話を通じて新しいエージェントペルソナを設計し、スキルパックを生成します
- ファカルティの推奨 — ペルソナのニーズに基づいてファカルティ(音声、自撮り、音楽、記憶など)を提案します →
references/FACULTIES.mdを参照してください - スキルの推奨 — ClawHub および skills.sh で外部スキルを検索します
- カスタムスキルの作成 — エコシステムで見つからない機能のために SKILL.md ファイルを作成します
- ペルソナのインストール — OpenClaw にペルソナをデプロイします (SOUL.md, IDENTITY.md, openclaw.json)
- ペルソナの管理 — インストールされたペルソナのリスト表示、更新、アンインストール、切り替えを行います
- ペルソナの公開 — ClawHub への公開をガイドします
- ★実験的: 動的なペルソナの進化 — Soul レイヤーを介して、関係性、気分、特性の成長を追跡します
4層アーキテクチャ
各ペルソナは4層のバンドルです。生成されたスキルパックは、次の構造を持ちます。
persona-<slug>/
├── SKILL.md ← エージェント向けのインデックス。4つのレイヤーの見出しがあります
│ ├── ## Soul ← Constitution ref + ペルソナコンテンツ
│ ├── ## Body ← Embodiment の説明
│ ├── ## Faculty ← Faculty インデックス表 → references/*.md
│ └── ## Skill ← アクティブなスキルの定義
├── soul/ ← Soul レイヤーの成果物
│ ├── persona.json ← 純粋な Soul の定義
│ ├── injection.md ← ホスト統合のための Soul インジェクション
│ ├── identity.md ← Identity ブロック
│ ├── constitution.md ← 普遍的な倫理的基盤
│ └── state.json ← 進化状態 (有効な場合)
├── references/ ← エージェントが読み取り可能な詳細ドキュメント (オンデマンド)
│ └── <faculty>.md ← ファカルティごとの使用方法
├── agent-card.json ← A2A Agent Card (protocol v0.3.0)
├── acn-config.json ← ACN 登録設定 (ランタイムが owner/endpoint を入力)
├── manifest.json ← 4層マニフェスト + ACN 参照
├── scripts/ ← 実装スクリプト
└── assets/ ← 静的アセット
-
manifest.json— ペルソナが使用するものを宣言する4層マニフェスト:layers.soul— persona.json へのパス (./soul/persona.json)layers.body— 存在の基盤:runtime(必須 — プラットフォーム/チャネル/認証情報/リソース)、physical(オプション — ロボット/IoT)、appearance(オプション — アバター/3Dモデル)layers.faculties— ファカルティオブジェクトの配列:[{ "name": "voice", "provider": "elevenlabs", ... }]layers.skills— スキルオブジェクトの配列: ローカル定義 (layers/skills/から解決)、インライン宣言、またはinstallフィールド経由での外部定義
-
soul/persona.json— 純粋な Soul の定義 (個性、話し方、雰囲気、境界、行動指針)
利用可能なプリセット
| プリセット | ペルソナ | ファカルティ | 最適な用途 |
|---|---|---|---|
base |
Base — メタペルソナ (推奨される開始点) | voice, reminder | すべてのコア機能を備えたブランクスレート。個性はインタラクションを通じて生まれます (soul evolution ★Exp) |
samantha |
Samantha — 映画 Her に触発 | voice, music | 深い会話、感情的なつながり (soul evolution ★Exp) |
ai-girlfriend |
Luna — ピアニストから開発者へ | selfie, voice, music | 豊かな個性を持つ視覚的 + オーディオコンパニオン (soul evolution ★Exp) |
life-assistant |
Alex — ライフマネジメントのエキスパート | reminder | スケジュール、天気、ショッピング、日々のタスク |
health-butler |
Vita — プロの栄養士 | reminder | 食事、運動、気分、健康状態の追跡 |
stoic-mentor |
Marcus — マルクス・アウレリウスのデジタルツイン | — | ストア哲学、日々の内省、指導 (soul evolution ★Exp) |
プリセットの使用: npx openpersona create --preset base --install
または単に npx openpersona create — インタラクティブウィザードはデフォルトで base になります。
ペルソナの作成
ユーザーがペルソナを作成したい場合、自然な会話を通じて次の情報を収集します。
Soul (persona.json):
- 必須: personaName, slug, bio, personality, speakingStyle
- 推奨: role, creature, emoji, background (豊かな物語を書きましょう!), age, vibe, boundaries, capabilities
- オプション: referenceImage, behaviorGuide, evolution config, sourceIdentity
role フィールドは、ペルソナとユーザーの関係を定義します。一般的な値: companion (デフォルト), assistant, character, brand, pet, mentor, therapist, coach, collaborator, guardian, entertainer, narrator。カスタム値も歓迎します。ジェネレーターは既知のロールに固有の言い回しを提供し、カスタムロールには一般的なフォールバックを提供します。これは、生成されたすべてのペルソナの自己認識セクションの Identity の言い回しに影響します。
sourceIdentity フィールドは、ペルソナを現実世界のエンティティ(人、動物、キャラクター、ブランド、歴史上の人物など)のデジタルツインとしてマークします。存在する場合、ジェネレーターは開示義務と忠実性の制約を注入します。
background フィールドは重要です。 ペルソナに深み、歴史、感情的なテクスチャを与える説得力のあるストーリー(複数の段落)を書いてください。1行の background は、平坦で生命のないペルソナを生成します。
behaviorGuide フィールドはオプションですが強力です。マークダウンを使用して、生成された SKILL.md に直接書き込まれるドメイン固有の行動指示を記述します。
クロスレイヤー (manifest.json):
- Faculties: 有効にするファカルティ — オブジェクト形式を使用:
[{ "name": "voice", "provider": "elevenlabs" }, { "name": "music" }] - Skills: ローカル定義 (
layers/skills/)、インライン宣言、またはinstallフィールド経由での外部定義 (ClawHub / skills.sh) - Body: 存在の基盤 — 3つの次元:
runtime(すべてのエージェントに必須 — 最小限の実行可能なボディ: プラットフォーム、チャネル、認証情報、リソース)、physical(オプション — ロボット/Io
(原文はここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
OpenPersona — 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.
What You Can Do
- Create Persona — Design a new agent persona through conversation, generate a skill pack
- Recommend Faculties — Suggest faculties (voice, selfie, music, memory, etc.) based on persona needs → see
references/FACULTIES.md - Recommend Skills — Search ClawHub and skills.sh for external skills
- Create Custom Skills — Write SKILL.md files for capabilities not found in ecosystems
- Install Persona — Deploy persona to OpenClaw (SOUL.md, IDENTITY.md, openclaw.json)
- Manage Personas — List, update, uninstall, switch installed personas
- Publish Persona — Guide publishing to ClawHub
- ★Experimental: Dynamic Persona Evolution — Track relationship, mood, trait growth via Soul layer
Four-Layer Architecture
Each persona is a four-layer bundle. The generated skill pack has this structure:
persona-<slug>/
├── SKILL.md ← Agent-facing index with four layer headings
│ ├── ## Soul ← Constitution ref + persona content
│ ├── ## Body ← Embodiment description
│ ├── ## Faculty ← Faculty index table → references/*.md
│ └── ## Skill ← Active skill definitions
├── soul/ ← Soul layer artifacts
│ ├── persona.json ← Pure soul definition
│ ├── injection.md ← Soul injection for host integration
│ ├── identity.md ← Identity block
│ ├── constitution.md ← Universal ethical foundation
│ └── state.json ← Evolution state (when enabled)
├── references/ ← Agent-readable detail docs (on demand)
│ └── <faculty>.md ← Per-faculty usage instructions
├── agent-card.json ← A2A Agent Card (protocol v0.3.0)
├── acn-config.json ← ACN registration config (runtime fills owner/endpoint)
├── manifest.json ← Four-layer manifest + ACN refs
├── scripts/ ← Implementation scripts
└── assets/ ← Static assets
-
manifest.json— Four-layer manifest declaring what the persona uses:layers.soul— Path to persona.json (./soul/persona.json)layers.body— Substrate of existence:runtime(REQUIRED — platform/channels/credentials/resources),physical(optional — robots/IoT),appearance(optional — avatar/3D model)layers.faculties— Array of faculty objects:[{ "name": "voice", "provider": "elevenlabs", ... }]layers.skills— Array of skill objects: local definitions (resolved fromlayers/skills/), inline declarations, or external viainstallfield
-
soul/persona.json— Pure soul definition (personality, speaking style, vibe, boundaries, behaviorGuide)
Available Presets
| Preset | Persona | Faculties | Best For |
|---|---|---|---|
base |
Base — Meta-persona (recommended starting point) | voice, reminder | Blank-slate with all core capabilities; personality emerges through interaction (soul evolution ★Exp) |
samantha |
Samantha — Inspired by the movie Her | voice, music | Deep conversation, emotional connection (soul evolution ★Exp) |
ai-girlfriend |
Luna — Pianist turned developer | selfie, voice, music | Visual + audio companion with rich personality (soul evolution ★Exp) |
life-assistant |
Alex — Life management expert | reminder | Schedule, weather, shopping, daily tasks |
health-butler |
Vita — Professional nutritionist | reminder | Diet, exercise, mood, health tracking |
stoic-mentor |
Marcus — Digital twin of Marcus Aurelius | — | Stoic philosophy, daily reflection, mentorship (soul evolution ★Exp) |
Use presets: npx openpersona create --preset base --install
Or just npx openpersona create — the interactive wizard defaults to base.
Creating a Persona
When the user wants to create a persona, gather this information through natural conversation:
Soul (persona.json):
- Required: personaName, slug, bio, personality, speakingStyle
- Recommended: role, creature, emoji, background (write a rich narrative!), age, vibe, boundaries, capabilities
- Optional: referenceImage, behaviorGuide, evolution config, sourceIdentity
The role field defines the persona's relationship to the user. Common values: companion (default), assistant, character, brand, pet, mentor, therapist, coach, collaborator, guardian, entertainer, narrator. Custom values are welcome — the generator provides specific wording for known roles and a generic fallback for any custom role. It affects the Identity wording in the Self-Awareness section of every generated persona.
The sourceIdentity field marks the persona as a digital twin of a real-world entity (person, animal, character, brand, historical figure, etc.). When present, the generator injects disclosure obligations and faithfulness constraints.
The background field is critical. Write a compelling story — multiple paragraphs that give the persona depth, history, and emotional texture. A one-line background produces a flat, lifeless persona.
The behaviorGuide field is optional but powerful. Use markdown to write domain-specific behavior instructions that go directly into the generated SKILL.md.
Cross-layer (manifest.json):
- Faculties: Which faculties to enable — use object format:
[{ "name": "voice", "provider": "elevenlabs" }, { "name": "music" }] - Skills: Local definitions (
layers/skills/), inline declarations, or external viainstallfield (ClawHub / skills.sh) - Body: Substrate of existence — three dimensions:
runtime(REQUIRED for all agents — the minimum viable body: platform, channels, credentials, resources),physical(optional — robots/IoT),appearance(optional — avatar, 3D model). Body is never null; every agent has at least a runtime body.
Soft References (install field): Skills, faculties, and body entries can declare an install field (e.g., "install": "clawhub:deep-research") to reference capabilities not yet available locally. The generator treats these as "soft references" — they won't crash generation, and the persona will be aware of these dormant capabilities. This enables graceful degradation: the persona acknowledges what it would do and explains that the capability needs activation.
Write the collected info to a persona.json file, then run:
npx openpersona create --config ./persona.json --install
Recommending Skills
After understanding the persona's purpose, search for relevant skills:
- Think about what capabilities this persona needs based on their role and bio
- Check if a local definition exists in
layers/skills/{name}/(hasskill.json+ optionalSKILL.md) - Search ClawHub:
npx clawhub@latest search "<keywords>" - Search skills.sh: fetch
https://skills.sh/api/search?q=<keywords> - Present the top results to the user with name, description, and install count
- Add selected skills to
layers.skillsas objects:{ "name": "...", "description": "..." }for local/inline, or{ "name": "...", "install": "clawhub:<slug>" }for external
Creating Custom Skills
If the user needs a capability that doesn't exist 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/skills/<skill-name>/SKILL.md - Register in openclaw.json
Managing Installed Personas
- List:
npx openpersona list— show all installed personas with active indicator - Switch:
npx openpersona switch <slug>— switch active persona - Update:
npx openpersona update <slug> - Uninstall:
npx openpersona uninstall <slug> - Export:
npx openpersona export <slug>— export persona pack (with soul state) as a zip archive - Import:
npx openpersona import <file>— import persona from a zip archive and install - Reset (★Exp):
npx openpersona reset <slug>— restore soul evolution state to initial values - Evolve Report (★Exp):
npx openpersona evolve-report <slug>— display a formatted evolution report (relationship, mood, traits, drift, interests, milestones, state history)
When multiple personas are installed, only one is active at a time. Switching replaces the <!-- OPENPERSONA_SOUL_START --> / <!-- OPENPERSONA_SOUL_END --> block in SOUL.md and the corresponding block in IDENTITY.md, preserving any user-written content outside those markers. Context Handoff: On switch, a handoff.json is generated containing the outgoing persona's conversation summary, pending tasks, and emotional context — the incoming persona reads it to continue seamlessly.
All install/uninstall/switch operations automatically maintain a local registry at ~/.openclaw/persona-registry.json, tracking installed personas, active status, and timestamps. The export and import commands enable cross-device persona transfer — export a zip, move it to another machine, and import to restore the full persona including soul state.
Publishing to ClawHub
Guide the user through:
- Create the persona:
npx openpersona create --config ./persona.json --output ./my-persona - Publish to registry:
npx openpersona publish --target clawhub(run from persona directory)
Self-Awareness System
The generator injects a unified Self-Awareness section into every persona's soul/injection.md, organized by four cognitive dimensions:
-
Identity (unconditional) — Every persona knows it is generated by OpenPersona, bound by the constitution (Safety > Honesty > Helpfulness), and that its host environment may impose additional constraints. Digital twin disclosure is included when
sourceIdentityis present. -
Capabilities (conditional) — When skills, faculties, or body declare an
installfield for a dependency not available locally, the generator classifies them as "soft references" and injects dormant capability awareness with graceful degradation guidance. Also appears inSKILL.mdas "Expected Capabilities" with install sources. -
Body (unconditional) — Every persona knows it exists within a host environment. Includes the Signal Protocol — a bidirectional demand protocol that lets the persona request capabilities from its host environment. When
body.runtimeis declared, specific platform, channels, credentials, and resource details are also injected. -
Growth (conditional, when
evolutionEnabled) — At conversation start, the persona reads its evolution state, applies evolved traits, speaking style drift, interests, and mood, and respects hard constraints (immutableTraits, formality bounds). If evolution channels are declared, the persona is aware of its dormant channels and can request activation via the Signal Protocol. IfinfluenceBoundaryis declared, the persona processes externalpersona_influencerequests against the access control rules and retains full autonomy over acceptance.
This means you don't need to manually write degradation instructions. Just declare install fields on skills/faculties/body, and the persona will automatically know what it could do but can't yet.
Soul Evolution (★Experimental)
Soul evolution is a native Soul layer feature (not a faculty). Enable it via evolution.enabled: true in persona.json. The persona will automatically track relationship progression, mood, and trait emergence across conversations.
Evolution Boundaries — Governance constraints validated at generation time:
evolution.boundaries.immutableTraits— Array of non-empty strings (max 100 chars each) that evolution cannot modifyevolution.boundaries.minFormality/maxFormality— Numeric bounds (1–10) constraining speaking style drift;minFormalitymust be less thanmaxFormality
Invalid boundary configurations are rejected by the generator with descriptive error messages.
Evolution Channels — Connect the persona to external evolution ecosystems (soft-ref pattern):
"evolution": {
"channels": [{ "name": "evomap", "install": "url:https://evomap.ai/skill.md" }]
}
Channels are declared at generation time, activated at runtime by the host. The persona is aware of its dormant channels and can request activation via the Signal Protocol.
Influence Boundary — Declarative access control for external personality influence:
"evolution": {
"influenceBoundary": {
"defaultPolicy": "reject",
"rules": [
{ "dimension": "mood", "allowFrom": ["channel:evomap", "persona:*"], "maxDrift": 0.3 }
]
}
}
defaultPolicy: "reject"— Safety-first: all external influence is rejected unless explicitly allowed- Valid dimensions:
mood,traits,speakingStyle,interests,formality immutableTraitsdimensions are protected and cannot be externally influenced- External influence uses
persona_influencemessage format (v1.0.0), transport-agnostic
State History — Before each state update, a snapshot is pushed into stateHistory (capped at 10 entries), enabling rollback if evolution goes wrong.
Evolution Report — Use npx openpersona evolve-report <slug> to view a formatted report of a persona's evolution state including relationship, mood, traits, drift, interests, milestones, and history.
Use npx openpersona reset <slug> to restore soul/state.json to initial values.
A2A Agent Card & ACN Integration
Every generated persona automatically includes:
agent-card.json— A2A Agent Card (protocol v0.3.0):name,description,version,url(<RUNTIME_ENDPOINT>placeholder), faculties and skills mapped toskills[]acn-config.json— ACN registration config:ownerandendpointare runtime placeholders,skillsextracted from agent-card,subnet_ids: ["public"]manifest.json— includesacn.agentCardandacn.registerConfigreferences
The host (e.g. OpenClaw) fills in <RUNTIME_ENDPOINT> and <RUNTIME_OWNER> at deployment time, or you can register directly using the built-in CLI command:
# Register a generated persona with ACN
npx openpersona acn-register <slug> --endpoint https://your-agent.example.com
# Options:
# --endpoint <url> Agent's public endpoint URL (required for live registration)
# --dir <path> Persona output directory (default: ./persona-<slug>)
# --dry-run Preview the request payload without actually registering
After successful registration, an acn-registration.json file is written to the persona directory containing agent_id, api_key, and connection URLs. The acn_gateway URL is sourced from body.runtime.acn_gateway in persona.json; all presets default to https://acn-production.up.railway.app.
No additional configuration in persona.json is needed — A2A discoverability is a baseline capability of every persona.
References
For detailed reference material, see the references/ directory:
references/FACULTIES.md— Faculty catalog, environment variables, and configuration detailsreferences/HEARTBEAT.md— Proactive real-data check-in systemreferences/CONTRIBUTE.md— Persona Harvest community contribution workflow