让微信消息被 AI 自动回复:wechat-bot 微信机器人部署、配置与避坑完整指南
2026/9/15 18:53:30 网站建设 项目流程

让微信消息被 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 的多平台 IM AI 机器人项目,最常见的用途是把微信消息交给大模型自动回复:扫码登录微信后,白名单内好友的私聊、被 @ 的群消息都会转给 ChatGPT、DeepSeek、Ollama、Claude、Pi 等服务生成回复并发回微信。它额外能读取本机微信聊天记录、群成员和朋友圈缓存,对群聊或好友做统计与 AI 分析,并提供了飞书的消息 CLI 通道。本文按"环境准备 → 选服务 → 配白名单 → 启动验证 → 排错 → 部署"的交接顺序,把整个搭建过程讲清楚。

先看懂 wechat-bot 能做什么:自动回复、数据统计、多平台通道

在动手之前,先确认它的能力边界和触发规则,这直接决定你配置时该填什么:

  • 私聊:发送者的好友备注或昵称必须在ALIAS_WHITELIST里,消息才会进入回复链路。
  • 群聊:群名必须在ROOM_WHITELIST里,且消息中要 @ 机器人(即BOT_NAME)。
  • 非文本消息(图片、语音等)不会触发自动回复。
  • 消息链路大致是:微信扫码登录 → Wechaty 收消息 → 写入本地.data/wechat/messages.jsonl→ 所选服务处理并回复 → 发回微信。

除了自动回复,命令行还封装了几类能力:wb wx ...访问本机微信缓存(会话、历史、群成员、统计、朋友圈),wb analyze对群或好友做统计/深度分析,wb lark ...操作飞书(登录、读、搜、发)。飞书目前只是 CLI 控制通道,暂不做实时事件自动回复。

⚠️ 需要明确的风险:项目默认使用免费的微信 Web 协议,近期微信审查较严,存在弹出外挂警告甚至封号的可能。建议只在风险可接受的账号上使用、把白名单收紧,或按官方提示切换更稳定的协议。

准备 Node.js 环境并获取项目代码

前置条件只有一项:Node.js 版本不低于 18(建议 LTS 版本),版本过低会导致运行报错。用node --version核对一下即可。

确认环境后获取代码并安装依赖:

git clone https://gitcode.com/GitHub_Trending/we/wechat-bot cd wechat-bot npm i

国内网络下载依赖慢时,可先切换 npm 镜像源再安装。装完后建议执行一次npm link,把wb注册为本机命令;不执行的话,后文所有wb ...都可以等价替换为npm run start -- ...

代码结构上,入口是 cli.js,消息处理主逻辑在 src/index.js,各家 AI 服务的实现分别放在src/下的对应子目录(如 src/deepseek/、src/ollama/、src/kimi/),后续想换服务或改逻辑时从这里入手。

挑选 AI 回复服务并填入 API Key

自动回复的"大脑"由--serve参数选择,当前可选:ChatGPTdeepseekKimidoubaoXunfeidifyollamatongyiclaude302AIdeepseek-freepi。先复制一份配置文件,再按所选服务填对应变量:

cp .env.example .env

选服务时可以按这几个维度取舍:

  • 云端服务(DeepSeek、Kimi、豆包、通义、Claude 等):需要到对应平台申请 API Key 并填入.env,个别境外服务还需要终端能走代理。
  • Ollama:本地模型服务,不需要联网,额外填OLLAMA_URL(默认指向本机 11434 端口)和OLLAMA_MODEL即可。
  • Pi:作为 agent 模式接入,配置见 docs/pi-im-agent.md;本机没有全局pi命令时留空PI_BIN,项目会用 npx 自动拉起。

如果不想逐个平台注册,API 聚合平台可以用一个 Key 访问多种模型,项目里的 302AI 模块就是这一类选项。

每个云端服务在src/对应目录下都带连通性测试脚本,配置后可以先验证再启动机器人,例如npm run test:kiminode src/doubao/__test__.js

配置机器人昵称与消息白名单

.env中最小可用的一组配置如下(所选服务的 Key 变量参照.env.example中的名称填写):

BOT_NAME='@你的微信昵称' ALIAS_WHITELIST='好友备注1,好友备注2' ROOM_WHITELIST='群名1,群名2' WECHAT_STORE_MESSAGES='true'

逐项说明:

  • BOT_NAME:机器人账号的微信昵称,@不能省,群聊靠它识别 @ 事件。
  • ALIAS_WHITELIST:允许触发私聊自动回复的好友备注或昵称,逗号分隔。
  • ROOM_WHITELIST:允许触发群聊自动回复的群名。
  • WECHAT_STORE_MESSAGES='true':把收到的消息落盘到本地 JSONL,是后续/统计命令的数据来源。
  • 可选的AUTO_REPLY_PREFIX:只有消息匹配指定前缀才回复,适合不希望在每次 @ 或私聊时都触发回复的场景。

白名单存在的目的,就是防止机器人对每条消息都自动回复。如果你嫌回复太频繁,收紧白名单比改代码更直接。

启动微信扫码登录并验证自动回复

按所选服务启动,终端出现二维码后用手机微信扫码:

wb start --serve deepseek # Pi agent 模式等价写法: wb agent --im wechat --agent pi

登录成功后按下面的清单逐项验收:

  1. 让白名单内的好友私聊发一句消息,确认机器人自动回复。
  2. 在白名单群内 @ 机器人并提出问题,确认群聊回复正常。
  3. 在微信里发送/统计 群 群名,验证本地统计(只读 JSONL,不调用 AI);/分析 好友 好友备注则会把最近消息样本交给当前服务,注意隐私聊天建议改用本地模型。
  4. 命令行侧跑node ./cli.js --helpnpm run test:analysis,确认 CLI 与分析模块正常。

✅ 如果私聊和群聊都没有回复,九成是BOT_NAME、白名单或 @ 条件没满足,先对照上一节逐项检查,再去怀疑服务本身。

不出效果时的常见坑位与排查方法

启动报错:先核对 Node 版本是否 ≥ 18;仍报错时拉取最新代码,删掉node_modules和 lock 文件后重装依赖。puppeteer 下载失败时设置环境变量PUPPETEER_SKIP_DOWNLOAD='true'再装。

云端服务无响应:依次确认 API Key、账户余额、模型名是否正确;调用境外服务时终端需要能访问对应域名,可手动给终端挂代理,例如export https_proxy=http://127.0.0.1:你的代理端口,然后重跑对应服务的测试脚本。

收到微信外挂警告:这是 Web 协议的风控结果,避免频繁登录登出,必要时更换更稳定的协议;账号价值高的话,别让它 7 天 24 小时挂在默认协议上跑。

消息落盘缺失:确认WECHAT_STORE_MESSAGES='true',登录成功前收到的消息不会写入.data/wechat/messages.jsonl,这也是/统计无数据时优先排查的项。

Docker 部署与长期运行建议

希望脱离本机终端常驻时,用仓库自带的 Dockerfile 构建镜像并挂载.env

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

构建时如果 node 基础镜像反复下载超时,可先拉取 node 镜像到本地,再把 Dockerfile 里的 node 版本改为本地可用的版本(另有一个精简的 Dockerfile.alpine 可选)。长期运行时建议定期清理.data/wechat下的消息记录防止磁盘写满,进程托管可以交给 PM2 这类工具,并按需配置日志轮转。

后续扩展:本地数据、群分析与业务定制

基础回复跑通之后,这几个方向值得继续挖:

  • 本机微信数据:wb wx sessionswb wx historywb wx memberswb wx statswb wx sns-feedwb wx sns-search,底层由 OpenCLI 的 wx-cli 透传,可单独用于聊天记录检索与群成员盘点。
  • 独立分析:wb analyze --room "群名" --stats-only只做本地统计,加--serve <服务名>则把样本交给模型做深度分析,核心实现见 src/analysis/wechatAnalyzer.js。
  • 业务定制:想加消息转发、定时提醒、自定义指令路由,改动点集中在 src/wechaty/sendMessage.js 与 src/platforms/wechat/commandRouter.js。
  • 飞书通道:wb lark loginwb lark messageswb lark send,当前是 CLI 形态,后续可以基于它做跨平台聚合。

机器人本质是长期运行的基础设施,建议先用严格白名单在小范围跑稳,再逐步扩大使用面。下一步可以试试把"大脑"切到本地 Ollama 模型,或者把wb analyze接到日常群运营里,用数据代替感觉来判断群的状态。

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

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

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

立即咨询