The bitter lesson of browser agents
10 hours ago
- Browser Use 最初与 GPT-4o 一起推出,该模型并未针对计算机使用进行训练,因此我们不得不手动定义状态和操作。
- 随着模型在编码方面的改进,我们从预定义的状态和操作转向了基于代码的操作,允许模型为操作编写 JavaScript。
- 用代码替换固定操作使 Opus 4.8 的 token 使用量减少了 60%,Kimi K3 减少了 66%,并且两个模型都完成了所有 18/18 的运行。
- 预定义状态的限制是下一个问题,因为像 cookie 按钮这样的元素如果不在无障碍树中就可能被遗漏。
- 我们通过赋予 LLM 直接 CDP 访问权限来移除预定义状态,让它根据需要编写代码来检查 DOM 或截图。
- 选择 CDP 而非 Playwright,因为它是 Chrome 的原生协议,可以直接检查封闭的 shadow roots。
- 我们重用了现有的代理框架,如 Pi、Codex 和 OpenCode,来处理代理循环,避免循环中的错误。
- 苦涩的教训:倾向于随着计算提升的通用方法,比如重用经过验证的框架、暴露简单的接口,以及让模型自行选择观察和操作。