自动提取微信聊天中的待办、日程和干货,推送至 Discord 论坛,实现任务闭环追踪与管理。
微聊天助手
功能概述
微聊天助手是一项面向实际任务的技能,主要用于描述 : “ WX Echo – QQ AI : QQ, QQ Discord Forum, QQ : ”.;Triggers. wx 回声. wechat 助手 QQWChat to do. wechat Calendar. wechat Cluster.。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
使用与执行
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
结果检查与注意事项
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
wechat-assistant
description: "WX Echo — 微信 AI 个人助手:自动从微信聊天中提取待办、日程、干货,推送到 Discord Forum,闭环追踪任务状态"
Triggers
- wx echo
- wechat assistant
- 微信助手
- 设置微信助手
- 微信待办
- 微信日程
- 微信干货
- wechat todo
- wechat calendar
- wechat digest
Prerequisites
- macOS 或 Windows + 微信桌面版 4.0+
- Python 3.8+ +
pip3 install pycryptodome zstandard pyyaml - OpenClaw 已配置 Discord(需开启社区功能以支持 Forum 频道)
- Python 依赖:
pycryptodome,zstandard,pyyaml
Architecture
两层设计:
Layer 1: 独立 CLI 工具(scripts/ 目录)
纯 Python,不依赖 OpenClaw,任何人都能用。只做数据提取输出 JSON,不调 AI API。
Layer 2: OpenClaw Skill(本文件 + prompts/)
Agent 读 prompt 模板,调 CLI 拿 JSON,分析后推送到 Discord。
File Structure
scripts/
decrypt/
find_all_keys_macos.c — C 密钥提取源码(macOS)
decrypt_db.py — 数据库全量解密(--config)
config.py — 配置加载器
refresh_decrypt.py — 增量解密(WAL patch,cron 用这个)
collector.py — 一次性增量同步命令
extract_todos.py — 提取私聊对话 → JSON
extract_calendar.py — 提取日程相关对话 → JSON
extract_digest.py — 提取群聊消息 → JSON
requirements.txt — Python 依赖
prompts/
todo-scan.md — 待办扫描 cron prompt 模板
calendar-scan.md — 日程扫描 cron prompt 模板
digest.md — 干货收集 cron prompt 模板
config.example.yaml — 配置模板
数据流
微信进程 → 加密DB + WAL(持续更新)
↓
refresh_decrypt.py(WAL patch,~70ms/DB)
↓
解密后 DB(持续更新)
↓
collector.py --sync(增量同步到 collector.db)
↓
extract_*.py(提取 JSON)→ Agent 分析 → Discord 推送
关键:
refresh_decrypt.py是保持数据新鲜的核心。每次 cron 都先运行它, 它会检测 WAL 文件 mtime 变化,只解密新增的 WAL frame(通常 <1 秒), 而不是每次全量解密 19GB 数据。 参考实现:bbingz/wechat-decrypt
Setup(首次设置流程)
用户说"帮我设置微信助手"时,Agent 按以下步骤引导:
工作目录(
):用户存放 config.yaml、all_keys.json、collector.db 等运行时文件的目录。 建议创建~/wechat-assistant。Agent 引导时先询问用户想放哪里,默认~/wechat-assistant。是 skill 安装目录(只读代码),是运行时数据目录(可写)。
Step 1: 创建工作目录 + 安装依赖
mkdir -p ~/wechat-assistant && cd ~/wechat-assistant pip3 install pycryptodome zstandard pyyaml
Step 2: 编译密钥提取工具(macOS)
cd/scripts/decrypt cc -O2 -o find_all_keys_macos find_all_keys_macos.c
编译不需要 sudo。运行密钥提取时才需要 sudo。微信桌面版必须正在运行。
Step 3: 提取密钥
cdsudo /scripts/decrypt/find_all_keys_macos # 输出 all_keys.json 到当前目录
必须
cd到 config.yaml 所在的目录再运行,因为all_keys.json会输出到当前工作目录, 而 config.yaml 默认配置keys_file: "./all_keys.json"是相对于 config.yaml 解析的。
Step 4: 创建配置文件
cp/config.example.yaml /config.yaml
引导用户填写:
wechat.db_dir— 微信数据库目录(macOS 自动检测路径:~/Library/Containers/com.tencent.xinWeChat/Data/Documents/xwechat_files/*/db_storage,取*部分中含 wxid 的那个)wechat.self_wxid— 用户的微信 wxid(从db_dir路径中提取,格式如wxid_xxxxxxxxxxxx;或在解密后查contact.db中type=0的记录)monitor.groups— 想监控的群 chatroom_id(格式如12345678@chatroom;可在首次同步后用sqlite3 collector.db "SELECT chatroom_id, chatroom_name FROM watched_chats WHERE chatroom_id LIKE '%@chatroom' LIMIT 20"查看)monitor.work_groups— 工作群映射(日程扫描用,非 @chatroom 格式的工作群也会保留)
Step 5: 解密数据库
cd/scripts python3 decrypt/decrypt_db.py --config
Step 6: 首次采集
# 首次同步(自动发现所有群和私聊) python3/scripts/collector.py --config --sync
--sync首次运行时如果 watched_chats 为空,会自动触发 discover(扫描 session.db 和 contact.db)。 ⚠️ 首次同步会注册所有历史会话,可能较慢。同步完成后可用:sqlite3查看已注册的会话,手动删除不需要的。/collector.db "SELECT chatroom_id, chatroom_name FROM watched_chats LIMIT 20"
Step 7: 创建 Discord 频道
⚠️ Forum 频道需要服务器已开启"社区"功能(服务器设置 → 启用社区 → 开启论坛频道)。
在用户指定的 Discord 类目下创建 1 个 Forum 频道:
echo-微信助手
- 使用
message(action="channel-create", name="echo-微信助手", type=15)创建(type 15 = Forum) - 创建后添加 tags:
📋待办、📅日程、📰干货
闭环机制:
- 待办:每次 cron 扫描微信对话,自动追踪 open 待办的完成信号(对方说"搞定了"等)→ 回复原帖 + 关帖 + 更新 todos.json。对方催促时自动追加提醒,超时 7 天自动提醒未跟进。用户也可以手动关闭帖子表示已完成,下次 cron 会自动检测并更新状态。
- 日程:事件时间过期后自动回复"日程已过"并关帖。
- 干货:每日一帖,Forum 本身即归档,无需额外同步。
Step 8: 注册 Cron 任务
注册 3 个 cron 任务(使用 cron action=add)。每个 cron 的 agentTurn 内容来自 prompts/ 目录下的模板,注册时替换以下占位符:
| 占位符 | 含义 |
|---|---|
{{config_path}} |
config.yaml 的绝对路径 |
{{skill_dir}} |
skill 根目录绝对路径 |
{{forum_id}} |
echo-微信助手 Forum 频道 ID |
{{groups}} |
监控群 ID 列表(逗号分隔) |
{{ssh_host}} |
微信所在机器的 SSH 地址(如果微信不在本机,留空表示本机直接执行) |
{{ssh_password}} |
SSH 密码(配合 sshpass 使用) |
本机 vs 远程:如果 OpenClaw 和微信在同一台机器上(常见情况),不需要 SSH,prompt 中的命令直接本地执行。只有 OpenClaw 在另一台机器时才需要 SSH。Agent 注册 cron 时根据情况决定是否包含 SSH 前缀。
Cron 1: 待办扫描(每 30 分钟)
- 模板:
prompts/todo-scan.md - Schedule:
*/30 * * * *
Cron 2: 日程扫描(每 30 分钟,8-23 点)
- 模板:
prompts/calendar-scan.md - Schedule:
*/30 8-23 * * *
Cron 3: 干货收集(每天 9:00)
- 模板:
prompts/digest.md - Schedule:
0 9 * * *
CLI Usage
所有 CLI 工具都是一次性命令,执行完退出。
增量解密(每次 cron 必须先跑)
# 正常模式:检测 WAL 变化,只 patch 新页面(<1 秒) python3 refresh_decrypt.py --config config.yaml # 强制全量解密 python3 refresh_decrypt.py --config config.yaml --full
同步消息
# 同步所有 watched_chats python3 collector.py --config config.yaml --sync # 只同步单个群 python3 collector.py --config config.yaml --sync --chatroom 12345@chatroom
提取私聊待办数据
# 增量(最近 35 分钟) python3 extract_todos.py --config config.yaml # 全量(昨天整天) python3 extract_todos.py --config config.yaml --full
提取日程数据
# 增量 python3 extract_calendar.py --config config.yaml # 全量 python3 extract_calendar.py --config config.yaml --full
提取群聊干货
# 默认:config 中所有 monitor.groups,昨天 python3 extract_digest.py --config config.yaml # 指定群和日期 python3 extract_digest.py --config config.yaml --groups "123@chatroom,456@chatroom" --date 2026-03-12
Maintenance
微信重启后
密钥会变,需要重新执行 Step 3(提取密钥)。
然后运行 refresh_decrypt.py --full 强制全量解密。
Agent 如果发现 refresh_decrypt.py 报错(HMAC 验证失败),应主动提醒用户重新提取密钥。
WAL checkpoint 后
微信会定期将 WAL 合并到主 DB(checkpoint)。此时 refresh_decrypt.py 会自动检测到主 DB 的 mtime 变化,触发全量解密。无需手动操作。
添加/移除监控群
编辑 config.yaml 的 monitor.groups,下次 cron 自动生效。
Security Notes
all_keys.json包含数据库加密密钥,不要泄露或提交到 Gitconfig.yaml包含路径配置,同样需要保密- 密钥提取需要 sudo 权限
热门AI工具
相关专题
本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。
0
2026.10.22
本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。
0
2026.10.22
本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。
0
2026.10.22
本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。
0
2026.10.22
本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。
0
2026.10.22
本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。
0
2026.10.22
本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。
0
2026.10.22
PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。
0
2026.10.22
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.5万人学习
共6课时 | 54.7万人学习
最新文章
