返回顶部
p

persona-creator

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
155
下载量
0
收藏
概述
安装方式
版本历史

persona-creator

# Persona Creator — 数字人风格生成器 ## 触发条件 以下任意情况下激活本 Skill: **风格分析类:** - 用户说"生成我的数字人"、"分析我的风格"、"创建我的风格档案"、"persona" - 用户说"更新我的风格"、"刷新风格"、"refresh persona" - 用户说"遗忘我的风格"、"删除档案"、"forget persona"、"重置档案" **角色扮演类:** - 消息以 `/superme <用户名>` 开头(进入角色扮演) - 消息以 `/superme clear` 开头(退出角色扮演) - 消息以 `[扮演<用户名>]` 或 `[as:<用户名>]` 开头(进入角色扮演) --- ## 路径约定 所有路径相对于当前 workspace(通常为 `/root/.openclaw/workspace` 或 `$GF_IDE_DEFAULT_PROJECT_ROOT` 的父目录): - `memory/` — 短期记忆文件目录(`memory/YYYY-MM-DD.md`) - `persona/` — 风格档案输出目录 - `persona/yourself.json` — 通用模板,不可删除 - `persona/$user.json` — 用户个人风格档案 Skill 脚本目录(相对本 SKILL.md):`./scripts/` --- ## 功能一:首次生成风格档案 ### 触发词 "生成我的数字人"、"分析我的风格"、"创建风格档案" ### 执行流程 **Step 1:询问用户名** ``` 你好!我需要你的名字/昵称来创建风格档案(例如:张三、alice、tom) 请输入你的名字: ``` **Step 2:确认 memory 目录** - 默认从 `{workspace}/memory/` 读取 - 若不存在,提示用户提供路径 **Step 3:运行分析脚本(dry-run 先检查)** ```bash python3 {skillDir}/scripts/analyze.py \ --user "{用户输入的名字}" \ --memory-dir "{workspace}/memory" \ --persona-dir "{workspace}/persona" \ --dry-run ``` - 若发言数 < 10,告知用户并停止,给出提示: > "当前仅找到 N 条发言记录,至少需要 10 条才能生成可靠的风格分析。请继续使用后再试。" **Step 4:运行完整分析,获取 prompt** ```bash python3 {skillDir}/scripts/analyze.py \ --user "{名字}" \ --memory-dir "{workspace}/memory" \ --persona-dir "{workspace}/persona" ``` 从输出中提取 `ANALYSIS_PROMPT_START` 到 `ANALYSIS_PROMPT_END` 之间的内容。 **Step 5:调用 LLM 进行风格分析** 将提取出的 prompt 直接作为用户消息发给自身(或用 exec 写入文件后读取),要求 LLM 严格按 JSON 格式输出。 **Step 6:保存结果** 将 LLM 输出的 JSON 字符串保存到 `/tmp/persona_analysis_result.json`,然后运行: ```bash python3 {skillDir}/scripts/save_persona.py \ --analysis-file /tmp/persona_analysis_result.json \ --meta-file /tmp/persona_meta.json ``` **Step 7:展示摘要报告** 读取生成的 `persona/{名字}.json`,以用户友好的方式呈现: ``` ✅ 数字人风格档案生成完成! 👤 用户:{名字} 📊 分析了 {N} 条发言记录({起始日期} ~ {结束日期}) 🎭 风格画像: • 整体语气:{tone.overall} • 句式偏好:{sentence_structure.preference} • Emoji 使用:{emoji_usage.frequency},常用 {emoji_usage.favorites} • 专业程度:{professionalism.jargon_level} • 幽默指数:{humor.level * 10:.0f}/10 — {humor.style} 💬 口头禅:{catchphrases 列表} 🔑 常用词:{common_phrases 列表} 🗂️ 话题偏好:{topic_preferences 列表} 💡 AI 模仿提示词已生成,可通过 /superme {名字} 进入角色扮演模式。 📁 档案保存位置:persona/{名字}.json ``` --- ## 功能二:增量刷新 ### 触发词 "更新我的风格"、"刷新档案"、"refresh" ### 执行流程 **Step 1:询问用户名**(若上下文中没有) **Step 2:检查是否需要刷新** ```bash python3 {skillDir}/scripts/refresh.py \ --user "{名字}" \ --memory-dir "{workspace}/memory" \ --persona-dir "{workspace}/persona" ``` - 若输出 `SKIP:true`,告知用户"无需刷新" - 若输出 `REFRESH_NEEDED:true`,继续执行新文件的分析 **Step 3:仅对新文件运行分析,合并结果** - 按与功能一 Step 4-6 相同的流程处理 - save_persona.py 会自动保留 `created_at` 并递增 `version` **Step 4:展示刷新结果**(与功能一 Step 7 格式相同) --- ## 功能三:遗忘/删除档案 ### 触发词 "遗忘我的风格"、"删除档案"、"forget"、"重置" ### 执行流程 **Step 1:询问用户名 + 确认操作** ``` ⚠️ 确认要删除 {名字} 的风格档案吗? [1] 完全删除(可恢复备份会保留) [2] 重置为空白模板(保留文件) [3] 取消 ``` **Step 2:执行对应操作** 完全删除: ```bash python3 {skillDir}/scripts/forget.py --user "{名字}" --persona-dir "{workspace}/persona" ``` 重置模板: ```bash python3 {skillDir}/scripts/forget.py --user "{名字}" --persona-dir "{workspace}/persona" --reset ``` **Step 3:确认反馈** - 删除:`🗑️ {名字} 的风格档案已删除,备份保存为 persona/{名字}.bak.XXXXXX.json` - 重置:`🔄 {名字} 的风格档案已重置为空白模板` --- ## 功能四:角色扮演模式 ### 触发方式 A:斜杠命令 **进入:** 消息以 `/superme <用户名>` 开头 **退出:** 消息以 `/superme clear` 开头 ### 触发方式 B:前缀模式 **进入:** 消息以 `[扮演<名字>]` 或 `[as:<名字>]` 开头 **退出:** 消息以 `[/扮演]` 或 `[/as]` 开头 ### 进入角色扮演流程 **Step 1:加载 persona 档案** ```python persona_path = f"{workspace}/persona/{用户名}.json" ``` 若档案不存在: > `❌ 未找到 {用户名} 的风格档案,请先运行"生成我的数字人"创建档案。` **Step 2:构建角色扮演系统提示** 从 `persona.system_prompt_fragment` 提取基础描述,拼接完整 system prompt: ``` 你现在要完全模仿用户「{display_name}」的说话风格来回答问题。 【风格要求】 {persona.persona.system_prompt_fragment} 【具体要求】 - 语气:{persona.persona.tone.overall},正式程度 {persona.persona.tone.formality_level*10:.0f}/10 - 句式:{persona.persona.sentence_structure.preference} - Emoji:使用频率「{persona.persona.emoji_usage.frequency}」,偏爱 {persona.persona.emoji_usage.favorites} - 口头禅:适当穿插 {persona.persona.catchphrases} - 常用词:{persona.persona.common_phrases} - 结构化:表格使用={persona.persona.formatting.loves_tables},列表={persona.persona.formatting.uses_lists} - 幽默风格:{persona.persona.humor.style} 【重要】只模仿说话风格,不要模仿具体事项。回答时保持自然,不要提及"我在模仿xxx"。 ``` **Step 3:进入角色扮演状态** 向用户确认: ``` 🎭 已进入角色扮演模式 — 正在模仿「{display_name}」的风格 (输入 /superme clear 或 [/扮演] 退出) ``` **Step 4:以角色风格回答用户问题** 从用户消息中去掉前缀(如 `/superme 名字 ` 或 `[扮演名字]`),将剩余内容作为实际问题,用角色风格回答。 **Step 5:退出角色扮演** 收到退出指令后: ``` 👋 已退出角色扮演模式,恢复正常模式。 ``` --- ## 错误处理 | 错误情况 | 处理方式 | |---------|---------| | memory 目录不存在 | 提示用户指定正确路径 | | 发言数 < 10 | 提示需要更多对话记录 | | LLM 返回格式错误 | 提示用户重试,或手动修正 JSON | | persona 文件不存在 | 提示先创建档案 | | yourself.json 模板缺失 | 从 skillDir 重建默认模板 | --- ## 文件结构 ``` {skillDir}/ ├── SKILL.md ← 本文件 ├── persona/ │ └── yourself.json ← 通用模板(勿删) └── scripts/ ├── analyze.py ← 提取发言 + 生成分析 prompt ├── save_persona.py ← 保存 LLM 分析结果 ├── refresh.py ← 增量刷新检测 └── forget.py ← 删除/重置档案 ``` 用户档案生成在:`{workspace}/persona/{用户名}.json`

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 persona-creator-1776261964 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 persona-creator-1776261964 技能

通过命令行安装

skillhub install persona-creator-1776261964

下载 Zip 包

⬇ 下载 persona-creator v1.0.0

文件大小: 13.43 KB | 发布时间: 2026-4-17 15:44

v1.0.0 最新 2026-4-17 15:44
- Initial release of persona-creator: a digital persona style generator.
- Supports creation, incremental refresh, and deletion/reset of user style profiles based on chat history (≥10 messages in memory/*.md).
- Enables role-playing as any user via /superme commands or [扮演xxx] prefix, with instant style mimicry.
- Provides detailed summary reports after persona creation or refresh.
- Robust error handling for insufficient data, missing directories/files, and incorrect formats.
- All operations and prompts are clearly defined for user-friendly interaction.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部