深入自己.skill源码:6个Python工具如何解析聊天记录与照片,构建数字分身
【免费下载链接】yourself-skill与其蒸馏别人,不如蒸馏自己。欢迎加入数字永生!Inspired by colleague-skill(同事skill)。项目地址: https://gitcode.com/gh_mirrors/yo/yourself-skill
自己.skill 是一个开源的自我蒸馏工具:提供你的微信/QQ 聊天记录、日记和照片,它会通过 6 个 Python 源码工具解析出你的口头禅、语气词、标点习惯与照片时间线,最终构建一个"用你的方式思考和说话"的数字分身。本文带你快速看懂 tools/ 目录下的源码结构与工作机制。
为什么是"自己.skill"?
与其蒸馏别人,不如蒸馏自己。欢迎加入数字永生!🌱
同事跑了,你可以蒸馏同事;但最该被蒸馏的,其实是你自己。自己.skill 把你解构成两部分:
| 部分 | 文件 | 内容 |
|---|---|---|
| Part A — Self Memory(自我记忆) | self.md | 经历、价值观、生活习惯、重要记忆、人际关系 |
| Part B — Persona(人格模型) | persona.md | 5 层性格结构:硬规则 → 身份 → 说话风格 → 情感模式 → 人际行为 |
运行逻辑很简单:收到消息 → Persona 判断你会怎么回应 → Self Memory 补充背景与价值观 → 用你的方式输出。
完整设计思路可参考产品文档 docs/PRD.md。
项目结构一览:源码都在哪里?
整个仓库遵循 AgentSkills 开放标准,结构非常清晰:
yourself-skill/ ├── SKILL.md # Skill 入口 ├── prompts/ # 7 个 Prompt 模板(分析与生成) ├── tools/ # 6 个 Python 解析与管理工具(本文主角) ├── selves/ # 生成的自我 Skill ├── docs/PRD.md # 产品需求文档 └── requirements.txt其中 prompts/ 负责"思考"(信息录入、记忆提取、人格建模),而 tools/ 负责"动手"——解析文件、生成结构、管理版本。两者分工协作,是典型的"Prompt + 脚本"架构。
6个Python工具逐个拆解
1️⃣ wechat_parser.py — 微信聊天记录解析器
这是还原度最高的数据源处理器,位于 tools/wechat_parser.py。
它的亮点是格式自动检测:根据文件后缀与内容特征,自动识别 WeChatMsg 导出(txt/csv/html)、留痕导出(json)、PyWxDump 导出(sqlite)或纯文本粘贴。
更关键的是 analyze_messages 函数的统计能力,它只盯着"我"发的消息,提取:
- 高频语气词(哈、嗯、哦、嘛……)→ 直接映射你的口头禅
- 高频 Emoji→ 你的表情包偏好
- 平均消息长度→ 判断你是"短句连发型"还是"长段落型"
- 标点习惯(句号/感叹号/问号/省略号/波浪号)→ 语气指纹
这些统计结果会被写入 Markdown 报告,供 AI 提炼人格特征。
2️⃣ qq_parser.py — QQ 聊天记录解析器
适合"学生时代的自己",位于 tools/qq_parser.py。
它适配 QQ 消息管理器导出的 txt 与 mht 两种格式,通过正则匹配时间戳 + 发送者 + QQ号的固定模式逐行拆出消息(见 parse_qq_txt)。对 mht 这类带 HTML 标签的文件,它会先剥离标签再提取纯文本。最后同样统计"目标消息数"并抽样前 50 条作为分析素材。
3️⃣ social_parser.py — 社交媒体内容解析器
朋友圈、微博、小红书、日记截图都交给它,位于 tools/social_parser.py。
它的设计很巧妙:先扫描目录,按扩展名把文件分成图片 / 文本 / 其他三类(scan_directory)。文本文件(txt/md/json/csv)直接内嵌进报告;图片截图则列出路径清单,交给 AI 的 Read 工具逐张"看图",提取你的价值观和表达风格。
4️⃣ photo_analyzer.py — 照片元信息分析器
不是"看照片内容",而是"读照片记忆",位于 tools/photo_analyzer.py。
基于 Pillow 读取每张 JPEG/PNG 的EXIF 信息:
- 拍摄时间(DateTimeOriginal)→ 按时间排序,生成你的人生时间线
- GPS 坐标(get_exif_data 会把度分秒换算成十进制度,并处理南纬/西经的负号)→ 找出你的常去地点
最终输出一份"照片时间线分析"报告:哪一天在哪拍过照,一目了然。这就是为什么示例中的数字分身能回答"我最喜欢的地方是哪里"——答案藏在你的照片元数据里。
5️⃣ skill_writer.py — Skill 文件管理器
解析完成后,该写文件了,位于 tools/skill_writer.py。
它管理四类动作:
| 动作 | 作用 |
|---|---|
list | 列出所有已生成的自我 Skill |
init | 初始化目录结构(versions/ + memories/chats、photos、notes) |
combine | 合并 self.md + persona.md 生成完整 SKILL.md |
create | 完整创建流程 |
以示例产物 selves/example_me/ 为例:meta.json存版本与档案,self.md是记忆,persona.md是人格,四件套齐活后即可被/小北直接调用。
6️⃣ version_manager.py — 版本存档与回滚
数字分身会进化,那就需要"后悔药",位于 tools/version_manager.py。
- backup:每次更新前,把
self.md / persona.md / SKILL.md / meta.json四个核心文件打包进带时间戳的versions/存档目录 - rollback:回滚前先自动备份当前版本,再恢复旧文件——双保险,永不丢数据
list:查看所有历史版本
配合对话纠正(说"我不会这样说"即写入 Correction 层,见 prompts/correction_handler.md),你的数字分身可以持续迭代。
从聊天记录到数字分身:完整流程
把 6 个工具串起来,整条流水线是这样的:
- 录入:通过 prompts/intake.md 问 3 个问题——代号、基本信息(年龄/职业/城市)、自我画像(MBTI/星座/性格标签),全部可跳过
- 解析:按需调用
wechat_parser/qq_parser/social_parser/photo_analyzer,把原材料变成统计报告 - 建模:prompts/self_analyzer.md 提取自我记忆,prompts/persona_analyzer.md 提取 5 层人格
- 生成:按 prompts/self_builder.md 和 prompts/persona_builder.md 模板产出
self.md与persona.md - 组装:
skill_writer.py --action combine合并为可运行的 SKILL.md - 进化:新资料来了走 prompts/merger.md 增量合并;版本随时可回滚
快速上手:三步拥有数字分身
① 克隆并安装(在 git 仓库根目录执行):
mkdir -p .claude/skills git clone https://gitcode.com/gh_mirrors/yo/yourself-skill .claude/skills/create-yourself② 安装可选依赖(照片解析需要 Pillow):
pip install -r requirements.txt③ 在 Claude Code 中输入/create-yourself,按提示提供数据即可。完成后用/{slug}召唤你的数字分身,常用管理命令:
| 命令 | 说明 |
|---|---|
/list-selves | 列出所有自我 Skill |
/{slug} | 调用完整 Skill(像你一样思考和说话) |
/{slug}-self | 自我档案模式(帮你回忆和分析自己) |
/{slug}-persona | 人格模式(仅性格和表达风格) |
/yourself-rollback {slug} {version} | 回滚到历史版本 |
/delete-yourself {slug} | 删除 |
写在最后 🚀
读完整套源码你会发现,自己.skill 的精华不在算法复杂度,而在工程化的克制:
- 6 个 Python 工具各司其职,都是可独立运行的命令行脚本,边界清晰
- Prompt 与脚本分层,"思考"和"动手"互不干扰
- 版本管理与回滚机制,让"数字永生"也有了安全网
"这个 Skill 不会定义你。它只是把你从生物硬盘导出到 Markdown,完成一次格式转换。"
你的口头禅、你的深夜 emo、你拍过的每张带 GPS 的照片,都是人格的原材料。如果你想深入理解某个解析器的实现细节,建议直接打开 tools/wechat_parser.py 边读边跑——与其蒸馏别人,不如先蒸馏自己。
【免费下载链接】yourself-skill与其蒸馏别人,不如蒸馏自己。欢迎加入数字永生!Inspired by colleague-skill(同事skill)。项目地址: https://gitcode.com/gh_mirrors/yo/yourself-skill
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考