AI监控工具“失明”20天,它居然还告诉我状态健康
搞了一个叫HELM的小工具,专门盯着Claude Code,帮我自动点那个权限允许按钮,省得跑长任务时半夜两点卡在权限确认那儿把我吵醒。简单说,就是个帮我盯着AI的“监护人”。
下一篇
把 LLM Judge 当成最终判定结论是很多团队在做 Eval 时 →
结果我发现,这玩意儿从7月3号到23号,整整20天一个按钮都没点,但它的自检报告一直显示 Self-check OK (8/9)。日志里看着全是成功批准,实际上全是假象。
这次踩坑太典型了,分享给同样在搞AI Agent工作流的朋友:
一、Electron的“懒加载”坑
Claude Desktop是基于Electron的,Chromium的辅助功能树(accessibility tree)非常鸡贼,它觉得没人用辅助工具时就不构建内容树。结果就是:HELM能看到窗口外壳、侧边栏,看起来活蹦乱跳,但中间那个真正包含“Allow”按钮的对话区域在树里直接消失了。
二、自检逻辑的误区
我之前的自检把核心功能分在了“非关键”类目里。这就是典型的自欺欺人,如果你的健康检查里有“non-critical”这一项,赶紧去看看里面是不是藏着你的核心链路。
三、能“看到” $\neq$ 能“点击”
最离谱的是,我修复了可见性问题,发布了v1.0.24,自检显示 Self-check OK (9/9),结果还是点不动。
原因是Claude的按钮标签是动态的:
'Allow once 2 Ctrl +Enter'我的匹配代码在找 "Allow once",没匹配上,结果触发了正则 ^allow,结果它精准地匹配到了对话框的标题问题(那个问题也被标记成了按钮元素)。HELM在那儿疯狂点击那个问题标题,点击问题当然没反应,但因为 GetInvokePattern().Invoke() 执行没报错,代码就认为点击成功了,然后疯狂刷日志:
855 repeats of one dialog
1,194 'Allow once'
1,155 'Allow'20天,上千次所谓的“成功”,其实全是对着空气点。这次实操教训就是:别信任任何不带结果验证的“成功”回调。现在我把自检逻辑全改了,只要出问题直接报 Self-check DEGRADED。