企微自动代回 · 云电脑部署指南

照着做即可 · 在一台无影云电脑上把「企业微信好友单聊 AI 自动代回」跑起来 · 2026-06-29
对象:运营 / 新接手同事 环境:无影云电脑(Windows) 主号无隔离 · 灰度从严
这套是什么:客户在企业微信里给你发消息 → 云电脑自动截屏读出来 → 小艳(AI)生成回复 → 自动打字发出去。你只需把它在云电脑上配好、先空跑验证、再开真发。

前置物料(开工前找 PM 要齐)

  • 一台无影云电脑(Windows,已装 Python 3.x);一个企业微信号(已加了客户好友的那个,主号)。
  • OpenRouter keysk-or-v1-…,给 AI 读消息用)。
  • WECOM_CHAT_SECRET(AI 大脑端点密钥):所有云电脑用同一个值(与服务器端对齐,不是每台一份)。但它是真密钥、本页公开,不写在这里向团队内部私聊(Lark)取现成的值,复制进 .env 即可,别自己编。
  • 脚本下载链接(6 个 paste.rs 链接,见第 3 步;链接失效就找 PM 重新 host)。
后端已就绪(PM 一次性做完,新机不用碰):AI 大脑端点、Fly 中转、服务器密钥都已上线。你这台云电脑只做「读屏 + 打字」,配好就能用。
1
装企业微信 + 登录
一次性

在云电脑下载安装 企业微信 PC 客户端,登录你的企微号(加了客户好友的那个)。

  • 登录后保持窗口开着不要最小化到托盘(最小化后截不到屏)。
  • 登录一次后,重启一次云电脑,看企微是否还保持登录 —— 把结果告诉 PM(决定要不要定期重登)。
2
确认 Python 在
一次性

打开 PowerShell,输入:

python --version

显示 Python 3.x 即可 → 跳到第 3 步。若提示「找不到 python」或弹出应用商店,说明这台没装,按下面装一下(5 分钟):

① 先用 winget 一键装(首选)

winget install -e --id Python.Python.3.12 --scope machine --accept-source-agreements --accept-package-agreements

装完关掉这个 PowerShell,重新开一个(PATH 要新窗口才生效),再验 python --version

② winget 也没有 → 官网静默装

cd $env:TEMP
iwr https://www.python.org/ftp/python/3.12.4/python-3.12.4-amd64.exe -OutFile py-setup.exe
.\py-setup.exe /quiet InstallAllUsers=1 PrependPath=1 Include_pip=1

PrependPath=1 会自动把 python 加进 PATH。装完同样新开一个 PowerShellpython --version

坑:输 python 弹出「Microsoft Store」=Windows 自带的假跳转。装好真 Python 后去 设置 → 应用 → 高级应用设置 → 应用执行别名,把 python.exe / python3.exe 两个开关关掉;或临时用 py --version 验证(不受别名影响)。
验证通过后顺手跑 pip --version 也应能跑(官网装已带 pip)——第 4 步 bootstrap-wecom.bat 要靠它装依赖。
3
把脚本拉到 C:\akke-wecom
一次性

在 PowerShell 里整段复制粘贴运行(建文件夹 + 下载 6 个脚本):

$dir = "C:\akke-wecom"
New-Item -ItemType Directory -Force -Path $dir | Out-Null
cd $dir
iwr https://paste.rs/JFSTe -OutFile bootstrap-wecom.bat
iwr https://paste.rs/eChiN -OutFile start-wecom-reply.bat
iwr https://paste.rs/vDNBc -OutFile wecom_reply_loop.py
iwr https://paste.rs/TfLHq -OutFile .env.example
iwr https://paste.rs/r8Em4 -OutFile measure_wecom_coords.py
iwr https://paste.rs/3iNhi -OutFile test_send_wecom.py
链接失效(下载报错/内容不对)就找 PM 重新 host 一份新链接替换。
4
装依赖 + 生成 .env
一次性
cd C:\akke-wecom
.\bootstrap-wecom.bat

它会自动装依赖(pyautogui 等),并从模板生成一份 .env。看到 Created .env … 就对了。结束按任意键关掉。

5
量你这台机器的坐标
最易错 · 必做
为什么必做:脚本要靠坐标去点「输入框」「会话」。模板里的默认坐标是另一台 2560×1600 的机器量的。你这台分辨率/企微窗口位置不同,默认坐标就会点歪 → 必须量你自己的。

① 把企业微信最大化,随便打开一个会话(让底部输入框露出来)。

② PowerShell 跑:

cd C:\akke-wecom
python measure_wecom_coords.py

③ 按提示,每个目标给你 6 秒倒计时,把鼠标移到那个东西上停住别动,依次量三个:

  • 文字输入框(底部能打字的空白区中心)
  • 发送按钮(右下角「发送」;没有就随便停)
  • 会话列表第一行(左侧最上面那个会话)

④ 跑完它会打印三行,复制下来,第 6 步填进 .env

AKKE_WECOM_C_INPUT=145,913
AKKE_WECOM_C_SEND=919,952
AKKE_WECOM_C_SESSION1=52,56   # ← 你的值会不一样,以你量到的为准
6
编辑 .env(填密钥 + 坐标)
一次性

用记事本打开 C:\akke-wecom\.env,逐行填好(等号后不要留空格、不要带引号):

ANTHROPIC_API_KEY=填你自己的 OpenRouter key(sk-or-v1-…)
WECOM_CHAT_ENDPOINT=https://akke-worker-prod.fly.dev/wecom/chat/reply  # 固定,别改
WECOM_CHAT_SECRET=填统一密钥(所有云电脑同一个值,真值不写在本公开页,向团队内部取)

AKKE_WECOM_C_INPUT=填第5步量的
AKKE_WECOM_C_SEND=填第5步量的
AKKE_WECOM_C_SESSION1=填第5步量的

AKKE_WECOM_SEND_KEY=enter        # 企微设置里发送键是 Ctrl+Enter 就改 ctrl+enter
AKKE_WECOM_TYPE_MODE=unicode     # 逐字打字(推荐)
AKKE_WECOM_DRY_RUN=1             # 先空跑验证,不真发!
AKKE_WECOM_HOURS=9-21           # 工作时间,夜间不发
AKKE_WECOM_DAILY_LIMIT=20       # 每天最多发 20 条(灰度从严)
WECOM_CHAT_ENDPOINT 一定填 Fly 这个地址不要填 vercel.app —— 云电脑(国内)连不上 Vercel,必须走 Fly 中转。
7
空跑验证(DRY_RUN,不真发)
切真发前必过

确保 .envAKKE_WECOM_DRY_RUN=1。企微开着,并且有一个外部客户的未读消息(没有就用另一个微信号给这个企微发一条测试)。然后:

cd C:\akke-wecom
.\start-wecom-reply.bat

它会:扫未读 → 点开会话 → 读消息 → 生成回复 → 打印出来 + 把鼠标移到输入框(不真发)。盯三件事:

看什么正常表现
① 读出的客户消息日志里 客户[xx] 新消息: '…' 和屏幕上的一致
click[顶部会话] 之后屏幕上点开的是会话(不是搜索框)
[DRY_RUN] 鼠标已移到输入框鼠标落在输入框里

三样都对 → 进第 8 步。哪样不对 → 看最下面排查表
测试期可临时把 .envAKKE_WECOM_HOURS0-24 方便随时测(第 9 步前务必改回 9-21)。改了 .env 要 Ctrl+C 停掉再重跑才生效。

8
发送测试(在自家群里实发一条)
一次性

验证「逐字打字 + 发送键」真能把消息发出去。先 Ctrl+C 停掉第 7 步的程序(免得抢鼠标),在企微打开你们自己的群,然后:

cd C:\akke-wecom
python test_send_wecom.py

按 Enter 后它会往群里发一条 自动化联调测试123,可忽略哈~。对号入座:

结果怎么办
✅ 群里收到了打字 + 发送都 OK,进第 9 步
字进了输入框但没发出发送键不对 → .envAKKE_WECOM_SEND_KEY=ctrl+enter 重试
字没进去 / 乱码企微不吃逐字 → .envAKKE_WECOM_TYPE_MODE=paste 重试
点歪了(没点进输入框)回第 5 步重量 AKKE_WECOM_C_INPUT
9
开真发
主号风险 · 在场盯

第 7、8 步都过了,编辑 .env 改两行:

AKKE_WECOM_DRY_RUN=0     # 真发
AKKE_WECOM_HOURS=9-21    # 收回测试用的 0-24!夜间不发

然后重启:

cd C:\akke-wecom
.\start-wecom-reply.bat
灰度姿态(主号被封代价大,务必谨慎):第一天白天人在场盯着头几条真实客户的自动回复(读得对不对、回得像不像人),手放在「停发」上(见运维)。日限默认 20,稳一两周再让 PM 往上调。不是上班时间(晚上)程序会自动休眠不发,这是正常的

日常运维

看它在不在干活 / 今天发了几条

type C:\akke-wecom\wecom_reply_status.json

ts=最后心跳时间,sent_today=今天已回条数。ts 还在更新就说明活着。

紧急停发(出任何异常先停)

C:\akke-wecom\ 文件夹里新建一个空文件,名字叫 wecom_reply_STOP(没有后缀)。程序看到它会立刻停发。

cd C:\akke-wecom
ni wecom_reply_STOP   # PowerShell 建空文件 = 秒停

恢复:删掉这个文件,再 .\start-wecom-reply.bat

云电脑重启后

  • ① 重新打开企业微信、确认登录还在(掉了就重新登);
  • cd C:\akke-wecom.\start-wecom-reply.bat
程序自我保护:连续 3 次出错它会自动停发并写下 STOP 文件(不硬重试,防止越错越糟)。这时别强行重启,先看终端报错、对照排查表,修好再删 STOP 重启。

排查表(看到现象 → 怎么修)

现象原因 / 怎么修
未找到企微窗口企微没开 / 最小化到托盘了 / 没登录 → 打开并登录、别最小化,重跑
endpoint 失败:连接超时(10060)WECOM_CHAT_ENDPOINT 填成 vercel.app 了 → 改成 https://akke-worker-prod.fly.dev/wecom/chat/reply
endpoint 返回 Unauthorized / 401WECOM_CHAT_SECRET 和服务器不一致 → 找 PM 核对,填成同一个值
点开的是搜索框不是会话AKKE_WECOM_C_SESSION1 量歪了 → 回第 5 步重量
鼠标没落在输入框 / 打字点歪AKKE_WECOM_C_INPUT 量歪 → 回第 5 步重量
字没进输入框 / 乱码.envAKKE_WECOM_TYPE_MODE=paste
字进了但没发出去.envAKKE_WECOM_SEND_KEY=ctrl+enter(看企微发送键设置)
客户消息读错 / 读不全VL 偶发;连发多条目前只读最新一条(已知限制,待优化)→ 个别错可人工补回
明明是客户却被「非外部客户」跳过VL 把外部客户误判成内部 → 截图发 PM 看,调读取 prompt
改了 .env 没生效程序启动时读 .env → 必须 Ctrl+C 停掉再 .\start-wecom-reply.bat 重跑
解决不了的:把终端完整输出截图发 PM,注明卡在第几步。