wechat-bot 微信 AI 自动回复机器人实操:12 个模型服务、本地存档与群聊统计
【免费下载链接】wechat-bot🤖 Multi-platform IM AI Agent for Telegram, WhatsApp, Lark, and WeChat. Connects ChatGPT / Claude / Kimi / DeepSeek / Ollama / Pi for auto-replies, community analysis, contact management, and inactive-friend detection.项目地址: https://gitcode.com/GitHub_Trending/we/wechat-bot
wechat-bot 是一个微信扫码登录的微信 AI 自动回复机器人,接上 AI 自动回消息、消息本地存档,还支持关键词检索和群聊统计,适合想把微信消息自动化处理的个人和小团队。
首次启动:从 clone 到扫码登录
- 准备环境并安装依赖:需要 Node.js v18 及以上,先用
node -v检查;克隆仓库后执行安装,卡住就切国内镜像源重试。
git clone https://gitcode.com/GitHub_Trending/we/wechat-bot cd wechat-bot npm install- 复制配置并填白名单:运行
cp .env.example .env,改三处,再补上所选模型服务的 API Key(选 ollama 本地模型则免 key)。
BOT_NAME='@你的机器人昵称' ROOM_WHITELIST='群名1,群名2' ALIAS_WHITELIST='好友备注1,好友备注2'BOT_NAME必须保留@前缀,群名、好友备注直接从微信里原样复制。
- 启动并扫码登录:
wb start --serve deepseek指定一个服务启动,终端出现二维码,用微信扫一扫即完成登录;没执行过npm link的话,用npm run start -- start --serve deepseek等价替代。
模型服务共 12 个,含 deepseek、ollama(本地免费)、claude、dify 等;不想逐平台处理计费,也可以接第三方 API 聚合平台:
机器人跑起来能做的 3 件事
只在需要时回复。只有白名单群里被@、或白名单好友私聊这两类消息才触发回复;非文本消息、机器人自己发的消息会直接跳过。再配AUTO_REPLY_PREFIX,可只对带指定前缀的消息响应,进一步减少打扰。
消息一条不丢。每条收到的文本都按行写进.data/wechat/messages.jsonl,不触发回复也会存档。之后用wb wx search检索本机微信缓存,或用 analyze 按关键词、群名、时间范围过滤存档,查周报素材就靠它。
群聊统计一条命令。wb analyze --room "群名" --stats-only先跑纯本地统计:消息总数、活跃成员等,不消耗 token;想接模型出总结,追加--serve指定服务即可;在群里直接发/统计 群 群名走同一逻辑,/分析 好友 好友备注则针对单个好友。
消息存档机制拆解:messages.jsonl 从哪来
逻辑不复杂:每条微信消息到达时,机器人先把发送人、群名、时间戳、文本抽出来,拼成一行 JSON 追加进messages.jsonl文件;这条消息会不会触发回复是后话,存档一定先做。所以后续关键词检索、群统计都是读这个本地文件再过滤,不联网、不花 token。
| 源码文件 | 在存档中的作用 |
|---|---|
src/platforms/wechat/bot.js | 接收微信消息,先调存档函数,再进回复链路 |
src/platforms/wechat/messageStore.js | 把记录按行写入messages.jsonl,并提供按群名、关键词、时间过滤的函数 |
src/analysis/wechatAnalyzer.js | 读存档文件,输出本地统计,或把近期样本交给模型做深度分析 |
关键配置项 6 条速查
| 参数 | 作用 | 说明 |
|---|---|---|
BOT_NAME | 决定群里@谁才回复 | 保留@前缀,如@可乐,即机器人账号的微信昵称 |
ROOM_WHITELIST | 允许自动回复的群 | 逗号分隔,群名须与真实名称一字不差 |
ALIAS_WHITELIST | 允许私聊触发的联系人 | 好友备注名或微信昵称 |
AUTO_REPLY_PREFIX | 额外的前缀过滤 | 空串表示不启用,配置后仅匹配前缀才回复 |
WECHAT_STORE_MESSAGES | 是否存档消息 | 设为false即停止写入 jsonl 存档 |
DEEPSEEK_API_KEY | 模型服务的 API Key | 按--serve选的服务填写,如 ollama 则填OLLAMA_MODEL |
微信机器人启动 5 个常见问题
问:群里@机器人,始终没有反应? 答:多为白名单没对上:BOT_NAME丢了@,或群名差一个字。从微信聊天界面顶栏复制真实群名原样替换,并确认@的是机器人账号本身。
问:npm install中途失败? 答:常见是 puppeteer 浏览器依赖拉不下来,或 Node 版本低于 v18。设国内镜像源重装,必要时用PUPPETEER_SKIP_DOWNLOAD=true跳过浏览器下载,Node 升到 LTS。
问:微信弹出外挂警告? 答:默认免费 web 协议风控严格。只在测试账号上使用,白名单尽量小;正式用之前先读 README 里的协议切换说明,别急着买长期协议。
问:日志没报错,但 AI 就是不回话? 答:先单独跑对应服务的测试脚本验证 key 是否可用,如node src/deepseek/__test__.js;讯飞有多个 key,注意别填反,同时检查余额与代理。
问:图片、语音这类消息为什么不回? 答:设计上只有文本消息进入回复链路,机器人自己发的消息也会被跳过;想改这条规则,看 src/wechaty/sendMessage.js。
存档文件会随运行时间越积越厚,建议先跑一次--stats-only熟悉自家群的数据,再接模型做深度分析。想把 Pi agent 而不是模型 API 当大脑,读 Pi + IM 使用说明;更完整的配置细节见 README.md。
【免费下载链接】wechat-bot🤖 Multi-platform IM AI Agent for Telegram, WhatsApp, Lark, and WeChat. Connects ChatGPT / Claude / Kimi / DeepSeek / Ollama / Pi for auto-replies, community analysis, contact management, and inactive-friend detection.项目地址: https://gitcode.com/GitHub_Trending/we/wechat-bot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考