乐于分享
好东西不私藏

让AI真正操控浏览器:browser-harness如何让LLM任务不再脆弱

让AI真正操控浏览器:browser-harness如何让LLM任务不再脆弱

我最近在刷GitHub Trending的时候,看到一个挺有意思的项目——browser-use/browser-harness。

4月份新建的仓库,star数已经开始往上走了。我点进去看了一眼,不是那种「啊原来是这样」的平庸之作,而是让我停下来想了一会的项目。


什么是browser-harness

browser-use这个团队,之前做过什么,我估计有些朋友知道。他们核心做的事情,就是让大模型能够操控浏览器。你给他一个任务,AI自己打开网页、点击按钮、填表单、读取信息,一条龙给你搞定。

这个方向不新鲜。很多团队在做。

但browser-harness这个项目解决的问题,比大多数团队看到的要深一个层次。

传统browser agent有一个致命弱点,页面结构一变,整个任务就崩了。你可能觉得这不是显而易见的吗,页面改版了嘛。但如果你真的写过browser agent,你会发现这个问题比你想象的更根本、更频繁。

网站改个按钮的class,换个div嵌套的位置,甚至只是调整了一下CSS选择器,你的agent就彻底瞎了。每次网站发布新版本,你都得重新跑一遍数据采集,重新标注,重新训练。成本高到离谱。

这才是browser-harness真正想解决的问题。


关键技术:self-healing harness

他们提出的概念叫self-healing harness。翻译过来就是「自我修复测试框架」。核心思路是这样的,当AI发现页面结构跟预期不符的时候,它不是直接报错退出,而是会停下来分析一下,然后自己动手修复,继续执行任务。

听着有点像什么,像是你给了一个实习生一份SOP,他执行到一半发现步骤变了,结果他停下来想了一下,自己调整了,继续往下走。

这个能力听起来好像理所当然,但做过browser agent的人知道,让模型在运行时动态修复页面适配问题,这事比看起来难得多。

难点在哪。传统的方案是你告诉AI,现在按钮的选择器变了,你去找一个新的。但这个过程里,AI很容易陷入「过度调整」的陷阱,找不到原来的选择器,就自己臆造一个,结果点到了完全错误的位置。

browser-harness的self-healing不是让AI漫无目的地重新找,而是给了一个结构化的修复框架。模型会先判断是什么类型的失效,是按钮消失了、是位置移动了、还是整个页面布局变了,然后针对这个类型去调用不同的修复策略。

这个设计思路,我是很认可的。很多AI应用的工程问题,不是模型不够强,而是我们给它的执行框架太简陋。你把一个GPT-4塞进一个只会ifelse的执行器里,它能发挥的空间就那么点。但如果你给了一个有层次、有判断、能自适应的框架,模型的能力会释放出很多。

browser-harness就是往这个方向走的。


技术原理

具体怎么实现self-healing,我翻了一下他们的代码和文档,大致的逻辑是这么几层。

第一层是变更检测。AI会在执行过程中持续对比当前页面的DOM结构和它记忆中的结构,发现有差异就触发修复流程。

第二层是多策略适配。针对不同类型的变更,预设了几种修复路径。比如按钮文本变了,那就用新的文本去定位。如果是布局变了,那就用相对位置关系去找目标元素。

第三层是回退机制。如果修复失败了,系统不会卡死,而是会尝试更保守的策略,甚至可以回到之前的某个节点重新规划。

三层叠加在一起,给了AI一个「遇错不慌、原地调整、继续干活」的能力。

这事儿重要在哪。重要在,它把browser agent从「高度定制化、脆弱、难维护」的状态,往「通用化、鲁棒、易维护」的方向推了一把。

你可能觉得这只是个小改进。但实际上,这种工程化的能力,才是AI应用能否真正落地的分水岭。

模型能力再强,你也得解决一个核心问题,就是当它面对真实世界的混乱时,能不能保持稳定运行。真实世界就是页面会改、接口会变、用户行为不可预测。你的系统能不能在这些情况下活下来,而不是一遇到意外就原地去世。

browser-harness给出的答案是,让AI学会在运行时自我修复,而不是依赖提前写死的适配代码。


我们能学到什么

这个思路其实不只适用于browser agent。我最近在做一个AI辅助编程的项目,也遇到类似的问题。用户的需求描述是模糊的、变化的、上下文不完整的。传统的做法是你写一堆规则来兜底,但规则永远覆盖不了所有情况。

后来我换了个思路,与其拼命预测所有可能的错误情况,不如让AI在遇问题时,自己判断、自己调整、自己继续。这个思路在browser-harness里得到了很好的验证。

从更大的视角来看,我觉得browser-harness代表了一个趋势,就是AI应用正在从「模型为王」向「系统设计」迁移。早期的AI应用,大家都在卷模型能力,觉得只要模型够强,什么都能解决。现在越来越多人意识到,光有强模型不够,你还得有好的执行框架、好的容错机制、好的工程设计。

browser-harness的价值,是在这个方向上给了一个具体的、可参考的工程实现。

当然,这个项目还非常新,能不能经受住大规模场景的考验,还需要时间。但我真心觉得这个方向是对的。

如果你也在做browser agent或者类似的AI执行系统,我建议你去看一下这个项目。不一定直接用,但里面的设计思路,对你思考怎么提升系统鲁棒性,会有帮助。


好了,就说这么多。

既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标。

谢谢你看我的文章,我们下次再见。

李仪——脑袋光光的琦玉老师 | 连续6年4点起床的程序员 | 注册营养师