十分钟让 AI 替你值班:wechat-bot 完整上手指南
【免费下载链接】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 做的事很直接:把微信扫码接上电脑,白名单内的消息交给大模型自动回复,每条文本还落盘存档,随时按关键词检索。
它是干什么的,给谁用
一句话:基于 Wechaty 的微信 AI 机器人,扫码登录后自动应答,消息本地留痕,群聊可统计可检索。适合想让"机器人替我值班"的运维、产品、开发者,也适合想让 AI 当大脑、微信当通道的重度 IM 用户。
| 能力 | 命令入口 | 说明 |
|---|---|---|
| 白名单消息自动回复 | wb start --serve <服务名> | 扫码上线,--serve选模型 |
| 消息落盘存档 | .data/wechat/messages.jsonl | 每条文本追加写入,不依赖是否回复 |
| 群聊/好友统计 | wb analyze --room "群名" | 纯本地统计不耗 token |
| 模型切换 | --serve deepseek/ollama/claude/... | 十余种服务,含本地免费的 Ollama |
从克隆到第一条 AI 回复
把依赖装全
目的是确认 Node.js 版本达标(v18 起,低了直接报错)并装好依赖:
node -v git clone https://gitcode.com/GitHub_Trending/we/wechat-bot cd wechat-bot npm install高频问题:install 卡住多是 puppeteer 在拉浏览器,设PUPPETEER_SKIP_DOWNLOAD='true'重装即可跳过。
把 .env 填对
复制示例配置为正式配置,只填必须项:
cp .env.example .env以 deepseek 为例的最小可跑配置(本地 Ollama 则改填OLLAMA_URL、OLLAMA_MODEL):
BOT_NAME='@你的机器人昵称' ROOM_WHITELIST='群名1,群名2' ALIAS_WHITELIST='好友备注1,好友备注2' 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有新增,整条链路就跑通了。
跑通之后能玩什么
先说最常用的一档,再往数据上走一档,最后是复用存档的一档。
群里被@才开口,平时不插话。在白名单群里@它问"部署文档在哪",答案直接发回群里;别人的消息它一概不接。对比那种逢消息必回的机器人,这个更接近一个待命的值班同事,不会刷屏。
一条命令出群聊体检报告。纯本地统计,不消耗任何 token:
wb analyze --room "群名" --stats-only你会看到消息总数、文本消息数、平均长度和发言高频成员。想要结论,加--serve让它读最近消息样本做总结;在群里直接发/统计 群 群名也能触发同样逻辑。
写周报前,把聊天记录捞出来。上面存档检索支持按关键词、群名、起止时间过滤:wb wx search就能把某群近七天的关键讨论、谁提了什么需求捞出来,整理进周报,不用翻聊天窗口。
一条消息在内部走了哪几步
不读源码也能心里有数,一条群消息进来走四步:
- 收消息:Wechaty 扫码登录微信,解析出发送人、群名、文本内容
- 先存档:每条文本先追加写入
.data/wechat/messages.jsonl,哪怕不触发回复也会落盘 - 判触发:私聊好友在
ALIAS_WHITELIST,或群名在ROOM_WHITELIST且消息@了BOT_NAME,才进入回复链路 - AI 回话:请求
--serve指定的模型服务,拿到回复发回微信
| 环节 | 职责 | 源码位置 |
|---|---|---|
| 收消息 | 扫码登录、解析消息内容 | bot.js |
| 先存档 | 追加写本地 jsonl | messageStore.js |
| 判触发 | 白名单 + @ 校验、/统计等命令路由 | commandRouter.js |
| AI 回复 | 按--serve分发到模型服务并发回消息 | sendMessage.js、serve.js |
其中"先存档"是关键设计:检索和群统计全靠它,所以机器人没回复的群也有数据可查。
没反应时先查这几处
- 群里@了机器人,始终没反应→
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),仅供参考