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 一下 → 转发给需要的朋友

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

相关推荐
Momo__27 分钟前
VueUse createReusableTemplate —— 单文件组件内的模板复用神器
前端·vue.js
程序员小富33 分钟前
我开源了一个开发者专属的智能 JSON 工具,得到了媳妇高度认可
前端·vue.js·后端
小小小小宇33 分钟前
程序员如何给 LLM 装工具以及看懂推理过程
前端
写代码的皮筏艇33 分钟前
React中的forwardRef
前端·react.js·面试
槑有老呆42 分钟前
花三个月工资请了个 AI 程序员,结果它连青岛啤酒股价都查不了
前端
风骏时光牛马44 分钟前
Verilog开发常见问题汇总解析
前端
子兮曰1 小时前
AI Coding Method Map:一张图看懂 AI 编程的完整链路
前端·人工智能·后端
weedsfly1 小时前
语法糖褪去之后——Babel 转译产物中的 JavaScript 本貌
前端·javascript
JustHappy1 小时前
「软件设计思想杂谈🤔」“切图仔”也能懂编译原理?框架源码也许没那么难。聊聊 Vue 的编译(上)
前端·javascript·vue.js