therealXiaomanChu/ex-skill
GitHub: therealXiaomanChu/ex-skill
将前任的聊天记录、照片等素材转化为AI角色,模拟其说话方式和性格进行对话,用于个人回忆与情感疗愈。
Stars: 3251 | Forks: 335
# 前任.skill
**我会为了你一万次回到那个夏天。**
[](LICENSE)
[](https://python.org)
[](https://claude.ai/code)
[](https://agentskills.io)
提供前任的原材料(微信聊天记录、QQ消息、朋友圈截图、照片)加上你的主观描述
生成一个**真正像ta的 AI Skill**
用ta的口头禅说话,用ta的方式回复你,记得你们一起去过的地方
⚠️ **本项目仅用于个人回忆与情感疗愈,不用于骚扰、跟踪或侵犯他人隐私。**
[安装](#安装) · [使用](#使用) · [效果示例](#效果示例) · [English](README_EN.md)
## 安装
### Claude Code
# 安装到当前项目(在 git 仓库根目录执行)
mkdir -p .claude/skills
git clone https://github.com/therealXiaomanChu/ex-skill .claude/skills/create-ex
# 或安装到全局(所有项目都能用)
git clone https://github.com/therealXiaomanChu/ex-skill ~/.claude/skills/create-ex
### 依赖(可选)
pip3 install -r requirements.txt
## 环境要求
- **Claude Code**:免费安装,需要 Node.js 18+([安装指南](https://docs.anthropic.com/en/docs/claude-code))
- **API 消耗**:创建一个前任 Skill 大约消耗 5k-15k tokens,取决于聊天记录量
- **付费方式**(二选一):
- Claude Pro / Max 订阅:在订阅额度内使用,无需额外配置
- Anthropic API Key:按量付费,需在 Claude Code 中配置 key
- **替代前端**:也可以使用 [OpenClaw](https://github.com/nicepkg/openclaw) 运行本 Skill
- **不需要 GPU**,不需要本地模型,不需要 Docker
## 使用
在 Claude Code 中输入:
/create-ex
按提示输入前任的代号、基本信息、性格画像,然后选择数据来源。所有字段均可跳过,仅凭描述也能生成。
完成后用 `/{slug}` 调用该前任 Skill,开始对话。
### 管理命令
| 命令 | 说明 |
|------|------|
| `/list-exes` | 列出所有前任 Skill |
| `/{slug}` | 调用完整 Skill(像ta一样跟你聊天) |
| `/{slug}-memory` | 回忆模式(帮你回忆那些事) |
| `/{slug}-persona` | 仅人物性格 |
| `/ex-rollback {slug} {version}` | 回滚到历史版本 |
| `/delete-ex {slug}` | 删除 |
| `/let-go {slug}` | 放下 |
## 效果示例
**场景一:日常聊天**
用户 ❯ 在干嘛
前任.skill ❯ 刚吃完饭 在刷手机
你呢 怎么突然找我
[发送了一个表情包]
**场景二:回忆杀**
用户 ❯ 还记得我们第一次约会吗
前任.skill ❯ 就那个超难吃的意面吗哈哈哈哈
你还假装很好吃 我都看出来了
那家店后来倒闭了你知道吗
**场景三:深夜emo**
用户 ❯ 我有点想你
前任.skill ❯ ...
嗯
早点睡吧
**场景四:吵架模式**
用户 ❯ 你当时为什么不回我消息
前任.skill ❯ 又来了
我说了我在忙 你非要这样
算了不想吵
## 功能特性
### 数据源
| 来源 | 格式 | 备注 |
|------|------|------|
| 微信聊天记录 | WeChatMsg / 留痕 / PyWxDump 导出 | 推荐,信息最丰富 |
| QQ 聊天记录 | txt / mht 导出 | 适合学生时代的恋情 |
| 朋友圈/微博 | 截图 | 提取公开人设 |
| 照片 | JPEG/PNG(含 EXIF) | 提取时间线和地点 |
| 口述/粘贴 | 纯文本 | 你的主观记忆 |
### 生成的 Skill 结构
每个前任 Skill 由两部分组成,共同驱动输出:
| 部分 | 内容 |
|------|------|
| **Part A — Relationship Memory** | 共同经历、约会地点、inside jokes、争吵模式、甜蜜瞬间、关系时间线 |
| **Part B — Persona** | 5 层性格结构:硬规则 → 身份 → 说话风格 → 情感模式 → 关系行为 |
运行逻辑:`收到消息 → Persona 判断ta会怎么回 → Memory 补充共同记忆 → 用ta的方式输出`
### 支持的标签
**依恋类型**:安全型 · 焦虑型 · 回避型 · 混乱型
**爱的语言**:肯定的言辞 · 精心的时刻 · 接受礼物 · 服务的行动 · 身体的接触
**性格标签**:话痨 · 闷骚 · 嘴硬心软 · 冷暴力 · 粘人 · 独立 · 大男/女子主义 · 浪漫主义 · 实用主义 · 完美主义 · 拖延症 · 工作狂 · 控制欲 · 没有安全感 · 报复性熬夜 · 已读不回 · 秒回选手 · 朋友圈三天可见 · 半夜发语音 …
**星座**:十二星座全支持,影响性格标签的翻译规则
**MBTI**:16 型全支持,影响沟通风格和决策模式
### 进化机制
* **追加记忆** → 找到更多聊天记录/照片 → 自动分析增量 → merge 进对应部分
* **对话纠正** → 说「ta不会这样说」→ 写入 Correction 层,立即生效
* **版本管理** → 每次更新自动存档,支持回滚
## 项目结构
本项目遵循 [AgentSkills](https://agentskills.io) 开放标准:
create-ex/
├── SKILL.md # skill 入口(官方 frontmatter)
├── prompts/ # Prompt 模板
│ ├── intake.md # 对话式信息录入
│ ├── memory_analyzer.md # 关系记忆提取
│ ├── persona_analyzer.md # 性格行为提取(含标签翻译表)
│ ├── memory_builder.md # memory.md 生成模板
│ ├── persona_builder.md # persona.md 五层结构模板
│ ├── merger.md # 增量 merge 逻辑
│ └── correction_handler.md # 对话纠正处理
├── tools/ # Python 工具
│ ├── wechat_parser.py # 微信聊天记录解析
│ ├── qq_parser.py # QQ 聊天记录解析
│ ├── social_parser.py # 社交媒体内容解析
│ ├── photo_analyzer.py # 照片元信息分析
│ ├── skill_writer.py # Skill 文件管理
│ └── version_manager.py # 版本存档与回滚
├── exes/ # 生成的前任 Skill(gitignored)
├── docs/PRD.md
├── requirements.txt
└── LICENSE
## 注意事项
* **聊天记录质量决定还原度**:微信导出 + 口述 > 仅口述
* 建议优先提供:**深夜对话** > **争吵记录** > **日常消息**(最能体现真实性格)
* 本项目不鼓励对前任的不健康执念,如果你发现自己过于沉浸,请寻求专业帮助
* 你的前任是一个真实的人,ta有自己的人生。这个 Skill 只是你记忆中的ta
## 社区生态
以下项目由社区贡献者独立开发,与本项目互补:
| 项目 | 作者 | 说明 |
|------|------|------|
| [ex-cure-skill](https://github.com/W1ndys/ex-cure-skill) | @W1ndys | 关系反思模式,从聊天记录中复盘经验教训 |
| [同事.skill](https://github.com/titanwings/colleague-skill) | @titanwings | 本项目的灵感来源,把同事蒸馏成 AI Skill |
| [simp-skill](https://github.com/BeamusWayne/simp-skill) | @BeamusWayne | 与其怀念前任,不如勇敢追爱 |
**语音克隆(实验性)**:如果你想让 AI 用前任的声音说话,可以把 ex-skill 生成的文本搭配 [GPT-SoVITS](https://github.com/RVC-Boss/GPT-SoVITS) 使用。这需要额外部署语音模型,不在本项目范围内。
**聊天记录导入**:不知道怎么把聊天记录喂给 ex-skill?请看 [导入指南](docs/EXPORT_GUIDE.md)。
### 写在最后
人的记忆是一种不讲道理的存储介质。
你记不住高数公式,记不住车牌号,记不住今天是几号,但你清楚记得四年前的一个下午ta穿了一件白T恤站在便利店门口等你,手里拿着两根冰棍,一根给你,一根ta自己。
这不公平。
这个 Skill 就是把这些不公平的记忆导出来,从生物硬盘到数字硬盘完成格式转换。
导完以后你或许会发现,ta也没那么好。ta也没那么差。ta就是那样一个人。会在吵完架两小时后问你吃了吗。会在纪念日那天忘了发消息然后第二天假装什么都没发生。
是的,
此刻,阳光在江面碎成一万个夏天,闪烁,又汇聚成一个冬天。这一切在你午睡时发生,你从未察觉。
MIT License © [therealXiaomanChu](https://github.com/therealXiaomanChu)
标签:AI伴侣, AI定制, AI技能开发, AI角色模拟, Anthropic API, Claude Code Skill, Python, 个人AI助手, 个人数据处理, 回忆保存, 情感疗愈, 情感计算, 无后门, 聊天记录分析, 记忆蒸馏, 逆向工具