AI看完你的微信,发现了些秘密?

如果有人能把你过去一年的聊天记录全部看完,然后告诉你

  • 你在沟通中有哪些盲区
  • 对方真正在意什么
  • 群里藏着哪些商业机会

你会不会很想听?这就是我做EchoSoul的初衷。 它能读取微信聊天记录,结合AI和自定义Prompt,生成性格分析、需求洞察、群聊精华等各种报告。 数据全程本地处理,隐私安全;操作简单到只需三步,小白也能用。 今天这篇文章,既讲怎么用,也讲怎么做,干货拉满。

先看个真实场景

周日晚上,我打开 EchoSoul,选了 vibe coding 群的聊天记录,点击"需求洞察"模板,一键生成。30 秒后,一份分析报告出现:本周讨论最多的痛点、潜在需求、可以立刻动手的产品方向。这些信息原本淹没在几千条消息里,我自己看完可能要 2 小时,还不一定能提炼得这么清晰。

这就是 EchoSoul 的日常使用体验------把信息过载变成洞察收获

三步就能上手

  1. 选择聊天对象 - 任意微信好友或群聊,支持多选
  2. 设定时间范围 - 最近一周、一个月、一个季度,或者自定义日期
  3. 选择分析模板 - 从 6 个内置模板里选,或者自己写 Prompt

点击生成,AI 开始工作。你能实时看到报告一个字一个字地生成出来,就像有人在给你写分析报告。生成完毕后,可以导出 Markdown 文件,或者一键生成海报分享到朋友圈。

能做什么?6 个内置模板

EchoSoul 内置了 6 个精心设计的分析模板,覆盖不同场景:

模板 适合场景 核心价值
需求洞察 垂直领域群聊 从聊天中挖掘产品需求和商业机会
对方性格分析 重要谈判、了解新同事 读懂对方沟通偏好,给出 MBTI 预测和建议
我的性格分析 年度复盘、自我成长 客观指出行为盲区,直面真实自我
群聊精华 工作群 999+、兄弟群日常 新闻播报风格总结,不错过重要信息
心智蓝图 长期合作伙伴、亲密关系 解码思维模式、决策逻辑、信任建立方式
动漫化双人模仿 娱乐玩梗 创作日式动漫风格对话脚本

每个模板都经过反复打磨,不是简单的"总结聊天",而是有洞察、有温度、有可执行建议的深度分析。

我的使用体验

用"需求洞察"分析编程群,AI 帮我从几千条消息里提取出 15 个高频痛点和 8 个产品机会,直接确定了下个项目做什么。

用"我的性格分析"看自己和朋友的聊天,发现自己"经常打断别人""喜欢讲道理而忽略情绪",虽然扎心但确实是成长的起点。

用"群聊精华"分析兄弟群,生成的"本月最沙雕言论 Top5"做成海报发到群里,笑果拉满。

常见问题

数据安全吗? 所有数据本地处理,不上传云端。

需要懂技术吗? 不需要。选对象、选时间、选模板、点生成,就这么简单。

支持哪些 AI? 兼容 OpenAI API 格式的服务都支持(GPT-4、Claude、DeepSeek、智谱等)。

能分析多久的记录? 取决于 AI 模型上下文长度。GPT-4 支持 128K tokens,Claude 3.5 支持 200K tokens,一般能处理几万条消息。

立即开始

下载地址 : GitHub Release (支持 macOS 和 Windows)

首次使用建议:

  1. 先用"群聊精华"试试手,选个活跃的群,分析最近一周的记录,感受一下效果
  2. 然后尝试"对方性格分析"或"需求洞察",体验深度分析的价值
  3. 如果觉得好用,可以研究一下自定义 Prompt,解锁更多玩法

遇到问题?


为什么要做这个项目

做 EchoSoul 之前,我以为这只是个周末小项目:读取微信聊天记录,调用 AI API,生成报告,应该很简单吧?

结果遇到了三个大坑,每个都够我折腾好几天:

  1. chatlog 不是开箱即用的库 - 只提供 CLI 工具,需要自己封装完整的服务层
  2. 如何设计提示词 - 简单的提示词只能得到机械总结,没有洞察和温度
  3. AI 生成报告要 30-60 秒 - 如何让等待不枯燥,体验不拉胯

这三个问题,每个都值得单独写一篇文章。下面我会讲讲我是怎么一个个解决的,以及踩过的坑。

第一道坎:封装 chatlog

问题: 如何读取微信聊天记录?

微信的聊天记录存储在加密的 SQLite 数据库中,没有官方 API。幸运的是,我找到了 chatlog 这个开源库。

转机与挑战

看到 chatlog 的时候我以为问题解决了,结果发现它只提供了 3 个命令行工具:

  • chatlog key - 提取密钥
  • chatlog decrypt - 解密数据库
  • chatlog server - 启动 HTTP 服务

这些命令需要你自己封装、管理进程、处理错误。这才是真正的难点

解决方案: 自建完整的服务层

我构建了 5 个核心服务来封装 chatlog:

  1. WeChatDetectionService - 检测微信进程,找到数据目录
  2. WeChatKeyService - 提取加密密钥
  3. WeChatDatabaseService - 解密数据库
  4. ChatlogProcessService - 管理 chatlog server 进程
  5. ChatlogApiService - 封装 HTTP 接口

关键技术: 如何找到微信数据目录?

微信 v3 的目录结构相对固定,我用 lsof、handle.exe 分析微信进程打开的文件,反推数据目录:

typescript 复制代码
// 1. 找到微信进程
const { stdout } = await execa('pgrep', ['-f', 'WeChat'])
const pid = parseInt(stdout.trim())

// 2. 分析进程打开的文件
const { stdout: files } = await execa('lsof', ['-p', pid.toString(), '-F', 'n'])

// 3. 从文件路径反推数据目录
for (const filePath of files.split('\n')) {
  if (filePath.includes('msg_0.db')) {
    return { dataDir: path.dirname(path.dirname(filePath)), version: 3 }
  }
}

当前限制 : 目前 EchoSoul 只支持微信 3.x 版本 。微信 4.0+ 的数据库结构有较大调整,还在适配中。如果你有相关经验,欢迎到 GitHub Issues 一起讨论解决方案!

完整流程:

复制代码
检测微信进程 → 提取密钥 → 解密数据库 → 启动服务 → 读取消息

每一步都有错误处理、超时控制、状态管理。这部分开发比我想象的复杂的多,但用户使用时是完全感知不到的,因为体验就是"一键初始化"。

第二道坎:设计有灵魂的提示词

问题: 如何让 AI 生成真正有价值的报告?

拿到聊天记录后,我兴冲冲地写了个简单的提示词:

"请分析这段聊天记录,总结对方的性格特点。"

结果 AI 给我返回了一堆正确的废话:

"该用户性格开朗,善于沟通,逻辑清晰..."

这不是我想要的。我要的是:

  • 有具体证据支撑的洞察
  • 能指导实际沟通的建议
  • 让人看完有收获感的分析

我的方案: 精心设计提示词模板

经过反复打磨,我总结出了 4 个核心设计原则:

1. 证据至上 - 所有结论必须来自聊天记录,不能瞎编

不能说"该用户性格开朗",而要说:

"从这句话可以看出:"[2024-01-15 14:23] 张三: 哈哈哈这个想法太棒了!我们可以...",该用户展现出积极响应他人想法的特质。"

2. 聚焦目标 - 分析谁就只看谁的发言

双人聊天记录中,要明确告诉 AI:"你的分析目标是[对方名称],我的消息仅用于提供对话背景。"避免 AI 混淆分析对象。

3. 优势优先 - 发掘亮点而非挑刺

同样的行为模式,可以有不同的解读角度:

  • 负面视角:"该用户话少,可能不善社交"
  • 优势视角:"该用户惜字如金,每次发言都直击要点,是高效沟通者"

我选择后者,让用户看完报告有收获感而非挫败感。

4. 结构化输出 - 不是一大段文字,而是分维度呈现

每个维度包含:

  • 观察结论
  • 引用证据(带时间戳的原文)
  • 潜在优势
  • 沟通建议

实战案例:"对方性格分析"的设计

这是最复杂的一个模板,包含:

  1. 角色定位: "你是一位资深心理学家,善于在对话中洞察人心"
  2. 分析工具箱: 6个维度(沟通风格、情感内核、认知框架、人际动力、价值体系、MBTI预测)
  3. 工作流程: 数据筛选 → 通读欣赏 → 确定维度 → 深入分析
  4. 输出格式: 核心闪光点 → 人物画像 → 分维度分析 → MBTI预测

每个维度都要求 AI 给出:

  • 具体的行为证据
  • 这个特质的潜在优势
  • 如何与对方更好沟通的建议

消息格式化: 极简主义

相比提示词的复杂,消息格式化反而很简单:

typescript 复制代码
const formatMessages = messages
  .map((msg) => `[${msg.time}] ${msg.senderName}: ${msg.content}`)
  .join('\n')

每条消息格式化为 [时间] 发送者: 内容,然后直接喂给 AI。现代大模型的理解能力足够强,简单格式反而更稳定。

第三道坎:让等待不枯燥

问题: AI 生成报告要 30-60 秒,用户会不会等得不耐烦?

这是体验设计的关键问题。如果用户只能看到 loading 动画转圈圈,30 秒会感觉像 3 分钟。

我的方案: 流式渲染

让用户能实时看到报告一个字一个字地生成出来,就像有人在给你写分析报告。这样等待变得可感知,体验完全不同。

技术实现: 三个关键环节

  1. AI 流式输出 - 调用 AI API 时开启 stream: true,逐块接收响应
  2. Electron IPC 实时传递 - 主进程收到 chunk 后立刻推送给渲染进程
  3. Markdown 增量渲染 - 使用 streamdown 库实时渲染,不会重新渲染整个文档

完整的数据流:

scss 复制代码
AI API (流式) → 主进程 (IPC) → 渲染进程 (streamdown) → 用户看到

体验优化细节:

  • 增量保存: 每收到 100 个 chunk 就保存一次,防止生成中途崩溃
  • 状态管理: idle → generating → completed,清晰的状态机
  • 错误处理: 超时、网络中断、AI 服务不可用,都有友好提示

海报生成: 一键分享到朋友圈

报告生成后,可以用 markdown-to-image 转成海报。我配置了渐变背景、合适的字体和间距,颜值在线,可以直接分享。

技术栈总结

最终用到的核心库:

  • electron-vite - 构建工具,HMR 体验丝滑
  • chatlog - 微信数据库解密的基石
  • better-sqlite3 - SQLite 操作,M 芯片记得 rebuild
  • streamdown - Markdown 流式渲染,体验关键
  • markdown-to-image - 海报生成,配置简单
  • execa - 执行系统命令,比原生 API 好用
  • tweakcn - Tailwind 多主题支持

写在最后

从"周末小项目"到解决三个大坑,再到打磨出 6 个提示词模板,EchoSoul 的开发过程比我想象的复杂得多。但自己用下来,经常被 AI 生成的报告惊艳到------那些我完全没注意到的沟通模式、被忽略的需求信号、藏在日常对话里的洞察,都被一一提炼出来。

我们每天都在产生海量的聊天记录,但很少有人真正从中获得洞察。EchoSoul 想做的,就是把这些被忽略的对话,变成你成长的养分。

这是个开源项目,也意味着它还有很多不完美:微信 4.0+ 还在适配、更多 Prompt 模板等待设计。如果你有想法、有技术、或者只是想提个建议,都欢迎到 GitHub 一起参与。

下载试用 → 给个反馈 → 觉得有用就 Star 一下 → 转发给需要的朋友

愿你不再被聊天淹没,而是被洞察点亮。🌟

相关推荐
jump6802 小时前
闭包详细解析
前端
林希_Rachel_傻希希2 小时前
《DOM元素获取全攻略:为什么 querySelectorAll() 拿不到新元素?一文讲透动态与静态集合》
前端·javascript
PHP武器库2 小时前
从零到一:用 Vue 打造一个零依赖、插件化的 JS 库
前端·javascript·vue.js
温宇飞2 小时前
CSS 内联布局详解
前端
excel3 小时前
深入理解 Slot(插槽)
前端·javascript·vue.js
xiejava10183 小时前
开源安全管理平台wazuh-暴力破解检测与响应
安全·开源·wuzuh
GISer_Jing3 小时前
React中Element、Fiber、createElement和Component关系
前端·react.js·前端框架
知行力3 小时前
【GitHub每日速递 251011】无需注册!本地开源AI应用构建器Dyad,跨平台速下载!
人工智能·开源·github
CoderJia程序员甲3 小时前
GitHub 热榜项目 - 日榜(2025-10-09)
ai·开源·大模型·github·ai教程