使用 Claude Code 实现微信 & Doscord 消息的定期总结
我自己加了不少微信群聊和 Discord Channel,内容包括投资、AIGC、独立开发等等,但群聊的一大问题就是信息密度低,经常会很多没有价值的聊天内容,而且通过群聊获取信息的效率也比较低,为了找到对自己有帮助的消息,需要在各个群聊上下划拉半天,即时消息产品用于知识交付场景是有天然缺陷的。
之前我已经将大部分阅读行为收拢到了 Readwise 平台,信息源来自我的 RSS Feed、newsletter 订阅以及平时的文章剪藏。一个自然的想法就是利用 LLM,将微信群、Discord Channel 的信息定期总结上传到 Readwise,这样我只用关注群聊中重要的、我感兴趣的内容。
其实老早之前就有这个计划,但一直懒于实现,正好最近开始用 Claude Code,体感上写项目比 Cursor 更快,所以就想把这件事也交给它,快速实现一版 MVP。
实现流程
在使用 Claude Code 之前,我已经对项目有了功能上的拆分:
- 微信 & Discord 群聊消息获取
- 整理消息,拼接 Prompt,调用 LLM API 获取返回数据
- 将返回结果通过 API 上传到 ReadWise
- 按设定好的规则,周期执行总结任务
其中 2, 3, 4 对 Claude Code 来说是非常简单的,但 1 就比较麻烦,这一步我是使用 ChatGPT-5 Thinking 来帮我做调研,Github 上有好几个获取微信和 Discord 数据的开源项目,可以直接让 ChatGPT 帮我对比已有开源项目的异同,分析哪个 repo 更适合我的需求。
这一部分没有交给 Claude Code 主要有几个原因:
Claude Code 在 Planning 阶段倾向于直接告诉你最终计划,对于为什么选择这个项目、以及项目的一些优势劣势只会有很简略的介绍,缺少多个项目的横向对比,比如它一开始说要使用开源项目 WeChatMsg,但这个项目实际上已经被投诉下架了。。。
Claude Code 搜索广度不够,ChatGPT 找到的最合适的开源项目,就没有出现在 Claude Code 调研结果里
- 微信和 Discord 都涉及到一些个人隐私数据,我不希望交由 Claude Code 全程让它自己调试 API,你不知道它会做什么,会踩什么坑
- 获取微信数据的前置依赖更多是工具使用的范畴,而非代码开发,Claude Code 不擅长前者
GPT-5 Thinking 在规划、调研方面很强,比我自己从头搜索要快很多,可以快速让我对这些开源项目原理、使用、风控有宏观上的了解,它的调研结果的一部分可以直接作为 Claude Code 的输入。
通过 Chatlog 获取微信消息
回顾下来,这个项目最麻烦的点就是获取微信群聊数据,毕竟微信是闭源产品,第三方工具想要获取微信数据主要是以下两种方式:
- 从微信进程中抓取数据库密钥,监控 DB 变更,对聊天消息做实时解密后供查询
- 直接使用第三方修改过的微信客户端(例如 WeChatTweak-macOS),并通过插件暴露消息查询端口
这两种方式中,魔改的微信客户端可能有封号风险,所以我选择了抓密钥的方式;不过在这一步上也折腾了蛮久,主要还是微信 & MacOS 的风控原因
由于在微信 Windows 4.0.3.36 & macOS 4.0.3.80 以上的版本中(现在最新版已经 4.0.6 以上了),密钥信息不再长时间保留在内存数据中,所以 Chatlog 无法获取最新版本的微信密钥,为了获取密钥,本地微信客户端需要回退到 4.0.3.80 之前的版本,这个 issue 解释 是作者 2025/08/18 才更新上去的,当时我已经自己折腾了好几天 -_-,往前回退了几个小版本都没有成功,一度以为是项目不支持 MacOS 4.0+ 微信版本,差点出师未捷身先死,后来再翻 issue 才发现这个说明:
另外,由于 Chatlog 使用文档不够详细,有些必要的命令行参数在文档中没有体现,所以使用时也遇到一些小坑,用 ChatGPT 给的方法搞了半天也也没有解决,最后是老老实实执行 chatlog help server
去看里面所有的参数解释,才发现因为我本地微信版本是 4.0.xx
,-v 参数要指定为 4,默认设置为 3,两者互不兼容,这个问题在 readme 里没有提及,当时 issue 里也没有相关讨论,所以 ChatGPT 自然没办法找到结果,给出了一堆错误的解法,毕竟它不能替代我执行命令
正好在我实现这个功能的时候,Chatlog 的作者 push 了一版新的代码,支持 Docker 部署以及自动解密的能力,所以我就不需要去单独的去做定时解密了,这部分因为作者没更新文档,所以我还是需要去看他的代码 diff,看命令参数哪里有调整,这目前也是无法直接使用 AI 工具做到的
文档里提供的示例命令只有一句简单的 chatlog server
,而最终实际需要的完整启动命令行如下:
1
chatlog server -k "$KEY" -d "$DATA_DIR" -w "$WORK_DIR" -a "$ADDR" -v 4 --auto-decrypt true -p darwin
到这一步才算完全把微信聊天记录完整暴露出来,接下来只需要把 API 定义告诉 Claude Code,然后告诉它抓取某某群聊当天的所有消息,然后进行整理,这一步是 Claude Code 非常擅长的,他会自动调用 api 查看返回的数据结构,创建好 Client 并测试输出的结果是否正确,基本不需要我进行人工干预。
使用 DiscordChatExporter 读取 Discord 消息
和微信比起来,Discord 数据获取就要简单很多,DiscordChatExporter 连 Cli 都已经编译好了,下载后开箱即用,只需要输入我的 Discord token,指定 channel 就能拉取消息了,个人 token 一般也不会改变,所以设置一次就行。
唯一要注意的是 Discord 官方明令禁止用用户 token 做自动化,合规方式是创建一个 bot,然后将 bot 拉入 channel,使用 bot token 拉取数据。不过我拉取频率低,一天就爬几次,所以被封号的概率也很低,风险可控。
LLM API
在完成群聊数据获取后,下一步就是 Prompt 调优,使用 LLM 进行总结,这一部分流程搭建比较简单,claude code 基本一遍就搭好架子了,更多的时间在于调整 Prompt 看效果。
我自己经常在用的 API 有三个:
火山引擎:Deepseek 模型,年初 Deepseek 最火的时候注册的,价格便宜,之前充的几十块钱还没花完,在海外速度比阿里云上的快一些
Google AI Studio:Google 免费提供的 LLM API,每个用户每天不少额度,但是我测试下来,使用 gemini-2.5 pro 时候经常出现报错,不够稳定,有时候输出一半的内容,或者甚至啥都没输出就结束了,浪费了我不少时间调试。。。所以最后还是掏钱用 OpenRouter
OpenRouter:API 聚合平台,包含 GPT-5, gemini-2.5 pro, Deepseek V3.1 等几乎所有主流模型,都是官方价格
关于模型选择
对于自用、低频的请求,没有必要花大量时间微调 Prompt 并期盼在便宜模型上取得比较好的效果,不如直接加钱上最好的模型,同样的 Prompt 用 GPT-5, gemini-2.5 pro 基本一遍就能够得到想要的结果,用 Deepseek,GPT-4 就差上一截,调来调去没什么明显提升
当然如果做大量信息总结,那就值得多花点时间调试 Prompt,好模型确实烧钱如流水。。。
使用 Claude Code 的一些感受
花钱订阅 AI Coding 工具完全是值得的,以往由于人力抽不出时间来做的项目,现在借助 AI 可以几天内快速实现一版 MVP 看到效果,从之前的 Cursor 换到 Claude Code,能明显感觉到我需要辅助 AI 进行 Coding 的时间更少了,不需要手动 Apply、跑测试,然后把结果反馈给 AI,Claude Code 把这些事情也包圆了。
但这不代表 Claude Code 是万能的,比如我这个项目是无法单靠 Vibe Coding 完成的,必须有我从旁协助。在 Coding 过程中我也发现,有时候尽管它写了测试文件,或者做了 1,2,3,4 几个规划,但测试跑出来有问题的时候,他会误判「这个不是重要问题,整个流程能跑通了」,然后需要我主动提醒它要关注这个报错,然后它才会再起一个 task 开始进行问题修复。
如果你也是用第三方 API,需要额外注意隐私泄露风险,一般我们会把各种 token 通过环境变量保存,一般是放到 .env
文件,不过由于我让 Claude Code 自动执行命令行调试,我发现它在遇到异常时,会主动查看这些环境变量进行 debug,这些操作就会导致本地的 token 被放到上下文中发给模型,使用第三方的套壳 API,信息泄露的风险就会比较高。所以为了降低信息泄露风险,可以主动设置权限控制,精确禁止它读取某些文件/目录(比如 .env
),也可以禁止它执行可能泄露环境变量的命令。当然,这样也会稍微影响 Claude Code 的 debug 能力。
最后,Claude Code 太烧 token 了,比如下面这个 task 总共花了 1 个小时,token 总共烧了 $8.9。。。这还是没有使用 Opus 模型的情况,直观上成本还是蛮高的,Claude 也已经开始收紧订阅用户每天的用量;我现在是用的第三方套壳平台,只用付月费,每天大概能连续用 3-4h,一个项目一般要拆到几天完成,不过价格上会比官方便宜不少。但第三方平台毕竟都不怎么合规,有被平台彻底 ban 掉的风险