# Wechat Chat Analyzer

> 微信聊天记录深度分析工具。分析1对1单聊的互动习惯、情感走势、性格画像，生成可视化图表和数据导出。当用户提到微信聊天分析、聊天记录分析、感情分析、好感度分析、追求建议、聊天统计、聊天热力图、词云、秒回率、主动性分析、聊天导出等任何与微信聊天数据分析相关的话题时，务必使用此技能。即使用户只是简单提到"分析我和某人的聊天"也要触发。

- Skill: `uniuni2000/wechat-chat-analyzer` (Agent Skill, multi-file: 15 files)
- Install (CLI): `npx skillmds@latest add uniuni2000/wechat-chat-analyzer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/uniuni2000/wechat-chat-analyzer/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: uniuni2000 (https://skillmd.com/u/uniuni2000)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/uniuni2000/wechat-chat-analyzer

---


# 微信聊天记录深度分析 Skill

## 概述

基于 [wechat-decrypt](https://github.com/ylytdeng/wechat-decrypt) 解密后的微信本地数据库，对1对1单聊进行深度分析。

**架构**: Python 脚本负责精准数据计算 (统计指标、图表、导出)，你 (LLM) 负责深度分析 (关系洞察、情感解读、性格画像、追求建议、文艺金句)。

## 使用前提

1. **权限要求**：
   - **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` 文件夹
     * **步骤2**: 使用第三方工具提取并解密数据库
       - 推荐使用开源工具 [wechat-decrypt](https://github.com/ylytdeng/wechat-decrypt) 或其他类似的微信数据库解密工具
       - 按照工具说明提取并解密微信数据库文件
     * **步骤3**: 将解密后的数据复制到用户对话路径下
       - 将解密工具生成的 `decrypted` 目录完整复制到当前用户对话路径下
       - 确保目录结构为：`{用户对话路径}/decrypted/message_*.db`
   - **Linux 用户**：暂不支持自动从内存抓取密钥，请先在 Windows 或 macOS 上使用其他工具提取数据，然后将解密后的 `decrypted` 目录复制到用户对话路径下。
2. **依赖检查**：脚本会自动检查并安装所需依赖。主要依赖包括：
   - `pycryptodome`：用于微信数据库解密（vendor 目录中的 wechat_decrypt 组件也依赖此库）
   - `matplotlib`：用于生成各种统计图表
   - `wordcloud`：用于生成词云图
   - `jieba`：用于中文分词，生成词频统计
   - `numpy`：matplotlib 的依赖库，用于数据处理

   **说明**：
   - vendor 目录中的 wechat_decrypt 组件依赖 pycryptodome 库进行微信数据库解密
   - 脚本会在执行前自动检查并安装缺失的依赖
   - 所有依赖均为标准 Python 库或常用第三方库
3. **微信保持登录**：
   - **Windows 环境**：用户只需保持电脑版微信处于登录状态即可，脚本会自动从内存提取密钥并解密数据库
   - **macOS 环境**：用户需要先手动准备解密数据（见上文 macOS 用户说明），将 `decrypted` 目录放置到用户对话路径下
   - 如果脚本由于环境问题无法自动从内存抓取密钥解密，会在执行后自动提示用户如何准备解密数据

## 完整分析流程

### Step 0: 数据准备

- **Windows 用户**：保持电脑版微信处于登录状态即可，脚本会自动从内存提取密钥并解密数据库
- **macOS 用户**：需要先手动准备解密数据，具体步骤见上文"使用前提"中的 macOS 用户说明

### Step 1: 提取参数并**绝不询问**

根据"最小干预原则"，你**不需要且绝对不要向用户确认任何参数或等待他们同意**。只要用户提到想分析他们和某人的聊天，你就立刻进入执行环节。

- 提取**好友标识**: (他们在对话中提到的好友名字或由于上下文显而易见的称呼)
- 设定**自己的称呼**: 默认代入 "我" 即可。

### Step 2: 幕后静默执行（*这是你要做的事，不是用户*）

**【封印级死命令】：作为 AI 助手，你必须立刻、主动、静默地使用你的** **`终端/命令行/run_command`** **工具在后台执行下方的脚本！绝对不要回复"好的我将为你分析...请确认..."等任何形式的套话，也不要告诉用户执行步骤让他们自己去敲代码！直接抛出执行动作！**

执行下面这条命令（请根据你当前的上下文环境替换大括号里的变量，特别是技能的根目录，比如对于 Qwen 可能是 `~/.qwen/skills/wechat-chat-analyzer`）：

```bash
# 注意：将 {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` 获取详细的分析指南。

#### 报告结构

使用以下格式输出报告:

```markdown
# 💬 {我} × {好友名} 聊天深度分析报告

> 分析时间: YYYY-MM-DD | 消息量: N条 | 跨度: N天

---

## 🎯 一语胜千言 · 回忆杀

> [用一句文艺、有网感的话总结这段关系的核心特质或高光时刻]

---

## 📊 数据全景

| 指标 | 数据 |
|---|---|
| 总消息量 | N条 (我 X% / TA Y%) |
| 聊天跨度 | N天 (活跃N天, 活跃率 X%) |
| 主动发起 | 我 N次 / TA N次 |
| 平均日消息 | N条/活跃天 |
| ... | ... |

---

## 🏃 互动习惯分析

### 主动性 PK
[解读谁更主动，背后的关系动态]

### 秒回率报告
[解读双方的回复速度差异，暗示的态度]

### 📅 聊天生物钟
[解读活跃时段，生活习惯推测]

---

## ☁️ 高频词云

[嵌入词云图片，解读双方用词差异暗示的性格和关系]

![我的词云](wordcloud_my.png)
![TA的词云](wordcloud_friend.png)

---

## 🔮 情感大师深度诊断

### 关系类型判定
[基于对话内容、互动模式、用词习惯判断关系类型]

### 双方性格画像
[基于统计特征+对话内容分析性格]

### 好感度/亲密度走势
[基于月度趋势、回复速度变化、对话内容变化等解读]

### 💡 高情商行动建议
[根据关系类型和现状，给出可执行的建议]

---

## 📈 可视化图表

[嵌入各图表文件]

---

## 📁 数据导出

已导出以下文件:
- `chat_export.txt` - 纯文本聊天记录
- `chat_export.csv` - 结构化 CSV
- `chat_export.html` - 微信气泡对话风格 (可截图分享)
```

### Step 5: 交互追问

报告生成后，提示用户可以继续追问:

- "帮我分析某个月份的聊天变化"
- "我们之间有没有什么有趣的梗/暗号"
- "帮我解读这段对话"
- "给我更多追求建议"
- "帮我生成一段表白/感谢的话"

对于追问，可以读取 `analysis_report.json` 中的完整数据来回答。

## 关键注意事项

1. **平台差异说明**：
   - **Windows**：支持自动从内存提取密钥解密，用户只需保持微信登录即可
   - **macOS**：由于系统安全限制（SIP，System Integrity Protection），无法像 Windows 那样直接从内存提取密钥。macOS 用户需要先使用第三方工具（如 wechat-decrypt）手动解密数据，然后将解密后的 `decrypted` 目录复制到用户对话路径下
2. **隐私至上**: 在分析报告中不要泄露用户的 wxid 等敏感信息
3. **语气拿捏**: 分析要专业有深度，但语言要有温度、有网感，避免干巴巴的学术腔
4. **金句质量**: "一语胜千言"必须精炼、有画面感、能打动人心
5. **追求建议**: 要具体可执行，不要泛泛而谈；如果是单方面付出的关系，要诚实但温柔地指出
6. **数据驱动**: 所有分析必须基于真实数据，不要编造不存在的统计结论

## 故障排查

如果技能运行失败，请参考 `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` 目录完整存在，不要删除或修改其中的文件，否则微信数据库解密功能将无法正常工作。

