用 wechat-bot 实现 AI 微信机器人:从扫码登录到多引擎自动回复的完整实操指南
2026/9/15 16:04:28 网站建设 项目流程

用 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

一条"紧急"消息在 2000 条群聊里沉底,这是值班最真实的痛点。wechat-bot 这个基于 Wechaty 的微信机器人,把这一段接走了:扫码登录后,白名单内群与好友的消息会自动转给 AI 引擎处理,答案直接回进群聊。

先看下它的输入输出。

它能做什么:四组输入输出

  • 输入:微信扫码登录 → 输出:7×24 值守的自动回复机器人,私聊和群聊各走一套白名单
  • 输入:群里 @机器人 加一句话 → 输出:由你选定的 AI 引擎给出的答复(DeepSeek、ChatGPT、Kimi、Ollama、Pi 等 12 个服务可切换)
  • 输入:群内发/统计 群 XX群→ 输出:该群消息数、高频发言人、活跃时段的本地报告,全程不调 AI
  • 输入:wb wx historywb wx sns-search→ 输出:本机微信聊天记录、联系人、群成员、朋友圈缓存的读取与全文搜索

五分钟跑起来:安装 wechat-bot 与配置 .env

前置要求 Node.js ≥ 18(推荐 LTS)。

git clone https://gitcode.com/GitHub_Trending/we/wechat-bot cd wechat-bot npm i && npm link cp .env.example .env

.env最小可用键值对:

含义示例
BOT_NAME机器人账号昵称,必须带 @@可乐
ALIAS_WHITELIST允许私聊的备注/昵称,逗号分隔张三,李四
ROOM_WHITELIST允许接入的群名,逗号分隔技术交流群
AUTO_REPLY_PREFIX可选,消息以该前缀开头才回复问:
WECHAT_STORE_MESSAGES消息是否落盘本地 JSONLtrue

装完看三条主线。

能力拆解:触发规则、引擎切换、日志链路

消息触发机制

私聊要求发送者在ALIAS_WHITELIST;群聊要求群名在ROOM_WHITELIST且消息里 @ 了机器人;非文本消息一律不进回复链路。这套限制是故意的——避免机器人在大群里逐条抢话。核心判断在 sendMessage.js。

BOT_NAME=@可乐 ROOM_WHITELIST=技术交流群,产品讨论组 AUTO_REPLY_PREFIX=

AI 引擎切换策略

回复引擎由启动参数--serve指定,覆盖 ChatGPT、doubao、deepseek、Kimi、Xunfei、deepseek-free、302AI、dify、ollama、tongyi、claude、pi 共 12 个服务,传了不认识的值会回落到 ChatGPT 实现,映射表见 serve.js。

wb start --serve deepseek

日志与分析链路

开启落盘后,每条消息追加写入.data/wechat/messages.jsonl(路径可用WECHAT_DATA_DIR改)。群内/统计只读这份本地数据;/分析会取最近 120 条消息样本交给当前引擎出报告,路由逻辑在 commandRouter.js 与 wechatAnalyzer.js。

WECHAT_DATA_DIR=.data/wechat WECHAT_STORE_MESSAGES=true

跑通才是开始。

上手三步走:选引擎、定规则、验闭环

① 选引擎:挑一个有 key 的服务,DeepSeek 便宜、ollama 全本地不花钱,把对应 key 写进.env

wb start --serve deepseek

② 定规则.env里只动三个字段——BOT_NAME(带 @)、两个白名单,填完保存。

vim .env

③ 验闭环:在白名单群 @ 它问一个问题,看是否回话;随后发几条消息再跑一次本地统计,确认落盘链路通了。

wb analyze --room "技术交流群" --stats-only

能用了,再改。

进阶玩法:自定义触发策略与多引擎路由

自定义触发策略

主号用户不想被每次 @ 打扰时,把AUTO_REPLY_PREFIX填上:群聊消息去掉 @ 主体并 trim 后按前缀匹配,私聊 trim 后直接匹配。命令前缀可用BOT_COMMAND_PREFIX换,ENABLE_REMOTE_OPENCLI=true时还能在微信里远程执行本机 OpenCLI 命令。

AUTO_REPLY_PREFIX=问: BOT_COMMAND_PREFIX=bot

多引擎路由

同一条消息链路可挂不同引擎各干各的活:日常问答用 deepseek,隐私敏感的群分析切本地 ollama,复杂任务交给 Pi agent(用法见 docs/pi-im-agent.md),无需改代码,只换参数。

wb start --serve ollama wb analyze --room "技术交流群" --serve pi

长期怎么跑。

部署与运维:本地与 Docker

本地跑适合调试和改配置,Docker 适合环境隔离与常驻,二选一:

wb agent --im wechat --agent pi docker build . -t wechat-bot && docker run -d --rm --name wechat-bot -v $(pwd)/.env:/app/.env wechat-bot

卡住了查表。

排错速查:症状与解法

症状解法
扫码登录后没有回复核对BOT_NAME是否@昵称格式;群聊是否 @ 了机器人、群名是否在ROOM_WHITELIST;非文本消息不会触发
能自动回复,但/统计说没有数据WECHAT_STORE_MESSAGES被设为false,或.data/wechat/messages.jsonl还没生成
云端引擎请求超时终端需走代理,并确认 API Key、余额、模型名;OpenAI/Claude/Kimi 对网络尤其敏感
puppeteer 下载 Chromium 失败设置环境变量PUPPETEER_SKIP_DOWNLOAD=true后重装依赖
微信弹出外挂/风控警告默认免费 web 协议易触发风控,切换付费协议并控制登录频率
Pi 首次回复特别慢PI_BIN='pi'装到本机,避免每次走 npx 冷启动

收尾

wechat-bot 的结构可以概括为:白名单决定谁有资格说话,--serve决定谁负责回答,JSONL 是唯一留痕的消息账本,引擎和触发规则都只是可替换的插件。建议你先别碰飞书和 Pi,直接用 deepseek 或 ollama 把群内 @ 自动回复跑通,然后在群里发一次/统计 群 群名,看到本地报告之后再决定下一步往哪扩。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询