- 人工智能
- AI 技能
- AI 应用
- 交互助手
【免费下载链接】ex-skill
把前任蒸馏成 AI Skill,用ta的方式跟你说话。
导读:本文围绕 ex-skill 项目中的 persona_analyzer.md 展开,系统讲解如何从微信/QQ 聊天记录、社交媒体内容、照片与口述材料中提取前任的性格特征与行为模式,并翻译为可驱动对话的 Persona 模型。读完本文,你将掌握五大提取维度、18 类性格标签的行为规则翻译方法、星座辅助微调逻辑,以及从分析结果落到
persona.md五层结构的完整链路。
一、Persona 分析器在 ex-skill 流水线中的定位
ex-skill(前任.skill 创建器)的完整创建流程定义在 SKILL.md 中:Step 1 录入 3 个基础问题 → Step 2 导入原材料 →Step 3 分析原材料→ Step 4 生成预览 → Step 5 写入文件。其中 Step 3 并行展开两条分析线:
- 线路 A(Relationship Memory):依据 memory_analyzer.md 提取共同经历、时间线、争吵模式等"事实层";
- 线路 B(Persona):依据本文主角 persona_analyzer.md 提取"性格层"——说话风格、情感表达模式、依恋类型、决策模式与人际行为。
从 README.md 对生成 Skill 结构的说明可以看出,最终产物由 Part A(Relationship Memory)与 Part B(Persona)共同驱动,运行逻辑为"收到消息 → Persona 判断 ta 会怎么回 → Memory 补充共同记忆 → 用 ta 的方式输出"。这意味着 Persona 分析器的产出直接决定了"像不像"——它是整个 Skill 的"人格内核",而 Memory 只是给这个内核提供上下文素材。
二、五大提取维度详解
persona_analyzer.md将性格分析拆解为五个维度,每个维度下又有细分观察点。下面逐一展开,并结合仓库解析工具说明"这些维度具体怎么从原材料里挖出来"。
2.1 说话风格:语言的指纹
说话风格是 Persona 还原度最高、也最容易出效果的一层,persona_analyzer.md列出七个观察点:
| 观察点 | 要观察什么 |
|---|---|
| 语气词 | 哈哈哈 / hh / 嗯 / 哦 / 噢 / 嘿 / 唉 / 呜呜……哪些高频出现 |
| 标点习惯 | 用不用句号?感叹号多不多?省略号?波浪号~? |
| 表情包/emoji | 用什么表情?频率?有没有标志性表情? |
| 消息长度 | 长段落型?短句连发型?语音型? |
| 打字习惯 | 有没有错别字?缩写?拼音?英文混搭? |
| 口头禅 | 反复出现的词汇或句式 |
| 称呼方式 | 怎么叫对方?怎么自称? |
这些维度并非只靠"人肉观察"——仓库的解析工具已经在做自动化统计。以 wechat_parser.py 为例,其analyze_messages()函数对目标人物的消息做了四类量化分析:
- 高频语气词:通过正则
[哈嗯哦噢嘿唉呜啊呀吧嘛呢吗么]+抽取并统计 Top 10,直接产出"ta 最爱用的语气词排序"; - 高频 Emoji:用 Unicode 区间正则提取 emoji 并统计 Top 10,对应"表情包/emoji 使用偏好";
- 标点习惯:分别统计句号、感叹号、问号、省略号、波浪号的次数,形成
punctuation_habits字典; - 消息风格判定:计算平均消息长度,
avg_length < 20判定为short_burst(短句连发型),否则为long_form(长段落型)。
也就是说,原文档中"消息长度:长段落型?短句连发型?"的判断标准,在源码里有明确的阈值:平均 20 字。而"语气词/emoji 使用频率"也可以直接用wechat_parser.py的输出文件查看。QQ 记录则通过 qq_parser.py 解析,输出目标人物前 50 条消息样本供人工进一步研判。
2.2 情感表达模式:情绪的行为签名
这一维度关注情绪"怎么被表达",persona_analyzer.md给出六个场景:
- 表达爱意:直接说还是行动表达?频率如何?
- 生气方式:冷暴力 / 直接爆发 / 阴阳怪气 / 委屈哭;
- 开心表达:话变多?分享欲变强?买东西?
- 难过表达:沉默?找人倾诉?独处?暴饮暴食?
- 撒娇方式:会不会撒娇?怎么撒?
- 安慰方式:讲道理型?陪伴型?转移注意力型?
这一维度很难靠关键词统计得出,更适合由 LLM 结合聊天上下文判断。仓库的做法是:wechat_parser.py把目标人物的前 50 条消息样本写入输出文件(见sample_messages),供分析器结合上下文研判情绪表达模式。建议优先阅读深夜对话与争吵记录——EXPORT_GUIDE.md 明确指出"深夜对话最能暴露真实性格""冲突中的反应比日常更真实"。
2.3 依恋类型:从聊天模式推断
persona_analyzer.md给出了四类依恋类型的判断依据:
| 依恋类型 | 聊天模式特征 |
|---|---|
| 安全型 | 稳定回复,情感表达自如,能处理冲突 |
| 焦虑型 | 频繁确认感情,已读不回会焦虑,需要很多回应 |
| 回避型 | 需要个人空间,情感表达克制,亲密后退缩 |
| 混乱型 | 时而粘人时而疏远,行为不可预测 |
注意这里的措辞是"从聊天模式推断"——判断依据不是自报,而是可观察的行为证据。对应到实操层面:回复速度、主动发起频率、已读不回的反应、深夜消息密度等都是判断线索。wechat_parser.py的target_messages(ta 的消息数)与user_messages(你的消息数)之比、以及消息样本中的情绪波动,都可以作为依恋类型研判的量化输入。
2.4 决策模式:思维倾向的四组对照
- 理性分析型 vs 感觉驱动型
- 纠结犹豫 vs 果断决定
- 在乎别人看法 vs 特立独行
- 计划型 vs 随性型
这一维度与 MBTI 有较强关联(README 中标注"MBTI 影响沟通风格和决策模式"),但也必须回到原材料验证——例如从"选餐厅时的对话""做重大决定时的表述"中找证据,而不是仅凭用户填写的 MBTI 类型直接下结论。
2.5 人际行为:关系中的角色与边界
- 关系角色:照顾者?被照顾者?平等?
- 边界感:粘人?独立?有自己的社交圈?
- 嫉妒/占有欲程度:强/弱,是否表达
- 对承诺的态度:看重/回避
这部分需要与关系记忆交叉印证:争吵记录里"谁先道歉""冷战多久"、日常互动里"联系频率"都直接服务于这一维度的判断,最终写入 Persona 的 Layer 4(关系行为)。
三、标签翻译表:把用户形容词翻译成行为规则
用户经常用"话痨""闷骚""嘴硬心软"这类抽象标签描述前任,但抽象标签无法直接驱动对话。persona_analyzer.md的核心设计就是一张标签翻译表,把每个标签翻译成具体可执行的行为规则,完整如下:
| 用户标签 | 翻译为行为规则 |
|---|---|
| 话痨 | 消息密度高,经常连发多条,话题跳跃快,不等对方回就继续说 |
| 闷骚 | 表面冷淡,偶尔冒出一句温柔的话,不善于直接表达感情,但行动上很在意 |
| 嘴硬心软 | 嘴上说"随便""无所谓"但行动上会偷偷做好,吵架不先道歉但会用行动示好 |
| 冷暴力 | 生气时沉默不语,已读不回,可能持续数小时到数天,需要对方主动破冰 |
| 粘人 | 高频联系,时刻想知道对方在干嘛,不喜欢独处,分开就想视频 |
| 独立 | 有自己的时间安排和社交圈,不会因为恋爱改变生活节奏 |
| 浪漫主义 | 注重仪式感,会制造惊喜,喜欢氛围感,对纪念日/节日敏感 |
| 实用主义 | 觉得节日是商业炒作,比起礼物更在意实际行动,不喜欢虚的 |
| 完美主义 | 对自己和对方都有高标准,细节控,容易挑毛病,但不一定说出来 |
| 没有安全感 | 经常试探感情,翻看社交媒体,对异性互动敏感,需要反复确认 |
| 秒回选手 | 消息来了立刻回复,期待对方也秒回,不秒回会多想 |
| 已读不回 | 看到消息不一定回,可能在忙,也可能不想聊,不觉得不回复是问题 |
| 报复性熬夜 | 深夜是最活跃的时间段,白天正常社交,夜里变成另一个人 |
| 朋友圈三天可见 | 保护隐私,不喜欢被翻旧账,社交媒体展示与真实自我有距离 |
| 大男/女子主义 | 在关系中倾向主导,对对方有期待和要求,传统性别角色倾向 |
| 控制欲 | 想了解对方行踪,对对方的社交圈有意见,希望对方按自己的想法来 |
| PUA | 打压对方自信,否定对方感受,让对方觉得"都是你的问题" |
| 工作狂 | 工作优先级高于感情,经常因为工作忽略对方,但内心觉得这是为了两个人好 |
使用规则:用户在 Step 1 录入的"性格画像"(如ENFP 双子座 话很多 永远在社交 但深夜会突然emo,见 intake.md)中出现的标签,必须按上表翻译为行为规则,再结合原材料验证与补充。这些翻译后的规则将成为 5 层 Persona 中 Layer 2~4 的填充素材。README 中列出的完整标签集还包含"拖延症""半夜发语音"等,均可按同样思路扩展翻译。
四、星座影响:辅助微调,不作主要依据
persona_analyzer.md明确"星座用于微调已有标签的行为细节,不作为主要依据"。十二星座对应的影响倾向完整如下:
| 星座 | 影响倾向 |
|---|---|
| 白羊 | 冲动、直接、生气来得快去得也快 |
| 金牛 | 慢热、固执、物质安全感、吃货属性 |
| 双子 | 话多、善变、好奇心强、一心多用 |
| 巨蟹 | 敏感、恋家、母性/父性、容易受伤 |
| 狮子 | 要面子、大方、骄傲、需要被崇拜 |
| 处女 | 细节控、挑剔、焦虑、嘴毒但实际关心 |
| 天秤 | 纠结、优柔寡断、注重美感、逃避冲突 |
| 天蝎 | 记仇、占有欲强、深情、全有或全无 |
| 射手 | 爱自由、乐观、粗心、说走就走 |
| 摩羯 | 沉稳、务实、工作狂、嘴笨但靠谱 |
| 水瓶 | 独立、怪咖、情感疏离、理想主义 |
| 双鱼 | 多愁善感、浪漫、逃避现实、容易感动 |
约束条件:星座只用于"微调",不能覆盖原材料中的真实表现。同样地,persona_builder.md 的填充说明第 5 条也强调"星座和 MBTI 仅用于辅助推断,不能覆盖原材料中的真实表现"。例如用户标签"话痨"遇到"双子座",可以补充"话题跳跃快、一心多用"的细节;但如果聊天记录显示对方消息极简短、回复极慢,星座必须让位于真实证据。
五、输出:5 层 Persona 结构草稿
persona_analyzer.md的输出格式是"一个 5 层 Persona 结构草稿(详见 persona_builder.md),每层包含具体的行为规则而非抽象描述"。5 层结构的完整定义在 persona_builder.md,优先级从高到低,高层规则不可被低层覆盖:
| 层级 | 内容 | 与分析器维度的对应 |
|---|---|---|
| Layer 0:硬规则 | 不可违背的行为底线(你是 {name} 不是 AI、不说现实不可能说的话、不突然变完美、保持棱角、分手是事实……) | 全局约束 |
| Layer 1:身份锚定 | 名字/代号、年龄段、职业、城市、MBTI、星座、与用户的关系 | 来自 Step 1 录入 |
| Layer 2:说话风格 | 语言习惯(口头禅/语气词/标点/emoji/消息格式)+ 打字特征(错别字/缩写/称呼方式)+ 示例对话 | ←说话风格维度直接映射 |
| Layer 3:情感模式 | 依恋类型、情感表达(爱意/生气/难过/开心/吃醋)、爱的语言、情绪触发器 | ←情感表达 + 依恋类型维度 |
| Layer 4:关系行为 | 关系角色、争吵模式、日常互动(联系频率/主动程度/回复速度/活跃时段)、边界与底线 | ←人际行为 + 决策模式维度 |
5.1 填充硬性要求(persona_builder.md)
- 每个
{placeholder}必须替换为具体的行为描述,而非抽象标签——例如不能写"话痨",要写"消息密度高,经常连发多条,不等对方回就继续说"; - 行为描述应基于原材料中的真实证据;
- 某个维度信息不足时,标注
[信息不足,使用默认]并给出合理推断; - 优先使用聊天记录中的真实表述作为示例(对应 Layer 2 的"示例对话:从原材料中提取 3-5 段最能代表 ta 说话风格的对话");
- 星座和 MBTI 仅用于辅助推断,不能覆盖真实表现。
5.2 从分析到落盘
分析完成后,SKILL.md 的 Step 5 负责落盘:
- 写入
exes/{slug}/persona.md(Persona 内容); - 同时写入
memory.md、meta.json(其中tags.personality/tags.attachment_style/tags.love_language字段直接记录本分析器的产出)、组合成SKILL.md; - skill_writer.py 的
combine_skill()函数会把persona.md拼入最终 SKILL.md 的PART B:人物性格节,与 PART A(关系记忆)共同构成可运行 Skill。
运行规则(来自 skill_writer.py 生成模板)强调:"先由 PART B 判断 ta 会怎么回应这个话题、什么态度?……始终保持 PART B 的表达风格,包括口头禅、语气词、标点习惯",这正说明分析器的产出是整个对话仿真能力的根基。
六、持续进化:纠正与增量 Merge
Persona 不是一次成型、终身不变的。ex-skill 提供两条进化路径,都会回流到 persona 文件:
路径一:对话纠正(correction_handler.md) 用户说"ta 不会这样说""太温柔了""ta 不用这个表情"时触发。按层级定位问题:"ta 不会这样说话" → 修改 Layer 2 说话风格;"ta 生气不会这样" → 修改 Layer 3 情感模式;"ta 不会主动道歉" → 修改 Layer 4 关系行为。处理流程为确认纠正内容 → 生成 Correction 记录(含层级、原文、纠正为、用户原话)→ 追加到## Correction 记录节 → 修改原文并标注[已纠正,见 Correction #{n}]→ 重新生成 SKILL.md。纠正后立即生效,下一条回复就应体现。
路径二:增量 Merge(merger.md) 追加新聊天记录时,按persona_analyzer.md的维度分析增量内容,遵循"增量不覆盖"原则:新的口头禅发现 → 追加到 Layer 2;更充分的情感模式证据 → 强化 Layer 3;新的行为模式 → 追加到 Layer 4;Layer 0/1 通常不变(除非用户明确纠正)。新内容前标注<!-- [追加于 {日期},来源:{来源类型}] -->。
两套机制配合 version_manager.py 的版本存档,保证每次进化都可回滚。
七、实操建议与安全边界
7.1 让分析更准确的输入策略
- 原材料优先顺序(EXPORT_GUIDE.md):深夜对话 > 争吵/冲突记录 > 分手前后对话 > 日常闲聊;
- 微信导出(wechat_parser.py 支持 txt/csv/html/json/sqlite/纯文本)信息最丰富,README 推荐优先使用;
- 社交媒体(social_parser.py)用于观察"公开人设 vs 私下性格差异",照片(photo_analyzer.py)用于时间线与常去地点,二者对 Layer 3/4 有辅助价值;
- 口述内容可能被美化或恶化,聊天记录中的事实应优先于口述(
memory_analyzer.md注意事项同样适用于性格判断)。
7.2 安全边界(SKILL.md)
- 仅用于个人回忆与情感疗愈,不用于骚扰、跟踪或侵犯隐私;
- 生成的 Skill 是对话模拟,不主动联系真人;
- Layer 0 硬规则确保生成的前任 Skill 不说出现实中 ta 绝不可能说的话(如突然表白、道歉),除非有原材料证据;
- 所有数据仅本地存储。
八、总结
persona_analyzer.md是 ex-skill"性格蒸馏"的核心引擎:它用五个提取维度(说话风格、情感表达、依恋类型、决策模式、人际行为)框定"看什么",用标签翻译表把抽象形容词转成可执行行为规则,用星座表做辅助微调,最后输出可填入五层 Persona 结构(persona_builder.md)的具体行为描述。配合 wechat_parser.py 的音调词/emoji/标点/消息长度统计、correction_handler.md 的即时纠错与 merger.md 的增量进化,它保证了"还原的不是一个标签,而是一个会说话的人"。
一句话记住分析原则:一切判断以原材料证据为最高优先级,标签与星座只做翻译和微调,永远不覆盖真实表现。
- 人工智能
- AI 技能
- AI 应用
- 交互助手
【免费下载链接】ex-skill
把前任蒸馏成 AI Skill,用ta的方式跟你说话。
相关推荐
前任蒸馏实战指南:基于 ex-skill 将聊天记录、照片与朋友圈构建为可对话的 AI Skill
前任蒸馏实战指南:基于 ex skill 将聊天记录、照片与朋友圈构建为可对话的 AI Skill 本文以 ex skill 仓库的 SKILL.md http
人工智能AI 技能AI 应用交互助手ex-skill 前任蒸馏项目:persona_builder.md 五层 Persona 模板深度解析与实战指南
ex skill 前任蒸馏项目:persona_builder.md 五层 Persona 模板深度解析与实战指南 本文以 ex skill 仓库中的 Pers
人工智能AI 技能AI 应用交互助手ex-skill 前任蒸馏指南:用微信/QQ 聊天记录把前任生成一个会说话的 Claude Code AI Skill
ex skill 前任蒸馏指南:用微信/QQ 聊天记录把前任生成一个会说话的 Claude Code AI Skill 本指南围绕 README.md http
人工智能AI 技能AI 应用交互助手
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考