三行命令跑通微信机器人:AI自动回复、群聊分析的 WeChaty 实践指南
【免费下载链接】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 自动回复消息,还能做群聊统计和本地微信数据检索,适合想把 IM 值守自动化的人。
先看三个能直接照做的用例
- 客服岗,手下二十多个客户群:机器人拉进白名单群后,客户 @它 即自动应答,咨询不再积压到第二天。
- 想摸清群活跃度的团队负责人:一条命令跑完群统计,得到消息量、发言 Top10 和分小时分布,不用手动翻记录。
- 在意数据外流的开发者:接本地 Ollama 模型做回复(Ollama 是在自己机器上跑大模型的服务,API 接口与 OpenAI 接近),聊天记录只落在本地文件,不出机器。
确认场景对得上,下面进入实操。从干净环境到扫码登录,一共三步。
三行命令启动微信机器人:两条安装加一次扫码
- 克隆仓库并装依赖(需要 Node.js v18.0 以上,建议用 LTS 版本):
git clone https://gitcode.com/GitHub_Trending/we/wechat-bot cd wechat-bot && npm i && npm linknpm link会把wb注册成本机命令;不想注册的话,后文的wb ...都可以换成npm run start -- ...。
- 生成配置文件,只改四行关键的:
cp .env.example .envBOT_NAME='@机器人账号微信昵称' # 群聊回复的触发条件,即被 @ 的对象 ALIAS_WHITELIST='好友备注1,备注2' # 允许自动回复的私聊联系人 ROOM_WHITELIST='群名1,群名2' # 允许自动回复的群聊 WECHAT_STORE_MESSAGES='true' # 把消息落到本地,供后续统计- 启动并扫码:
wb start --serve deepseek启动后终端大致输出:
$ wb start --serve deepseek [QR] 请用微信扫描二维码 [wechat-bot] 登录成功,消息将写入 .data/wechat/messages.jsonl登录后白名单内的私聊、群 @ 会自动回复,同时所有消息追加进 messages.jsonl,这是后面分析功能的原料。
功能拆解:从自动回复到群聊分析
白名单制自动回复:只在被 @ 时开口
触发规则刻意收得很紧:私聊要求联系人备注在ALIAS_WHITELIST;群聊要求群名在ROOM_WHITELIST且消息里 @ 了BOT_NAME;非文本消息不进回复链路。这样机器人大群里不会每条都接话。路由逻辑见 src/platforms/wechat/commandRouter.js。
12 个可切换的大模型服务:挑一个就能跑
回复能力由--serve参数决定,改启动参数即可换模型,不用改代码。常用项对比:
| 服务 | 费用 | 特点 | 适合谁 |
|---|---|---|---|
| deepseek | 低价/有免费额度 | 响应快、稳定 | 日常问答 |
| ChatGPT | 付费,可能需代理 | 综合能力全面 | 复杂问题 |
| ollama | 免费(本地) | API 接近 OpenAI,数据不出内网 | 隐私敏感场景 |
| pi | 本地命令 | 可当项目 agent,带工具能力 | 想让机器人执行任务的 |
| dify | 自部署/付费 | 挂自己的工作流和知识库 | 定制流程 |
其余还有 doubao、tongyi、Kimi、Xunfei、deepseek-free、302AI、claude。把 Pi 作为 agent 的详细玩法见 docs/pi-im-agent.md。
本地微信数据与群聊统计:不调 AI 也能用
不想调大模型时,用本地统计模式直接读 JSONL:
wb analyze --room "技术交流群" --stats-only输出消息总数、Top10 发言人、分小时分布。想加一层深度分析(主要话题、互动模式、风险提示),再追加--serve <服务名>即可,统计实现见 src/analysis/wechatAnalyzer.js。另有wb wx系列命令走 OpenCLI 的 wx-cli 读本机微信缓存:会话、历史、群成员、朋友圈全文搜索,不依赖 Web 协议。
飞书通道:登录、收发、搜索
飞书通过 lark-cli 接入,支持登录、读消息、搜消息、发消息:
wb lark login --no-wait wb lark messages --chat-id oc_xxx wb lark send --chat-id oc_xxx --text "hello"目前是 CLI 控制通道,还不是实时事件通道,飞书消息暂不会自动推给 AI 回复。
进阶玩法:两个让机器人更可控的配置
默认规则是"白名单群里每条被 @ 的消息都回",嫌宽的话,下面两处配置可以收紧范围。
改一行 AUTO_REPLY_PREFIX,给回复加口令
AUTO_REPLY_PREFIX='/ask'效果:群聊消息去掉 @ 后必须以/ask开头、私聊直接以/ask开头,才触发回复。适合用大号的人——机器照常收消息,但你不点名它就不说话。
换 Ollama,让对话全程留在本地
OLLAMA_URL='http://127.0.0.1:11434/api/chat' OLLAMA_MODEL='qwen2.5:7b'启动参数换成wb start --serve ollama,回复全部走本地模型,配合消息本地落盘,链路里没有任何外部调用。
配置层面讲完了,下面收一社区里出现频率最高的失败原因。
避坑提示:五个最常见的失败原因
- 启动直接报错:多半是 Node 版本低于 18,用
node -v检查后升级到 18+ LTS 重装依赖。 npm i卡在 puppeteer 下载:设环境变量PUPPETEER_SKIP_DOWNLOAD=true再装;网络差就先切国内 npm 镜像源。- 登录正常但不回消息:依次核对 BOT_NAME 是否带 @ 格式、群名/好友备注是否进了白名单、群里是否真的 @ 了机器人;配过
AUTO_REPLY_PREFIX的,不带前缀也不会触发。 - 云端模型请求失败:确认 API Key、余额、网络可达性,先跑
node ./cli.js --help验证 CLI 本身正常,再查服务侧配置。 - 微信收到外挂警告:默认用的是免费 web 协议,风控严格。换 pad 协议或企业版协议,用专门的副号并收窄白名单,不要拿主号试。
首次启动别贪多——最小配置先把一条私聊回复跑通,再逐步加群白名单和分析功能。先跑起来,再谈调优:终端出现二维码的那一刻,这个机器人就已经离上线只隔一次扫码了。
【免费下载链接】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),仅供参考