从零跑通微信AI机器人:自动回复、消息存档与群聊分析指南
【免费下载链接】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 接手自动回复,同时把每条消息落盘存档,事后可按关键词检索、按群名做统计。只要你装过 npm、跑通过npm i,照着这篇走,十几分钟就能让机器人上岗。
跑通之后立刻能验证的 3 件事
- 该说话才说话:只有白名单群里的@消息、白名单好友的私聊才会触发回复,再叠加前缀过滤,机器人不会逢消息必答。
- 消息天然有档:每条文本都会追加进
.data/wechat/messages.jsonl,按关键词、群名、时间范围检索,像回放一样翻查聊天流。 - 群聊一条命令出数:谁最活跃、大家聊什么、谁常年潜水,本地统计直接输出;想深入再让模型基于最近消息样本给结论。
跟我搭:4 步从零到扫码登录
第 1 步:确认 Node 版本并拉取代码
项目要求 Node.js >= v18,低版本直接报错,优先用 LTS。确认版本、克隆并装依赖:
git clone https://gitcode.com/GitHub_Trending/we/wechat-bot cd wechat-bot npm inpm i卡住时,切到国内镜像源(npm config set registry https://registry.npmmirror.com)再装一遍,能解决大部分安装问题。
第 2 步:复制并填写 .env 白名单
cp .env.example .env重点核对三个变量,.env.example里都给了占位说明:
BOT_NAME='@你的微信昵称' ROOM_WHITELIST='群名1,群名2' ALIAS_WHITELIST='好友备注1,好友备注2'BOT_NAME的@前缀不能丢——触发判断就是拿消息文本和@昵称做匹配,少一个字符就永远匹配不上;ROOM_WHITELIST里的群名必须和微信真实群名一字不差,带空格、带符号都要照抄。另外WECHAT_STORE_MESSAGES='true'保持默认,它控制是否落盘存档。
第 3 步:给机器人挑一个"大脑"
--serve参数对应 12 种服务:ChatGPT、deepseek、doubao、Kimi、Xunfei、ollama、claude、dify、tongyi、302AI等,在.env里填对应服务的 API Key 即可。比如 Ollama 走本机OLLAMA_URL和OLLAMA_MODEL,一分钱不花;讯飞则要注意XUNFEI_APP_ID、XUNFEI_API_KEY、XUNFEI_API_SECRET三个 key 别填串位。如果不想逐个平台注册计费,项目也支持接第三方 API 聚合平台:
第 4 步:启动并扫码登录
执行npm link后,用下面的命令启动,终端会打印二维码,手机扫码即登录成功:
wb start --serve deepseek没做npm link也可以,npm run start -- start --serve deepseek效果完全一样。扫完码就去白名单群里@它问句话,看回不回。
一条消息经过的 4 个站点
| 环节 | 做了什么 | 源码位置 |
|---|---|---|
| 收消息 | Wechaty 解析出发送人、群名、文本,挂接 message 事件 | src/platforms/wechat/bot.js |
| 落盘存档 | 每条记录追加写进.data/wechat/messages.jsonl | src/platforms/wechat/messageStore.js |
| 触发判断 | 白名单 + 被@(或私聊白名单)+ 前缀过滤后才进回复链路 | src/wechaty/sendMessage.js |
| 回复/指令 | /统计、/分析走命令路由,普通文本交给--serve的模型 | src/platforms/wechat/commandRouter.js |
最容易被忽略的是"落盘"这一步排在最前面:哪怕这条消息最终不触发回复,也已经写进 JSONL 了——后面的关键词检索、群统计全靠这一份本地数据,存档和回复是两条解耦的链路。
两种进阶玩法
群聊分析,终端里就做。先跑wb analyze --room "群名" --stats-only,纯本地统计、不花 token;想拿结论就加--serve ollama让模型读最近的消息样本给总结。在群里直接发/统计 群 群名触发的是同一套逻辑。
挖本机微信缓存数据。先wb wx init初始化,再用wb wx history、wb wx search、wb wx members直接查本机微信的聊天记录、联系人和群成员,写周报时把某群近七天的记录捞出来就够了。
⚡ 四个常见故障的修法
现象:扫码正常登录,但群里@机器人始终没反应。原因:BOT_NAME丢了@,或群名与真实名称有一字之差,匹配失败直接被丢弃。 解决:从微信聊天界面顶栏把群名原样复制进ROOM_WHITELIST,再确认@的是机器人账号本身。
现象:npm install 中途失败。原因:Node 版本低于 v18,或 puppeteer 的浏览器依赖下载超时。 解决:先把 Node 升到 LTS;仍卡住就设PUPPETEER_SKIP_DOWNLOAD='true'跳过浏览器下载再装。
现象:微信弹出外挂警告。原因:项目默认用免费 web 协议,风控严格,平台审查期更容易触发。 解决:只在测试账号上用、白名单尽量小;正式使用先翻 README 的协议切换说明,别急着买长期协议。
现象:日志没报错,但 AI 就是不回话。原因:所选--serve服务的 API Key 没填、余额不足,或讯飞的三个 key 填反了。 解决:先单独跑对应服务的测试脚本,例如node src/deepseek/__test__.js,验证通了再启动机器人。
跑通之后先做这两件事
第一件:拿自己最常用的群跑一遍--stats-only,看看消息量和活跃成员长什么样,再决定要不要接模型做深度分析。第二件:如果想用 Pi 代替模型 API 当大脑,完整配置和触发规则写在 docs/pi-im-agent.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),仅供参考