『Agent项目实战』WeChatDaily 开源实战:用 AI Coding 自动生成微信群日报

📣读完这篇文章里你能收获到
- 📁 看懂 WeChatDaily 如何把微信群聊变成可视化日报
- 🐍 按 README 主路径跑通:装依赖 → 配
.env→ 对话让 Agent 出日报 - 🌐 理解本地数据处理、Agent 分析和 HTML/PNG 渲染的分工
- 🖥️ 避开 raw_key、子模块、PNG 渲染这些常见坑
文章目录
前言

微信群一热闹,信息就很容易变成“刷过去就没了”。课程群、技术交流群、社群运营群尤其明显:白天大家讨论了一堆工具、方案、问题和结论,晚上想复盘时,只能在聊天记录里一点点翻。
我自己开源了 WeChatDaily(GitHub:Bryan-Cyf/WeChatDaily)。做这个项目,是因为我自己也有好几个技术群、课程群要复盘——消息一多,手翻聊天记录真的顶不住。
它的目标很直接:在 Windows 本机处理微信 4.1 的群聊数据,再通过内置 Agent Skill 完成话题分析,最后生成 Markdown、HTML,甚至 PNG 长图日报。
我设计的推荐路径不是“让用户自己一条条敲 CLI 导出聊天记录”,而是:装好依赖 → 配好 .env → 在 AI Coding 工具里跟 Agent 说一句话。setup、decrypt、export 这些命令 Agent 会按需自动执行;只有你想手动验流程时,才需要看 README 的「日常使用」命令参考。
我更想把它做成一个“AI Coding 工作流样板”:传统脚本负责脏活累活,Agent 负责理解、归纳和生成结构化内容。这样分工之后,项目本身不用内置大模型接口,也不需要在仓库里塞 API Key——这是我刻意选的设计。
完整日报需走完 Skill 工作流(导出 → Agent 分析 → 渲染 HTML / PNG)。下面是匿名化示例,和 README「效果预览」一致,方便先看排版与信息结构:

示例素材来自匿名化后的本地日报,仅用于展示排版与信息结构。
一、WeChatDaily 到底解决什么问题
WeChatDaily 不是一个“聊天记录查看器”,它更像一条面向微信群复盘的自动化流水线。它关心的不是把所有消息原样搬出来,而是把一天的群聊变成一份可以阅读、保存和传播的日报。
1.1 它的核心链路
README 里已经把链路讲得很清楚:
wx_key -> wechat.py setup -> decrypt -> export Markdown
-> AI Coding Agent 分析 -> analysis JSON
-> render_manual_report.py -> HTML / PNG 日报
这里面有三个关键角色。
第一个是本地工具链。wx_key 负责提取微信本地 raw_key,WeChatDecrypt 负责数据库解密,wechat.py 把配置、解密、群列表和导出串起来。
第二个是 Agent Skill。项目内置了 wechat-group-daily-report Skill,Agent 读到导出的 Markdown 聊天记录后,会按固定 Prompt 生成结构化 JSON,包括今日概览、主要话题、参与者和证据引用。
第三个是可视化渲染。scripts/render_manual_report.py 读取聊天记录和分析 JSON,再调用 src/visual_report.py 渲染成 HTML。安装 Playwright Chromium 后,还能继续导出 PNG。
这个分工最大的好处是:确定性的本地处理交给脚本,不确定的语义总结交给 Agent。脚本不需要假装自己懂聊天内容,Agent 也不需要直接碰复杂的微信数据库。
1.2 它适合哪些场景
我自己用下来,觉得最适合的不是普通个人聊天,而是有“复盘价值”的群:
- 技术交流群:沉淀问题、方案、工具和踩坑经验
- 课程群:整理当天讨论重点和学员高频问题
- 社群运营群:复盘话题热度、活跃成员和互动节奏
- 项目协作群:把碎片讨论整理成当天纪要
如果只是三五好友闲聊,日报价值不大。但如果群里每天都有知识点、问题排查、工具讨论,这种日报就很容易变成一个“自动知识沉淀器”。
二、从零跑通需要准备什么
WeChatDaily 当前的环境边界比较明确:
| 项 | 要求 |
|---|---|
| 操作系统 | Windows |
| Python | 3.14+ |
| 微信 | 4.1+ 桌面版 |
| AI 分析 | 支持 Agent Skill 的 AI Coding 工具(CLI / IDE 均可) |
| 可选 | Playwright Chromium(PNG 长图渲染) |
这类工具最怕环境没说清楚,照着教程跑半天才发现版本不对,所以先把边界摆在前面。

2.1 克隆项目和安装依赖
基础步骤如下:
git clone https://github.com/Bryan-Cyf/WeChatDaily.git
cd WeChatDaily
git submodule update --init --recursive
pip install -r requirements.txt
注意 git submodule update --init --recursive 不能省。项目依赖 tools/wechat-decrypt/ 子模块,如果漏掉这一步,后面很容易遇到类似 No module named 'key_scan_common' 的报错。
接着复制环境模板:
copy .env.example .env
.env 里最关键的是 WX_RAW_KEY。如果你有多个微信数据目录,还可以配置 WECHAT_DB_DIR;如果有常用群,也可以配置 WECHAT_DEFAULT_GROUPS。
2.2 下载 wx_key 并配置密钥
wx_key 是独立第三方工具,WeChatDaily 不会把它打进仓库,需要使用者自行下载。README 里写得很明确,请从上游原地址获取:
推荐(手动下载): wx_key v2.1.8 Release → 下载 wx_key-windows-v2.1.8.zip → 解压到 tools/wx_key/。
可选(自动下载): 项目也封装了同一上游地址的拉取命令:
python wechat.py download-wx-key
密钥提取步骤:
- 微信保持登录
- 运行
tools\wx_key\wx_key.exe - 复制 64 位 hex
raw_key到.env的WX_RAW_KEY

到这里为止,你不需要手动跑 setup / decrypt / export。文档里写得很清楚:配置好 .env 后即可让 Agent 生成日报;首次使用或微信重启后,按 Agent 提示选择「刷新解密」即可,它会完成初始化、解密、导出与渲染流程。
如果只想手动验证解密流程,再参考本文「2.4 手动命令(排错/验证用)」或 README 的「日常使用」章节。
2.3 交给 Agent 生成完整日报
这是我设计时定的主路径。
Skill 在哪
.claude/skills/wechat-group-daily-report/
├── SKILL.md
└── references/
├── analysis-prompt.md
└── env-setup.md
不同 AI Coding 工具对 Skill 目录的约定可能不同,按你所用工具的文档把上述目录放好即可。
怎么说一句话跑通
在支持 Agent Skill 的工具里加载本项目 Skill,然后直接说:
帮我生成「示例群①」今天的微信群日报
Agent 会按 Skill 工作流自动完成:
确认群名 → 确认日期 → 是否刷新解密
→(按需)setup / decrypt
→ export 导出 Markdown
→ Agent 分析 → 写入 analysis_*.json
→ render_manual_report.py 渲染 HTML / PNG
你作为用户,主要做三件事:选对群、选对日期、在需要时确认刷新解密。中间那些命令,是 Agent 替你敲的,不是 README 要求你手敲的。
产出在哪
跑通后,本地大致会有这些文件:
| 类型 | 路径 |
|---|---|
| 完整聊天记录 | export/reports/report_{date}.md |
| 结构化分析 | export/reports/analysis_{date}_{群}.json |
| 可视化日报 | export/reports/report_{date}_{群}.html |
| 图片版(可选) | export/reports/report_{date}_{群}.png |
2.4 手动命令(排错 / 验证用)
下面这组命令不是日常必做步骤,而是我放在 README「日常使用」里、给开发者手动验流程或排错用的。如果你已经走 Agent 主路径,可以先跳过本节。
列出已解密的群:
python wechat.py groups
手动导出指定日期(Skill 内部也会调类似命令):
python wechat.py export --date 2026-06-12 --groups 示例群① --limit 99999
重新解密(微信重启后 key 变化时常见):
python wechat.py decrypt
若你要完全手动走一遍初始化,才需要自行执行:
python wechat.py setup --raw-key $env:WX_RAW_KEY
python wechat.py decrypt
微信重启后 key 可能变化。如果 Agent 导出的消息偏少、日期不对,或解密失败,先别急着怀疑 Agent 本身——通常是 raw_key 过期了,重新跑 wx_key 更新 .env,再在对话里选「刷新解密」即可。
三、我做这个项目最想分享的设计:Agent 分工
很多人做“AI 工具”时,会习惯把大模型 API 直接塞进项目里:配置 Key、调用接口、返回总结。WeChatDaily 没有走这条路,而是把 AI 分析交给使用者当前的 AI Coding Agent。
这是我最想讲清楚、也是我最坚持的一个设计选择。
3.1 项目不内置 API Key
文档里写得很明确:聊天记录解密在本机完成,项目不内置 API Key 配置,AI 分析由你使用的 AI Coding Agent 驱动。
这样设计有几个好处:
- 工具边界清楚:本地工具只负责数据准备和渲染
- Agent 可替换:CLI、IDE、插件形态都可以接
- Prompt 可控:分析结构写在 Skill 里,用户能调整
- 安全意识更强:不用把聊天记录上传给项目内置服务
当然,这不等于没有隐私风险。聊天记录依然是敏感数据,你要清楚自己使用的 Agent 会如何处理上下文。如果是公司群、客户群、隐私群,建议只在可信环境里做本地实验,别随便把原始记录塞进不确定的云端工具。
3.2 Skill 把「会敲命令」变成「会说人话」
上一节 2.3 已经写了 Agent 主路径。这里补一句设计层面的理解:WeChatDaily 把一整套 CLI 步骤封装进 wechat-group-daily-report Skill,用户不需要记住 setup、decrypt、export、render_manual_report.py 的先后顺序。
你只要用自然语言描述目标(哪个群、哪一天、要不要刷新解密),Agent 就会按 Skill 里的 Step 1~7 往下走。这比“自己看 README 一条条复制命令”友好很多,也是 WeChatDaily 和普通导出脚本最大的差别。
更关键的是,分析 Prompt 和渲染脚本分开:Prompt 决定“日报里讲什么”,HTML 模板决定“日报长什么样”。未来要改风格、改栏目、改统计口径,都有比较清楚的改动点。

3.3 几个容易踩的坑
第一,环境版本不要想当然。项目标的是 Windows、Python 3.14+、微信 4.1+,如果你本地 Python 版本偏低,先升级再排错。
第二,子模块要初始化。缺 tools/wechat-decrypt/ 时,很多后续问题都会连环出现。
第三,.env 和导出目录不要提交。README 里也提醒了,.env、export/、tools/wechat-decrypt/config.json、tools/wx_key/ 都不应该进 Git。
第四,PNG 渲染依赖 Playwright Chromium。如果 HTML 能生成但 PNG 失败,多半是还没执行:
python -m playwright install chromium
第五,别把「手动 export」当成主流程。README 的快速开始只要求你配好 .env 后交给 Agent;python wechat.py export 是 Skill 内部或排错时才用的命令,不是每篇日报都要你亲自敲。
第六,群聊日报不是越“全自动”越好。涉及聊天记录时,最好保留人工确认:确认群名、确认日期、确认是否刷新解密、确认最终日报是否适合分享。
总结
WeChatDaily 的价值不只在“能导出微信群聊”,而在于它把微信群复盘拆成了一条清晰的 AI Coding 工作流:本地脚本处理数据,Agent 做结构化分析,HTML/PNG 负责可视化交付。
如果你是社群运营者,它适合把每天群里的高价值讨论沉淀下来;如果你是开发者,可以把它当成 Agent Skill 工作流的一个参考实现;如果你也在做自己的 AI 工具,这套分层方式可以直接借鉴。
我的建议是:先拿一个测试群跑通完整流程,再决定要不要接入到日常复盘。别一上来就处理敏感群,先把环境、边界和输出效果摸清楚。
项目已开源,欢迎 Star、Issue 和 PR。到这一步,你应该已经知道 WeChatDaily 怎么跑起来,以及哪里最容易卡住了。

更多推荐

所有评论(0)