1. 手动翻群 40 分钟,问题到底出在哪
先说结论:微信群聊总结这件事,真正耗时间的不是"总结",而是"翻"。我做过一个粗略统计,一个 200 人左右的项目群,一天下来有效消息大概 300 到 500 条,其中真正需要你记住的决策、待办、结论可能只有 8 到 12 条。但你要从 500 条里把这 10 条捞出来,得一条条往上翻,遇到图片、表情、转发链接还得点开看,40 分钟就这么没了。
更麻烦的是,微信群本身不提供任何结构化的历史检索。你搜关键词,它给你一堆上下文断裂的结果;你想按人筛选,它只能按发送者过滤,没法按"谁被点名了""谁承诺了 deadline"这种语义维度筛。所以每次周会前想快速回顾上周群里定了什么,基本只能靠手动翻。
市面上的 AI 总结工具我也试过几款,绕不开一个坎:聊天记录要先上传到对方服务器。对普通用户可能无所谓,但对做技术的人来说,群里聊的产品细节、客户名称、内部排期,这些东西一旦离开本机,你根本不知道对方存多久、怎么用。所以我的思路很明确——数据不出本机,AI 只读本地文件。
这套方案的核心是三段式:wx-cli 从本地微信数据库解密导出群聊记录成文本文件,Claude Code 读取这个本地文件,通过自定义 Skill 生成结构化摘要。全程没有网络请求,没有第三方 API 调用,没有账号登录。而 TaoToken 在这里的角色是给 Claude Code 提供一个统一的 Key 接入层,让你不用在多个模型供应商之间来回切换配置。
适合谁:每天要处理多个微信群、需要快速提炼决策和待办的人;对数据隐私有要求、不想把聊天记录传到云端的开发者;已经在用 Claude Code 做本地开发、想把它扩展到日常信息处理场景的人。
2. TaoToken 前置:统一 Key 接入与 config.toml 骨架
在动手配 wx-cli 和 Skill 之前,先把 TaoToken 的接入搞定。这一步的意义在于:Claude Code 默认走的是官方 Anthropic 接口,但如果你同时想用其他模型、或者想统一管理 Key 和额度,TaoToken 提供了一个兼容层,你只需要在 config.toml 里改一个 base_url 和 api_key,就能让 Claude Code 走统一入口。
先拿 Key。打开 TaoToken 控制台,在 API Keys 页面创建一个新 Key,复制出来。这个 Key 后面要填进 config.toml,所以先放好。
然后确认 Claude Code 已安装:
claude --version如果没有,先装:
npm install -g @anthropic-ai/claude-code接下来是 config.toml 的配置骨架。Claude Code 的配置文件默认在~/.claude/config.toml,如果没有就手动创建。下面这份是我实测可用的骨架,你直接复制改 Key 就行:
# ~/.claude/config.toml # TaoToken 统一 Key 接入配置骨架 [api] # TaoToken API 入口,注意不要加末尾斜杠 base_url = "https://taotoken.net/api" # 从 TaoToken 控制台复制的 Key api_key = "sk-你的TaoTokenKey" # 默认使用的模型,按需替换 model = "claude-sonnet-4-20250514" # 请求超时,单位秒 timeout = 120 [claude_code] # 本地执行模式,Skill 读取本地文件 local_execution = true # 关闭遥测 telemetry = false [skills] # Skill 存放目录 dir = "~/.claude/skills" # 允许 Skill 读取本地文件 allow_local_file_read = true几个关键点说明一下。base_url填https://taotoken.net/api,这是 API 入口,不要加 UTM 参数,也不要加末尾斜杠,否则部分客户端会拼接出双斜杠导致 404。api_key就是刚才复制的那个。model字段按你实际要用的模型填,如果你不确定填什么,可以先留空,Claude Code 会用默认模型。
local_execution = true这个开关很重要,它决定了 Skill 是在本地读取文件后把内容作为上下文发给模型,而不是让模型去访问网络。配合allow_local_file_read = true,Skill 才能读到~/group-chat.md这类本地文件。
配好之后验证一下配置有没有被正确加载:
claude config show如果输出里能看到你填的 base_url 和 model,说明配置生效了。如果报错说找不到配置文件,检查一下路径是不是~/.claude/config.toml,有些版本会读~/.config/claude/config.toml,两个位置都放一份最保险。
3. 可复制配置:wx-cli 安装与 Skill 定义
TaoToken 接入搞定后,接下来是 wx-cli 和 Skill 的配置。这两块是本地总结器的核心。
3.1 安装 wx-cli 并导出群聊记录
wx-cli 是一个用 Rust 写的开源工具,作用是在本机读取微信本地数据库并导出聊天记录。它的原理是扫描运行中的微信进程内存,拿到 SQLCipher 的解密密钥,然后在本地实时解密数据库、执行查询。整个过程数据不出本机。
安装:
npm install -g @jackwener/wx-cli装完验证:
wx --versionmacOS 用户首次运行可能遇到"开发者无法验证"的提示,需要做一次 ad-hoc 签名:
sudo codesign --force --deep --sign - $(which wx)签名后重新运行即可。然后确认能读到数据:
wx sessions看到你的微信会话列表输出就说明正常。接着导出目标群的聊天记录:
wx export "项目周例会群" --format markdown -o ~/group-chat.md如果需要更多历史记录:
wx history "项目周例会群" --limit 500 --format markdown导出格式是"发送者:内容"的结构,适合直接给 AI 读。这个文件只在你本地,没有任何上传操作。
3.2 创建 Claude Skill 定义
Skill 是 Claude Code 的自定义指令封装。创建目录:
mkdir -p ~/.claude/skills/wechat-summarizer然后写入 SKILL.md:
# WeChat Group Summarizer Skill ## 触发方式 当用户输入 /wechat-summary 或要求"总结群聊"时激活本 Skill。 ## 执行步骤 1. 读取参数中指定的本地文件路径,或默认读取 ~/group-chat.md 2. 分析聊天记录,识别以下内容: - 今日核心决策(有明确结论的讨论) - 待办事项(有人被点名、有 deadline 的任务) - 未解决的问题(讨论中途中断、结论不明确的) - 重要信息(发布计划、版本号、链接) ## 输出格式 群聊摘要:[群名称] [日期] 核心决策 - [决策内容] — 由 [谁] 确认 待办事项 - [任务内容] — 负责人:[谁],截止:[时间] 未解决问题 - [问题描述] — 需要 [谁] 跟进 重要信息 - [关键信息条目] ## 约束 - 所有输入来自本地文件,不调用任何网络接口 - 摘要语言与群聊语言一致 - 摘要控制在 300 字以内,超出则优先保留决策和待办保存后无需重启 Claude Code,直接可用。
3.3 config.toml 与 Skill 的联动配置
如果你想让 Skill 默认读取固定路径,可以在 config.toml 里加一段:
[skills.wechat_summarizer] default_input = "~/group-chat.md" output_format = "structured" max_length = 300这样每次调用/wechat-summary不带参数时,它会自动读~/group-chat.md。
4. 验证请求:一次群聊总结的完整动作
配置全部就位后,跑一次完整验证。整个过程分三步:导出、调用、检查输出。
第一步,确保微信在运行状态,然后导出群聊记录:
wx export "项目周例会群" --format markdown -o ~/group-chat.md第二步,进入 Claude Code:
claude在交互界面里输入:
/wechat-summary ~/group-chat.md或者直接说:
帮我总结一下 ~/group-chat.md 这个群聊记录,用结构化格式输出第三步,检查输出。正常情况下你会看到类似这样的结果:
群聊摘要:项目周例会群 2026-05-15 核心决策 - 今日发布计划确认:下午 3 点灰度,晚上 8 点全量 — 由李姐确认 待办事项 - 准备回滚脚本 — 负责人:所有人,截止:下午 3 点前 未解决问题 - (本段记录中无未解决问题) 重要信息 - 测试环境回归测试已完成(张工确认)整个过程耗时不超过 30 秒。如果群聊记录很长(500 条以上),可能需要 1 到 2 分钟,但不会更久。
验证成功的标志有三个:输出里有明确的结构化分段、决策和待办被正确提取、没有出现网络请求报错。如果输出是空的或者格式混乱,先检查~/group-chat.md里有没有内容,再检查 config.toml 里的allow_local_file_read是不是 true。
如果你想把这件事做成每日自动化的,可以写个 shell 脚本加到 crontab:
#!/bin/bash # ~/scripts/wechat-daily-summary.sh GROUPS=("项目周例会群" "运营对接群" "技术交流群") DATE=$(date +%Y-%m-%d) OUTPUT_DIR=~/wechat-summaries/$DATE mkdir -p $OUTPUT_DIR for GROUP in "${GROUPS[@]}"; do wx export "$GROUP" --format markdown -o "$OUTPUT_DIR/$GROUP.md" echo "✓ 已导出:$GROUP.md" done echo "导出完成,文件在 $OUTPUT_DIR"加到 crontab,每天早上 8:55 自动跑:
crontab -e加入这行:
55 8 * * 1-5 /bin/bash ~/scripts/wechat-daily-summary.sh这样你 9 点打开电脑,各群的原始记录已经在本地等你了,打开 Claude Code 一条指令出摘要,5 分钟内搞定一天的群信息归总。
5. 本篇常见错排查
配置过程中有几个坑我踩过,列出来帮你省时间。
坑一:wx-cli 报"无法连接到 WeChat 进程"
原因是微信没有运行,或者微信版本太老(低于 4.x)。wx-cli 依赖扫描运行中的微信进程内存来获取解密密钥。解决:打开微信,确保登录状态,重新执行命令。
坑二:导出的记录里有乱码
通常是微信版本和 wx-cli 版本不匹配。先升级 wx-cli 到最新版:
npm update -g @jackwener/wx-cli如果还是乱码,检查微信是不是 4.x 版本。3.x 版本的数据库结构不同,wx-cli 对 3.x 的支持有限。
坑三:Claude Code 报 401 或 403
大概率是 config.toml 里的 api_key 填错了,或者 base_url 多了末尾斜杠。检查这两处:
base_url = "https://taotoken.net/api" api_key = "sk-你的TaoTokenKey"如果 Key 没问题但还是 401,去 TaoToken 控制台确认一下 Key 的状态是不是 active,有没有过期。
坑四:Skill 读不到本地文件
检查 config.toml 里这两个开关:
[claude_code] local_execution = true [skills] allow_local_file_read = true两个都必须是 true。另外确认文件路径是绝对路径或者~/开头的路径,相对路径在 Skill 里可能解析不到。
坑五:摘要输出太长或太短
调整 SKILL.md 里的max_length约束,或者在 config.toml 里覆盖:
[skills.wechat_summarizer] max_length = 500如果输出太短漏了关键信息,把约束改成"优先保留决策和待办,重要信息可适当展开"。
坑六:crontab 脚本不执行
crontab 的环境变量和你的 shell 不一样,wx命令可能找不到。在脚本开头加上 PATH:
export PATH="/usr/local/bin:/usr/bin:/bin:$PATH"或者用which wx查到绝对路径,在脚本里写全路径。
6. 把 40 分钟压到 5 分钟的关键动作
整套方案跑通之后,你每天的实际操作就三步:早上打开电脑,群聊记录已经自动导出到本地;打开 Claude Code 输入/wechat-summary;看一眼结构化摘要,决策、待办、未解决问题一目了然。原来 40 分钟的翻群时间,压缩到 5 分钟以内。
如果你还没配 TaoToken 的 Key,先去控制台创建一个,然后按第 2 节的 config.toml 骨架填进去。接入文档里有更详细的参数说明,遇到配置问题可以对照排查。想让 Claude Code 直接跑起来验证模型连通性,可以用模型对话页面先测一条请求,确认 Key 和 base_url 没问题再配到本地。
对于每天要处理多个群、又不想把聊天记录传到云端的人来说,这套本地总结器的价值不在于"AI 多聪明",而在于数据始终在你自己的机器上,AI 只是帮你把 500 条消息里的 10 条关键信息捞出来。wx-cli 负责解密导出,Claude Skill 负责结构化提炼,TaoToken 负责统一 Key 接入,三者各司其职,链路清晰。
最后一个小技巧:如果你同时用多个模型做对比总结,可以在 config.toml 里配多个 profile,切换的时候只改 model 字段就行,不用重新配 Key。这样你可以用同一个 TaoToken Key 跑不同模型的摘要,对比哪个更符合你的阅读习惯。