wechat-bot 新手完全指南:让微信机器人替你 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 接话、半夜也有响应,全部聊天记录还落在本地,随时可查。
它是什么:给谁的微信机器人
wechat-bot基于 Wechaty 实现:扫码登录微信后,白名单内的消息交给大模型处理并自动回话,同时把每条文本写进本地文件,支持群聊统计和关键词检索。想让"机器人替我值班"的运维、产品、开发者都适合,想让 AI 当大脑、微信当通道的重度 IM 用户也适合。
它能干什么,用五条说清:
- 扫码即上线:终端直接打印二维码,手机扫一下就登录,不用准备服务器
- 触发有边界:白名单群里被@才答、白名单好友私聊才答,不会逢消息就刷群
- 聊天记录全量落盘:每条文本追加写入本地
messages.jsonl,关键词、群名、时间都能过滤 - 群聊体检一条命令:谁发言最多、消息量多大,终端直接出报告,可再叠加 AI 总结
- "大脑"随便换:
--serve一个参数,在 deepseek、Ollama(本地免费)、Claude、Kimi 等十余种服务之间切换
从零跑起来
环境准备:先查版本再装依赖
目的很简单:确认 Node.js 不低于 v18(低于会直接运行报错),然后把代码和依赖装好:
node -v git clone https://gitcode.com/GitHub_Trending/we/wechat-bot cd wechat-bot npm installnpm install卡住时的第一反应:把 registry 切到国内镜像源再重装;如果卡在 puppeteer 下载浏览器,设PUPPETEER_SKIP_DOWNLOAD='true'跳过即可。
成功信号:依赖安装正常结束,没有 error 输出。
最小可跑配置:只填必须项
复制一份示例配置作为正式配置:
cp .env.example .env以 deepseek 为例,最小可跑配置如下(本地 Ollama 则不填 key,改填OLLAMA_URL、OLLAMA_MODEL):
BOT_NAME='@你的机器人昵称' ROOM_WHITELIST='群名1,群名2' ALIAS_WHITELIST='好友备注1,好友备注2' AUTO_REPLY_PREFIX='' WECHAT_STORE_MESSAGES='true' DEEPSEEK_API_KEY='你的key'新手最容易栽在两个地方:
BOT_NAME的@必须保留,丢了@机器人永远收不到触发ROOM_WHITELIST的群名要和真实群名一字不差,建议直接去微信聊天界面顶栏原样复制
启动与自检:扫码后看两个日志信号
用--serve指定"大脑"后启动,终端会打印二维码:
wb start --serve deepseek没执行过npm link也没关系,npm run start -- start --serve deepseek效果一样。
成功信号:扫码后日志依次打印has logged in和Automatic robot chat mode has been activated,说明登录链路通了。
接着做个自检:在白名单群里@它发一句话。群里出现 AI 回复、同时.data/wechat/messages.jsonl有新增内容——整条链路就真跑通了。
工作原理:一条消息的完整链路
不读源码也能心里有数。一条群消息进来,走四步:
- 收消息:Wechaty 扫码登录微信,解析出发送人、群名、文本内容
- 先存档:每条文本先追加写入
.data/wechat/messages.jsonl——哪怕这条消息不触发回复,也会落盘 - 判触发:私聊的好友在
ALIAS_WHITELIST,或群名在ROOM_WHITELIST且消息@了BOT_NAME,才进入回复链路 - AI 回话:请求
--serve指定的模型服务拿到回复,发回微信
各步对应的源码位置:
- 收消息 → src/platforms/wechat/bot.js
- 存档 → src/platforms/wechat/messageStore.js
- 触发判断与
/统计等命令路由 → src/platforms/wechat/commandRouter.js - AI 回复分发 → src/wechaty/sendMessage.js、src/wechaty/serve.js
其中**"先存档"是关键设计**:检索和群统计全靠这份文件,所以机器人没回复的群,一样有数据可查。
实战玩法:三个高频场景
场景一:值班自动回复
晚上你在白名单群里@机器人问一句"部署文档在哪":
wb start --serve deepseek它只响应@它和白名单私聊,不插话、不刷群,答完把结果发回群里——等于多了一个不眠的值班同事。
场景二:群聊体检
终端一条命令出报告,纯本地统计、不消耗任何 token:
wb analyze --room "群名" --stats-only你会看到什么:消息总数、文本消息数、平均长度,以及高频发言成员排行。想要结论,再补一个--serve指定模型,让它读最近消息样本做总结;在群里直接发/统计 群 群名也能触发同样的逻辑。
场景三:写周报前,先把聊天记录捞出来
wb wx search你会看到什么:按关键词、群名、起止时间过滤后的存档结果——analyze 内部读的就是这份messages.jsonl。某群近七天的关键讨论、谁提了什么需求,捞出来直接整理进周报,不用再翻聊天窗口。
排错指南:按现象对号入座
- 现象:群里@了机器人,始终没反应→ 原因:白名单没对上,
BOT_NAME丢了@,或群名有一字之差 → 处理:从微信顶栏复制真实群名原样替换,并确认@的确实是机器人账号本身。 - 现象:
npm install中途失败→ 原因:puppeteer 浏览器依赖拉不下来,或 node 低于 v18 → 处理:切国内镜像源重装;必要时设PUPPETEER_SKIP_DOWNLOAD='true';node 升到 LTS。 - 现象:微信弹出外挂警告→ 原因:默认免费 web 协议风控严格,近期平台审查也更严 → 处理:只在测试账号上用、白名单尽量小;正式使用先读 README.md 里的协议切换说明,别急着买长期协议。
- 现象:日志没报错,但 AI 就是不回话→ 原因:API Key 没填、欠费,或把两个相似的 key 填反了(讯飞用户最常栽在这) → 处理:先单独跑对应服务的测试脚本,比如
node src/deepseek/__test__.js,验证通了再启动机器人。
先跑一次wb analyze --room "群名" --stats-only熟悉自家群的数据,再接上模型试深度分析——今晚你的微信里就多了位不眠值班的同事。若想把 Pi 当"大脑"而不是模型 API,照着 Pi Agent + IM 使用说明 配置即可切换。
【免费下载链接】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),仅供参考