🖥️ 云电脑监控 · 操作逻辑

无影云电脑「自驱发私信」通道的健康哨兵 · 由本机 Hermes 定时驱动 · 2026-06-18
一句话:每 10 分钟自动体检一次两台云电脑在不在正常发私信, 全部正常时绝对安静,只有真出问题(账号被禁 / 没在发 / 卡单)才往 Lark 群推一条告警。 检测全是确定性代码,不调用大模型、不花钱

一次巡检的完整流程(每 10 分钟跑一遍)

Hermes cron 定时触发
任务 cloudpc-monitor,节奏 */10 9-21 * * *(北京活跃时段每 10min)。--no-agent 纯看门狗模式 —— 不进大模型循环。
📜
运行包装脚本 cloudpc-monitor.sh
注入账号清单 + Lark webhook,调起检测器 cloudpc-monitor-tick.ts
🔍
检测器逐账号直查数据库
对每台云电脑读:账号状态 / 是否开自动 / 队列(pending·claimed) / 今日已发 / 最近发送时间。只读,不改库、不发抖音。
⚖️
套确定性规则判定(含跨周期状态)
和上一轮快照比对,按优先级判断是否命中告警(见下表)。状态按账号分别记在 ~/.hermes/state/cloudpc-monitor.json
✅ 全部健康
脚本输出为空 → cron 静默 → 群里一个字都不发。这是绝大多数情况。
⚠️ 命中告警
① 先写兜底日志 cloudpc-alerts.log
② POST 到 Lark 群机器人 webhook(绕开应用 API 配额)
③ 带账号名,哪台出事推哪台
真问题(🔴/🟠)@ 负责人,确保不漏;恢复/自检不 @

什么会告警 / 什么不会

情况级别判定逻辑
账号被禁 / 冷却🔴 告警账号 status ≠ active
没开自动发送🔴 告警channel_pref ≠ cloud_pc
卡单🔴 告警claimed>0 连续 ≥2 轮(~20min)领了单却不发出
停摆🟠 告警有积压但 ≥3 轮(~30min)没新发出、且没到日限
当日预算打满不报今日已发 = 日限:正常完成,不是故障
小时上限 / 24h 兜底节流不报正常限速,不是故障
池子空(没 lead 可发)不报无积压、无可发,正常
从异常恢复正常✅ 一条上一轮还在告警、这一轮好了 → 推一条「已恢复」闭环(仅一次)

四条设计原则(为什么这么做)

跳验证 / 异常时:能检测吗?怎么办?

问题回答
能直接看到验证弹窗吗?不能 监控在本机、看不到无影屏幕;抖音跳验证也不往库里写「验证/captcha」标记。
能间接发现吗? 验证挡住发送 → 单子卡 claimed / 没新发出 → 卡单·停摆规则 ~20–30min 内报;同时可能冒一批 failed: unverified(点了发送没出气泡)。
告警能说清是跳验证吗?不能精确分 只会报「没在发,多半无影没开/抖音没前台/卡住」,跳验证是其中一种可能,需人去无影确认。
三个盲区: ① 滞后 ~20–30min,非实时;② 队列空时没有「卡住」信号 → 那一刻跳验证不报;③ 看不到屏,分不清验证 / 无影崩 / 掉登录。
跳验证了怎么办:验证只能人去无影 GUI 上手动过(拖滑块/点验证)——监控解不了(设计就是只告警不自动处置,因为本机够不到无影屏)。 闭环:监控报「没在发」 → 你远程进无影过验证 → 恢复后监控自动推「已恢复」

能不能接无影 API 把监控做强?(接入调查)

结论先行:当前是个人版(EDSP),无任何官方 OpenAPI —— 查状态 / 重启 / 在桌面内执行命令都不行。三条可选路径:
路径可行性说明
个人版自身 OpenAPIOpenAPI 是企业版独有;个人版只能客户端用,没有任何编程接口。
升级企业版(EDS)完整 API解锁全套管控 OpenAPI(见下)。代价:换版本、计费不同、抖音环境要重新登录养号。
无影 AgentBay(MCP/SDK)换架构阿里给 AI agent 的云沙箱,可程序化驱动,但是它自己开的环境、不是控你现有个人版桌面。大改造,另需评估抖音风控。
升企业版能解锁什么(对监控最有用):
💡 但大概率不必为「检测 captcha」换版本: 最省的路不碰无影 API —— 桌面内的 GUI agent(douyin_dm_grounded.py)本就有截图+VL 能力,让它发送失败时判一下是不是 captcha 中间页、命中就写个 DB 状态(如 failed: captcha,监控再加一条规则,就能精确报「🔴 跳验证了」。几十行、不换版本、不接任何 API。
推荐:① 只要 captcha 被检测 → 改桌面内 agent 写状态 + 监控加规则(性价比最高); ② 要远程重启/自愈/桌面级状态 → 才值得评估升企业版用 RunCommand; ③ AgentBay → 大改造,短期不建议。

当前监控对象

第一台 · 小文(野荞)
日限 30 条   状态 ✅ 监控中
第二台 · 文哥
日限 20 条   状态 ✅ 监控中
加 / 撤一台:改包装脚本里的 CLOUDPC_MONITOR_ACCOUNTS(逗号分隔账号 id)即可,无需改代码。

同事怎么部署到自己的云电脑(自助安装)

每个同事在自己机器上装一套,各自监控各自那台云电脑、出问题 @ 自己。完整命令见仓库 runbook docs/runbooks/cloudpc-monitor-setup.md,这里是速览。
前提(缺一不可)
1
拉取检测脚本(随仓走,不用自己写)
cd <你的 Akke 仓> && git pull —— 拿到 scripts/cloudpc-monitor-tick.ts
2
在 Akke .env.local 加配置
CLOUDPC_ALERT_LARK_WEBHOOK=<找 PM 要群 webhook>
CLOUDPC_ALERT_AT_OPENID=<你的 Lark open_id> —— 出问题 @ 你(不填则不 @)
只监控自己一台:不用填账号,脚本默认用 AKKE_ACCOUNT_ID;多台才填 CLOUDPC_MONITOR_ACCOUNTS=id1,id2
3
建包装脚本
mac/Linux~/.hermes/scripts/cloudpc-monitor.sh(补 node/pnpm 路径 + cd 到 Akke 仓 + 跑 pnpm tsx scripts/cloudpc-monitor-tick.ts
Windows:写成 cloudpc-monitor.py(Hermes cron 对非 .sh 走 Python,跨平台更稳)。模板见 runbook。
4
注册定时任务
hermes cron create "*/10 9-21 * * *" --name cloudpc-monitor --no-agent --script cloudpc-monitor.sh --deliver local
5
自检一次
pnpm tsx scripts/cloudpc-monitor-tick.ts --force-test → 去 Lark 群看有没有收到「🧪 自检」。收到=装好了。
装完就只管用:健康全程安静,出问题自动 @ 你。要暂停 hermes cron pause <jobid>

关键组件 & 常用命令

⏰ 调度:Hermes cron · cloudpc-monitor 📜 包装:~/.hermes/scripts/cloudpc-monitor.sh 🔍 检测:scripts/cloudpc-monitor-tick.ts 📤 投递:Lark 群机器人 webhook 📝 日志:~/.hermes/logs/cloudpc-alerts.log
操作命令
看监控任务hermes cron list
暂停 / 恢复hermes cron pause / resume c76f5b459b0e
看告警留痕tail -f ~/.hermes/logs/cloudpc-alerts.log
手动自检(推两条到群)pnpm tsx scripts/cloudpc-monitor-tick.ts --force-test
改阈值 / 时段编辑 cloudpc-monitor-tick.ts 顶部常量
云电脑自驱通道健康哨兵 · 本机 Hermes 驱动 · 只看不发抖音 · 健康即静默