WeChat Bot 多平台 IM 助手

将微信、飞书、Telegram 和 WhatsApp 消息接入多种 AI 服务。

Star 数
★ 12k
最近更新
2 个月前
License
MIT
主语言
JavaScript

30 秒速览

运行形态
命令行工具自托管服务聊天机器人
可在哪里用
通用 · 跨平台ChatGPT · OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Node.js 18 或更高版本npm用于微信 IM 的 Wechaty用于本地微信数据的 OpenCLI wx-cli用于 Lark IM 的 lark-cliShell / 命令行网络访问本地文件系统
典型场景
需要在获准微信私聊或被点名的群聊中自动答复消息,同时避免机器人响应所有来信的个人用户。
不适合
  • 无法接受微信账号被警告或封禁风险的用户
  • 不愿自行准备公网 HTTPS 回调地址的 WhatsApp 用户

这个 Agent 能做什么,适合哪些场景?

WeChat Bot 是一个基于 Wechaty 的自托管 IM 自动回复与聊天分析项目,并提供统一的 wb 命令行入口。它可从微信扫码会话、飞书事件流、Telegram Bot API 长轮询和 WhatsApp Cloud API Webhook 接收消息,再交给 Pi、ChatGPT、DeepSeek、Ollama、Claude、Kimi 等服务生成单轮回复。项目还通过 OpenCLI wx-cli 读取本地微信会话、联系人、群成员、收藏与朋友圈缓存,并可对群聊或好友执行本地统计及 AI 深度分析。消息可记录到 .data/wechat/messages.jsonl,而微信、飞书和 Telegram 的回复范围由白名单、群聊提及或前缀等规则限制。它适合愿意自行维护 Node.js 服务、平台凭据和公网 Webhook 的团队或个人,但微信 Web 协议存在明确的警告及封号风险。

端到端流程因平台而异:微信通过 Wechaty 扫码登录并接收文本消息;飞书通过 lark-cli event consume im.message.receive_v1 --as bot 消费事件;Telegram 使用官方 Bot API 长轮询;WhatsApp 则运行可供 Meta 访问的 Cloud API Webhook。wb agent --im <wechat|lark|telegram|whatsapp> --agent pi 可把消息交给 Pi,wb start --serve <service> 则调用 ChatGPT、DeepSeek、Ollama、Claude、Kimi、Dify、豆包、通义等已配置服务,并将结果发回原 IM。微信消息可追加写入本地 JSONL;wb wx sessions/history/contacts/members/favorites/sns-feed 等命令通过 wx-cli 查询本地缓存。wb analyze --room 和 wb analyze --friend 可输出纯本地统计,或将近期消息样本发送给所选服务进行深度分析。内置 /stats 和 /analyze 命令默认只对获准联系人或群聊开放。

  1. 需要在获准微信私聊或被点名的群聊中自动答复消息,同时避免机器人响应所有来信的个人用户。
  2. 希望用同一个 Pi 项目代理连接微信、飞书、Telegram 和 WhatsApp 的开发者。
  3. 需要从本地微信缓存统计群聊活跃度、查看群成员,或分析某位好友近期对话的用户。
  4. 希望在不调用云端模型的情况下,使用 --stats-only 对本地 JSONL 消息执行统计的隐私敏感用户。
  5. 需要在飞书中搜索、读取和发送消息,并通过 im.message.receive_v1 事件实现自动回复的团队。
  6. 希望在本机 Ollama与 OpenAI、Claude、DeepSeek、Kimi 等云端服务之间切换回复后端的自托管用户。

如何安装或部署这个 Agent?

要求 Node.js 18 或更高版本,建议使用 LTS。执行:

npm i
cp .env.example .env
npm link

在 .env 中至少配置 BOT_NAME、ALIAS_WHITELIST、ROOM_WHITELIST、WECHAT_STORE_MESSAGES='true'、PI_BIN='pi' 和 PI_AGENT_ARGS='--print --no-session'。若系统没有全局 pi,可将 PI_BIN 留空,项目会通过 npx --yes @earendil-works/pi-coding-agent 启动。使用云端模型时还需提供对应凭据,例如 OPENAI_API_KEY、CLAUDE_API_KEY 或 DEEPSEEK_FREE_TOKEN;使用 Telegram 或 WhatsApp 时分别配置 Bot Token 或 Cloud API 凭据。首次微信运行命令为 wb agent --im wechat --agent pi,随后扫描终端二维码。也可构建并运行 Docker 镜像:docker build . -t wechat-bot,然后执行 docker run -d --rm --name wechat-bot -v $(pwd)/.env:/app/.env wechat-bot。

如何使用这个 Agent?

微信 Pi 模式运行 wb agent --im wechat --agent pi;传统模型模式可运行 wb start --serve ollama、wb start --serve ChatGPT 或 wb start --serve deepseek。私聊发送者必须出现在 ALIAS_WHITELIST,群聊必须位于 ROOM_WHITELIST 且消息需提及 BOT_NAME;还可设置 AUTO_REPLY_PREFIX。本地数据先执行 wb wx init,再使用 wb wx sessions、wb wx history、wb wx members 或 wb wx sns-search。分析示例为 wb analyze --room "群名" --stats-only 和 wb analyze --friend "好友别名" --serve ollama。飞书、Telegram 和 WhatsApp 分别以 wb agent --im lark --agent pi、wb agent --im telegram --agent pi、wb agent --im whatsapp --agent pi 启动;WhatsApp 还必须把公开 HTTPS 地址 https://your-public-domain.example/webhook/whatsapp 配置为 Meta Webhook。可通过 npm run test:analysis 与 node ./cli.js --help 检查本地分析模块和 CLI。

这个 Agent 有哪些优点和局限?

优点
  • 一个 wb CLI 覆盖微信、飞书、Telegram 和 WhatsApp,并针对各平台提供接收、发送或事件处理入口。
  • 回复后端不限于单一厂商,可在 Pi、ChatGPT、DeepSeek、Ollama、Claude、Kimi、Dify 等服务间切换。
  • 除自动回复外,还能通过 wx-cli 访问本地微信会话、联系人、群成员、收藏和朋友圈缓存。
  • 提供 --stats-only 本地统计路径,无需配置 LLM,也不会为了统计而调用 AI 服务。
  • 白名单、群聊提及和回复前缀为自动回复提供了明确的触发边界。
局限
  • 微信默认 Web 协议可能触发警告或封号;文档还指出 Wechaty 及 padlocal 相关维护状态不理想。
  • 部署涉及 Node.js、.env、各平台凭据以及若干外部 CLI;不同 IM 渠道的授权与配置方式并不统一。
  • WhatsApp 接收消息要求 Meta 能访问的公网 HTTPS Webhook,纯本地封闭部署无法直接接收其事件。
  • 非文本微信消息不会进入自动回复管线,WhatsApp 默认也只回复入站文本消息。
  • 将 /analyze 用于云端服务时会发送近期消息样本,处理私人对话前需要评估隐私边界与服务成本。

这个 Agent 与同类方案有什么区别?

Pi 模式把 Pi 作为统一项目代理,可通过四种 IM 渠道提供默认的单轮、非交互式回复;--serve 模式则直接选择 ChatGPT、DeepSeek、Ollama、Claude 等提供方。Ollama 更适合希望在本地处理内容的用户,而 OpenAI、Claude、Kimi 等云端服务需要 API 密钥、可用余额和网络连接。--stats-only 与这些生成式后端不同,只读取本地数据并生成统计结果。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
WeChat Bot 多平台 IM 助手 当前 64 · 存在缺口 命令行工具免费 + 模型费 ★ 12k 2 个月前 JavaScript ChatGPT · OpenAI API · Claude API
GoClaw 多租户智能体网关 48 · 缺口较多 自托管服务免费 + 模型费 ★ 3.7k 今天 Go Codex · OpenAI API · Claude API
Browser Use Box 34 · 缺口较多 — ★ 460 2 个月前 Python Claude Code · Claude API
Agent Barn 55 · 缺口较多 自托管服务免费 + 模型费 ★ 111 1 天前 Python —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
64/ 100 五分制 3.2 / 5
信任安全 13/29
可靠稳定 6/14
适用触发 16/18
规范维护 14/18
有效结果 10/13
证据核验 5/8
查看各维度的扣分理由
信任安全13 / 29 · 2.2/5

项目通过联系人、群组和触发前缀白名单限制多数自动回复,并明确说明微信消息落入本地 JSONL、分析样本可能发送给所选 AI 服务,因此最小权限和数据流说明较强;但 Lark、Telegram 私聊默认可回复,工具还能读取聊天、联系人、收藏及朋友圈等广泛数据。登录扫码和平台授权提供初始同意,却没有逐次发送或分析确认。密钥放在 .env 中,但未见加密存储、日志脱敏、数据保留期限、删除流程或访问控制。依赖清单包含已被文档明确称为不活跃的 Wechaty 组件和非常旧的 Puppeteer,且没有审计、锁定策略或漏洞缓解证据,因此依赖安全计 0。外部发送行为和触发条件有说明,但自动回复本身没有事务性撤销;也未提供回滚机制。作者、贡献者及主要上游服务得到标注,但发布者身份未由给定材料验证,第三方组件归属也没有形成完整清单。

可靠稳定6 / 14 · 2.1/5

README 中的主要命令与 package.json 脚本大体对应,服务、CLI 和代理模式形成相对连贯的产品描述;扣分来自 LICENSE.md/README 声明 MIT、package.json 却声明 ISC,以及部分等价命令和服务命名存在歧义。项目依赖多个云 API、网络代理、外部 CLI、Webhook、微信非官方协议和不活跃的 Wechaty 生态,虽给出部分替代方式和排障提示,仍有明显可用性风险。FAQ 罗列常见故障检查项,但没有提供实现层面的结构化错误、错误码或恢复语义证据。

适用触发16 / 18 · 4.4/5

文档覆盖个人私聊、群聊、统计分析、本地模型、云模型以及微信、Lark、Telegram、WhatsApp 等明确场景,受众和用法充分。它清楚区分本地统计与会向 AI 发送样本的深度分析,也说明仅处理文本、各平台授权要求及协议风险。白名单、群聊提及、前缀和自动回复开关的触发规则具体,故相关两项给满分。环境方面提供 Node.js 版本、Docker、代理、中国大陆镜像及多平台配置,但未完整交代 wx-cli 的操作系统兼容性、资源要求、Webhook 部署安全和所有外部 CLI 的版本约束。

规范维护14 / 18 · 3.9/5

README 结构清晰,包含功能表、快速开始、逐平台配置、测试、定制点、警告、FAQ 和 Docker 示例;安装说明、示例及已知限制都较完整。命令名称总体稳定,但 ChatGPT 等服务大小写、多个入口别名及 302.AI 环境变量风格不统一。LICENSE.md 是完整 MIT 文本,但 package.json 的 ISC 声明造成实质冲突,因此未给满分。package.json 只有 1.0.2 版本,虽发布文件列表提到 RECORD.md,所给材料没有变更记录内容、发布策略或兼容性承诺。材料标识作者并欢迎 PR,但没有维护周期、安全报告渠道或明确支持责任。

有效结果10 / 13 · 3.8/5

文档给出可直接使用的命令、配置和典型工作流,输出具备实际可操作性;但几乎没有展示分析结果格式、回复质量、数据模式或下游消费约定。把多个 IM 渠道、本地微信数据、统计分析和多模型回复统一到一个 CLI,显示出较高的增量价值。项目同时提供本地模型、无 LLM 的统计模式和多种云服务选择,并提示付费、余额、协议及封号风险;不过没有量化令牌费用、基础设施成本、延迟、资源占用或运营负担。

证据核验5 / 8 · 3.1/5

不少声明可追溯到具体命令、环境变量、脚本或源码路径,package.json 也能交叉印证 CLI、依赖和测试入口;但未提供相关实现文件,无法静态核对消息过滤、存储和平台行为的实际实现。README、许可证和包元数据提供一定交叉来源,却存在 MIT 与 ISC 冲突。文档会使用“理论上”“社区反馈”等措辞区分部分推测,并明确标示风险;然而 GitHub Trending 第一名、稳定性及功能可用性等若干陈述没有所给文件中的独立佐证。

风险与缓解建议
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 在使用云模型执行 /analyze 前,应假定近期聊天样本会离开本机;先取得参与者同意,并补充脱敏、最短保留期和删除机制。
  • 微信默认协议及 Wechaty 依赖被文档明确描述为不活跃或可能导致警告、封号;不要把生产账号或关键业务依赖于该路径。
  • Lark 和 Telegram 私聊默认回复;部署前应显式设置聊天与用户白名单,并保持群组自动回复关闭。
  • package.json 声明 ISC,而 README 和 LICENSE.md 声明 MIT;分发或商用前必须澄清实际许可证。
  • 对依赖执行独立安全审计并更新或隔离旧版 Puppeteer、Wechaty 及其 puppet 组件;所给材料没有漏洞缓解证据。
  • 本地 JSONL 聊天记录缺少明确的加密、权限、轮换、保留和清理说明,不应默认视为安全存储。
证据充分度:低 评估于 2026年9月21日 审查版本 43c6c5075393
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. 0.0.2 wechat-bot 新增国产 ai 服务 Kimi
    发布说明摘录
    看到最近 Kimi 爆火,遂集成进来,正好也解决了很多国内小伙伴经常反馈 openai 的接口请求不通需要代理对新手不友好等问题。 运行服务支持可选交互,欢迎感兴趣的同学PR集成其他服务进来 ![image](https://github.com/wangrongding/wechat-bot/assets/42437658/7bd54c32-32f1-4945-bef2-70cf31810102) 在这申请它的 apikey : https://platform.moonshot.cn/console/api-keys ![image](https://github.com/wangrongding/wechat-bot/assets/42437658/9445c68f-4396-42ea-b334-495e02f52706)
    在 GitHub 查看 ↗
  2. 0.0.1 完善 WeChat Bot,添加 OpenAi ChatGPT 用来帮助你自动回复微信消息。
    发布说明摘录
    1. 先获取自己的 chatgpt token,地址戳这里 👉🏻 :[https://chat.openai.com/chat](https://chat.openai.com/chat) 2. 登录完了,在控制台把 token 复制下来,然后在项目根目录下创建一个 .env 文件,内容如下: ```sh 执行下面命令,拷贝一份 .env.example 文件 cp .env.example .env ``` ```sh 完善.env 文件内容 CHATGPT_SESSION_TOKEN='你的token' ``` token 在这里拿到 ↓: ![](https://assets.fedtop.com/picbed/202212071104566.png) 3. 启动服务 ```sh npm run dev ``` 就可以扫码登录,然后根据你的需求,自己修改 index.js 文件。 ![](https://assets.fedtop.com/picbed/202212071315670.png) 可以看到,自动回复都是基于 chatgpt 的,记得要开代理。 ![](https://assets.fedtop.com/picbed/202212071317377.png)
    在 GitHub 查看 ↗

常见问题

必须购买或配置大模型 API 吗?
不一定。只使用 wb wx ...、飞书操作命令或 --stats-only 时无需 LLM。云端自动回复和深度分析需要对应 API 密钥、余额与网络;Ollama 可作为本地服务。
机器人启动后会回复所有消息吗?
不会。微信私聊受 ALIAS_WHITELIST 限制,群聊还要求 ROOM_WHITELIST 和对 BOT_NAME 的提及;其他平台也提供聊天、用户、前缀或群聊触发限制。
使用微信账号是否安全?
项目明确警告,微信 Web 协议可能导致插件警告、账号警告或封禁。应缩小白名单与使用范围,并只在明确接受风险的账号和场景中使用。
聊天分析会把消息发送到外部服务吗?
/stats 和 --stats-only 只读取本地 JSONL。/analyze 或带 --serve 的深度分析会把近期消息样本发送给当前服务或代理;私人聊天宜优先使用本地模型或本地 Pi 配置。
WhatsApp 模式能否只在笔记本本地运行?
进程可以本地运行,但接收入站消息的 Webhook 必须通过公网 HTTPS 地址供 Meta 访问,并正确配置访问令牌、电话号码 ID 与验证令牌。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents