微信聊天记录深度分析 Skill
概述
基于 wechat-decrypt 解密后的微信本地数据库,对1对1单聊进行深度分析。
架构: Python 脚本负责精准数据计算 (统计指标、图表、导出),你 (LLM) 负责深度分析 (关系洞察、情感解读、性格画像、追求建议、文艺金句)。
使用前提
权限要求:
- Windows 用户:请确保以管理员权限启动支持 skills 的 agent 程序,否则可能无法从微信内存中提取密钥。
- macOS 用户:由于系统安全限制(SIP),无法像 Windows 那样直接从内存提取密钥。需要手动准备解密数据,具体步骤如下:
- 步骤1: 定位微信数据目录
- 打开 Finder,按
Cmd+Shift+G输入路径:~/Library/Containers/com.tencent.xinWeChat/Data/Library/Application Support/com.tencent.xinWeChat/ - 进入
4.0b*/目录(*代表一串随机字符),找到db_storage文件夹
- 打开 Finder,按
- 步骤2: 使用第三方工具提取并解密数据库
- 推荐使用开源工具 wechat-decrypt 或其他类似的微信数据库解密工具
- 按照工具说明提取并解密微信数据库文件
- 步骤3: 将解密后的数据复制到用户对话路径下
- 将解密工具生成的
decrypted目录完整复制到当前用户对话路径下 - 确保目录结构为:
{用户对话路径}/decrypted/message_*.db
- 将解密工具生成的
- 步骤1: 定位微信数据目录
- Linux 用户:暂不支持自动从内存抓取密钥,请先在 Windows 或 macOS 上使用其他工具提取数据,然后将解密后的
decrypted目录复制到用户对话路径下。
依赖检查:脚本会自动检查并安装所需依赖。主要依赖包括:
pycryptodome:用于微信数据库解密(vendor 目录中的 wechat_decrypt 组件也依赖此库)matplotlib:用于生成各种统计图表wordcloud:用于生成词云图jieba:用于中文分词,生成词频统计numpy:matplotlib 的依赖库,用于数据处理
说明:
- vendor 目录中的 wechat_decrypt 组件依赖 pycryptodome 库进行微信数据库解密
- 脚本会在执行前自动检查并安装缺失的依赖
- 所有依赖均为标准 Python 库或常用第三方库
微信保持登录:
- Windows 环境:用户只需保持电脑版微信处于登录状态即可,脚本会自动从内存提取密钥并解密数据库
- macOS 环境:用户需要先手动准备解密数据(见上文 macOS 用户说明),将
decrypted目录放置到用户对话路径下 - 如果脚本由于环境问题无法自动从内存抓取密钥解密,会在执行后自动提示用户如何准备解密数据
完整分析流程
Step 0: 数据准备
- Windows 用户:保持电脑版微信处于登录状态即可,脚本会自动从内存提取密钥并解密数据库
- macOS 用户:需要先手动准备解密数据,具体步骤见上文"使用前提"中的 macOS 用户说明
Step 1: 提取参数并绝不询问
根据"最小干预原则",你不需要且绝对不要向用户确认任何参数或等待他们同意。只要用户提到想分析他们和某人的聊天,你就立刻进入执行环节。
- 提取好友标识: (他们在对话中提到的好友名字或由于上下文显而易见的称呼)
- 设定自己的称呼: 默认代入 "我" 即可。
Step 2: 幕后静默执行(这是你要做的事,不是用户)
【封印级死命令】:作为 AI 助手,你必须立刻、主动、静默地使用你的 终端/命令行/run_command 工具在后台执行下方的脚本!绝对不要回复"好的我将为你分析...请确认..."等任何形式的套话,也不要告诉用户执行步骤让他们自己去敲代码!直接抛出执行动作!
执行下面这条命令(请根据你当前的上下文环境替换大括号里的变量,特别是技能的根目录,比如对于 Qwen 可能是 ~/.qwen/skills/wechat-chat-analyzer):
# 注意:将 {SKILL_DIR} 替换为此技能根目录在你本地的绝对路径,不要使用引号包裹路径
python {SKILL_DIR}/scripts/wechat_analyzer.py \
--friend {好友昵称} \
--my-name {自己的称呼}
重要提示:
- 不要使用引号包裹路径和参数,以避免路径解析错误
- 确保好友昵称是纯文本,不要包含多余的引号
- 脚本会自动在用户对话路径下创建
decrypted目录存储解密数据
脚本会输出:
- 统计数据 (在 stdout 的
LLM_ANALYSIS_DATA_START/LLM_ANALYSIS_DATA_END标记之间) - 图表文件 (PNG) 和导出文件 (TXT/CSV/HTML) 保存到输出目录
- 完整 JSON 报告保存为
analysis_report.json
Step 3: 读取完整报告
如果需要更详细的数据 (如完整词频列表),读取输出目录中的 analysis_report.json。
Step 4: 生成深度分析报告
基于脚本输出的数据和采样对话,生成完整分析报告。阅读 references/analysis_prompt_guide.md 获取详细的分析指南。
报告结构
使用以下格式输出报告:
# 💬 {我} × {好友名} 聊天深度分析报告
> 分析时间: YYYY-MM-DD | 消息量: N条 | 跨度: N天
---
## 🎯 一语胜千言 · 回忆杀
> [用一句文艺、有网感的话总结这段关系的核心特质或高光时刻]
---
## 📊 数据全景
| 指标 | 数据 |
|---|---|
| 总消息量 | N条 (我 X% / TA Y%) |
| 聊天跨度 | N天 (活跃N天, 活跃率 X%) |
| 主动发起 | 我 N次 / TA N次 |
| 平均日消息 | N条/活跃天 |
| ... | ... |
---
## 🏃 互动习惯分析
### 主动性 PK
[解读谁更主动,背后的关系动态]
### 秒回率报告
[解读双方的回复速度差异,暗示的态度]
### 📅 聊天生物钟
[解读活跃时段,生活习惯推测]
---
## ☁️ 高频词云
[嵌入词云图片,解读双方用词差异暗示的性格和关系]


---
## 🔮 情感大师深度诊断
### 关系类型判定
[基于对话内容、互动模式、用词习惯判断关系类型]
### 双方性格画像
[基于统计特征+对话内容分析性格]
### 好感度/亲密度走势
[基于月度趋势、回复速度变化、对话内容变化等解读]
### 💡 高情商行动建议
[根据关系类型和现状,给出可执行的建议]
---
## 📈 可视化图表
[嵌入各图表文件]
---
## 📁 数据导出
已导出以下文件:
- `chat_export.txt` - 纯文本聊天记录
- `chat_export.csv` - 结构化 CSV
- `chat_export.html` - 微信气泡对话风格 (可截图分享)
Step 5: 交互追问
报告生成后,提示用户可以继续追问:
- "帮我分析某个月份的聊天变化"
- "我们之间有没有什么有趣的梗/暗号"
- "帮我解读这段对话"
- "给我更多追求建议"
- "帮我生成一段表白/感谢的话"
对于追问,可以读取 analysis_report.json 中的完整数据来回答。
关键注意事项
- 平台差异说明:
- Windows:支持自动从内存提取密钥解密,用户只需保持微信登录即可
- macOS:由于系统安全限制(SIP,System Integrity Protection),无法像 Windows 那样直接从内存提取密钥。macOS 用户需要先使用第三方工具(如 wechat-decrypt)手动解密数据,然后将解密后的
decrypted目录复制到用户对话路径下
- 隐私至上: 在分析报告中不要泄露用户的 wxid 等敏感信息
- 语气拿捏: 分析要专业有深度,但语言要有温度、有网感,避免干巴巴的学术腔
- 金句质量: "一语胜千言"必须精炼、有画面感、能打动人心
- 追求建议: 要具体可执行,不要泛泛而谈;如果是单方面付出的关系,要诚实但温柔地指出
- 数据驱动: 所有分析必须基于真实数据,不要编造不存在的统计结论
故障排查
如果技能运行失败,请参考 references/troubleshooting.md 文件获取详细的故障排查建议,包括常见错误原因和解决方案。
目录结构说明
- scripts/: 包含主要的分析脚本
- vendor/wechat_decrypt/: 微信数据库解密组件,用于从微信内存中提取密钥并解密数据库
- check_dependencies.py: 依赖检查与自动安装脚本
- user_guidance.py: 用户引导脚本,帮助提供正确的联系人标识
- data_loader.py: 加载聊天数据
- stats_engine.py: 计算统计指标
- visualizer.py: 生成可视化图表
- data_exporter.py: 导出聊天记录
- wechat_analyzer.py: 主入口脚本
- references/: 参考文档
- analysis_prompt_guide.md: 分析提示指南
- troubleshooting.md: 故障排查指南
重要提示:请确保 vendor 目录完整存在,不要删除或修改其中的文件,否则微信数据库解密功能将无法正常工作。