01 · 项目介绍

一句话

企业微信里每天有大量需要人回的消息:外部客户咨询、群里 @ 你的问题、好友申请、要跟进但忘了跟的线索。SevFishComVBot 让一个真实的企业微信账号,在一台真手机上,由你自己的 LLM 自动处理这些事,并且记得住每个客户。

为什么不用官方 API

企业微信官方 API 能做的事是有边界的:它面向"企业内部应用",对外部客户群、外部联系人会话的读取基本关闭,发送也受限于会话上下文与权限。而绝大多数真实业务场景是:

  • 几百个外部客户群,客户在里面问价、问货、报问题;
  • 客户私聊加过来,第一句往往没有上下文;
  • 群太多,人记不住哪个群上次聊到哪。

这些信息只存在于客户端的界面里。所以本项目的做法是:在企业微信所在的那台手机上装一个无障碍服务,从界面上"看"消息、按指令"点"界面。它不是抓包、不是破解,走的是系统给残障用户准备的公开能力。

代价要说清楚:它慢(一次操作要几百毫秒到几秒)、它脆(企业微信改版可能让某个定位失效)、它需要一台常开的手机。换来的是官方接口给不了的覆盖面。

和同类方案的差别

官方 API 机器人桌面端 RPA本项目
外部客户群读取基本不可用需 PC 微信在线✅ 手机端,账号即人
账号类型企业应用/机器人账号个人微信真实企业微信账号
上下文(历史消息)弱中✅ 会话级 + 长期记忆
部署云一台 Windows一台 Linux + 一台 Android
风险低中中(自动化操作,见 07)

它由什么组成

  1. 执行端(Android)——装在企业微信同机的 APP,只做两件事:上报界面看到的事件;执行服务端下发的指令。没有业务逻辑,可以被替换。
  2. 服务端(Python/MySQL)——所有决策在这里:谁的消息、要不要回、回什么、记什么、什么时候再跟进。
  3. 协议——两者之间唯一耦合的东西,WebSocket + JSON。它是本项目的真正边界,见 05-通信协议。

支持的平台与版本

  • 企业微信:只支持 Android 版(包名 com.tencent.wework)。主要适配 平板端(Pad 版界面);手机端也能跑,但界面结构不完全一样,个别定位可能需要调。
  • 执行设备:优先用平板,或以平板模式运行的安卓设备。原因是企业微信的平板端与手机端可以在两台设备上同时在线——机器人跑在平板上,不会把本人手机上的企微挤下线。用手机当执行端也能用,代价是这台手机上的企微长期占用登录,本人平时得换设备或退出。
  • Android 系统:7.0 及以上(minSdk 24),需要能开启无障碍服务。
  • 服务端:Linux(x86_64 / arm64)、Python 3.13 及以上、MySQL 8.x;也可以用 Docker Compose 起。
  • 模型:任意 OpenAI 兼容接口,OpenAI、DeepSeek、通义、vLLM、Ollama 都能接。

不支持:企业微信 iOS 版、macOS / Windows 桌面版、网页版,以及企业微信 3.x 及更早的 Android 版本。

企业微信每次改版都可能调整界面结构,平板端与手机端的界面也不完全一样,个别定位会失效。同一大版本内的小版本升级通常没问题,升级前建议先在「功能测试」页把收消息、发消息各走一遍;失效了按 09-客户端构建 的排查顺序更新定位。

适合谁

  • 有 5~500 个外部客户群、靠人肉回复的中小团队(货代、批发、装修、本地服务、SaaS 售前)
  • 想要数据不出内网的团队:模型可接本地 ollama,聊天记录与客户资料都在自己库里
  • 想在上面做二次开发的开发者:Apache-2.0,四大子系统都有清晰边界(见 02)

不适合谁

  • 需要毫秒级响应的场景(这是真机点击,不是 API)
  • 想要"一次部署、零维护"的场景(企业微信改版时要跟着修定位,见 09)
  • 拿它去群发广告/批量加人——这违反平台规则,风险自负,本项目不为这类用法做任何优化
  • 没有一台可以长期开机、能放企业微信账号的手机

三个名词

  • 设备(robot):一台装了客户端的手机 + 一个企业微信账号。所有记忆、回复策略、任务都挂在设备上。
  • 组织(org):一套隔离的业务空间。设备、智能体、表格、知识库、工作流都属于某个组织。多团队/多客户用组织隔离。
  • 房间(room):企业微信里的一个会话,分外部群 / 外部私聊 / 内部群 / 内部私聊四类——回复策略就是按这四类分别配的。

需要有人帮忙落地?可以联系定制开发、私有化部署、联合交付或技术咨询。