← 返回
未分类

persona-creator

数字人风格生成器。当用户说"生成我的数字人"、"分析我的说话风格"、"创建我的风格档案", 或输入 /superme 进入角色扮演,或使用 [扮演xxx] 前缀时触发本 Skill。 基于 memory/*.md 中的历史对话(≥10条)提取说话风格,生成 persona/$user.json 档案。 支持:首次...
数字人风格生成器。当用户说「生成我的数字人」「分析我的说话风格」「创建我的风格档案」,或输入 /superme 进入角色扮演,或使用 [扮演xxx] 前缀时触发。基于 memory/*.md 中的历史对话(≥10条)提取说话风格,生成 persona/$user.json 档案。支持:首次...
taget taget 来源
未分类 clawhub v1.0.0 1 版本 99823.9 Key: 无需
★ 0
Stars
📥 567
下载
💾 0
安装
1
版本
#latest

概述

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 先检查)

python3 {skillDir}/scripts/analyze.py \
  --user "{用户输入的名字}" \
  --memory-dir "{workspace}/memory" \
  --persona-dir "{workspace}/persona" \
  --dry-run
  • 若发言数 < 10,告知用户并停止,给出提示:

> "当前仅找到 N 条发言记录,至少需要 10 条才能生成可靠的风格分析。请继续使用后再试。"

Step 4:运行完整分析,获取 prompt

python3 {skillDir}/scripts/analyze.py \
  --user "{名字}" \
  --memory-dir "{workspace}/memory" \
  --persona-dir "{workspace}/persona"

从输出中提取 ANALYSIS_PROMPT_STARTANALYSIS_PROMPT_END 之间的内容。

Step 5:调用 LLM 进行风格分析

将提取出的 prompt 直接作为用户消息发给自身(或用 exec 写入文件后读取),要求 LLM 严格按 JSON 格式输出。

Step 6:保存结果

将 LLM 输出的 JSON 字符串保存到 /tmp/persona_analysis_result.json,然后运行:

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:检查是否需要刷新

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:执行对应操作

完全删除:

python3 {skillDir}/scripts/forget.py --user "{名字}" --persona-dir "{workspace}/persona"

重置模板:

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 档案

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

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-02 10:30 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

ai-agent

self-improving agent

pskoett
捕获经验教训、错误及修正内容,以实现持续改进。适用于以下场景:(1)命令或操作意外失败;(2)用户纠正Claude(如“不,那不对……”“实际上……”);(3)用户请求的功能不存在;(4)外部API或工具出现故障;(5)Claude发现自身
★ 4,105 📥 830,128
ai-agent

Self-Improving + Proactive Agent

ivangdavila
自我反思+自我批评+自我学习+自组织记忆。智能体评估自身工作、发现错误并持续改进。
★ 1,398 📥 322,956
ai-agent

Agent Browser

rez0
用于 AI 代理的浏览器自动化 CLI。当用户需要与网站交互(包括浏览页面、填写表单、点击按钮、截图等)时使用。
★ 838 📥 313,902