DeepSeek Harness 微信日报插件

前言

在本地跑大模型时,消息量一上来就很难一眼看出当天有哪些事需要跟进。常见做法要么手动翻聊天记录,要么在手机上看。手动翻耗时,在手机上看又打断工作流。

DeepSeek Harness(DSH)的插件机制可以把这类操作收束进一个设置页里,用本地规则或者模型来做分类与摘要。下面介绍的 dsh-wechat-daily 就是一个这样的插件:它从本机微信 4.x 的数据库里把当天的消息读出来,按优先级排序,分成“需要处理”“值得一看”“可以忽略”三段,并在对话里给 agent 一个 wechat_daily_report 工具。

这是什么

dsh-wechat-daily 是一个装进 DeepSeek Harness 设置页的微信日报插件。它只读本机微信数据库,解密、排序、渲染全部在本机完成;是否让模型写摘要是一个可选开关。插件由 zengpu987-ctrl 维护,目前星标数为 0。

核心功能

只看该看的:私聊、@我、被点名、涉及钱/截止/请求的消息会排在前面;服务号、外卖券群、刷屏群会被压在后面。模型可选:开着时由模型写摘要与分类;关掉时只走本地规则,不会在本地生成任何消息。定时:默认每天 21:30 生成,可改;当天漏掉的会在 DSH 启动后补一次。可追溯:日报以 Markdown + JSON 存在 ~/.dsh/storages/dsh-wechat-daily/reports/,可以随时删除。只读:解密到本机缓存后只做 SELECT;不写回微信容器,不需要关闭 SIP。

安装与启用

前置条件:macOS(微信 4.x 桌面版)、Node ≥ 23.4(需要内置 node:sqlite)、已装 DeepSeek Harness。

git clone https://github.com/zengpu987-ctrl/dsh-wechat-daily.git

然后,在 DSH 里安装这个目录:

plugin_manager action=install_bundle target=/absolute/path/to/dsh-wechat-daily

安装完成后,打开 DSH 设置页,应该能看到“微信日报”一页。首次打开会提示“尚未绑定微信数据库”,下一步会做一次性的密钥捕获。

一次性密钥捕获

微信 4.x 的消息库是 WCDB / SQLCipher 4,密钥不在磁盘文件里明文保存,只在打开数据库的瞬间经过 CCKeyDerivationPBKDF。要取一次密钥,之后每天只读数据库。

流程(脚本在 tools/keycapture/,原理见 docs/key-capture.md):

  1. 正常退出微信(菜单“退出”,不要强杀)。
  2. 复制 /Applications/WeChat.app 到临时目录,只对副本做 ad-hoc 重签——原版一个字节都不动。
  3. 用 lldb 以父进程方式启动副本,在 sqlite3_key / CCKeyDerivationPBKDF / PKCS5_PBKDF2_HMAC 上记录参数并自动继续。
  4. 认出多库复用的那把主密钥,用它派生每库密钥,逐个用第 1 页 HMAC 验证。
  5. 关掉副本、删临时目录、重新打开原版微信。

产物是 ~/.dsh/storages/dsh-wechat-daily/keys.json(权限 600),只放主密钥与派生缓存。这个文件不要提交、不要上传、不要放进同步盘。

微信换密钥(重装、重新登录、大版本改动方案)后需要重新捕获。多个微信账号各有主密钥,需分别捕获。

配置

在 DSH 设置页里可以改:是否每天自动生成、生成时间、是否让模型写摘要、我的昵称(用于识别点名)、关注关键词。配置值存在 ~/.dsh/storages/dsh-wechat-daily/config.json。

agent 工具:

action 作用
status 密钥是否已绑定、今天是否已生成、下次生成时间
generate 立即生成(可带 date: YYYY-MM-DD)
latest 读出现成的日报正文

它是怎么读数据的

  1. 账号主密钥 + 每个库自己的 salt → 派生该库密钥(PBKDF2-HMAC-SHA512,256000 轮)。
  2. 先给数据库和它的 -wal 做快照,再逐页解密到缓存;WAL 帧只在 SQLite 校验链完整时才应用,合并结果过 quick_check,不通过就退回主库镜像——宁可少最后几条,也不返回损坏数据。
  3. node:sqlite 只读查询 Msg_<md5(username)> 表,按 Name2Id 还原发言人,按 contact 还原会话名,按 WCDB_CT_message_content 判断 zstd 压缩并解压。

适用场景与注意

适合经常用微信沟通、又需要把当天消息结构化整理为“需要处理”“值得一看”“可以忽略”的 DSH 用户。

务必注意:插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证。解密、排序、渲染全在本机;只有你打开“让模型写摘要”时,被选中会话的摘要才会发给当前模型。请勿在 issue 里粘贴 keys.json、真实 wxid、聊天截图或完整日报。本项目用于本人设备上本人账号的数据整理。在部分司法辖区,绕过客户端加密可能受限;微信更新也可能使流程失效。作者不对使用后果负责,详见 LICENSE。

短结尾

dsh-wechat-daily 把本地微信消息整理进 DSH 设置页,提供“需要处理”“值得一看”“可以忽略”三段式日报与 agent 工具,适合希望把微信消息结构化、可追溯的开发者。插件主页见下方链接。

插件目录页
GitHub 仓库

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye