搞了一个比 agent browser 更省 token,不依赖 Node/Playwright 的 Agent 浏览器...

4 月 2 日
 libii

地址

https://github.com/libi/ko-browser

原理

利用 chrome 浏览器的辅助模式在快照阶段使用 axtree 构建一个纯文本的节点树,每个元素有一个唯一 ID. Agent 操作都基于纯数字的 id(例如填写输入框 kbr fill 4 xxx),所以非常节省 Token.

节点数结构示例:

Page: "Google"

1: link "Gmail"
2: link "Images"
3: link "Maps"
4: textbox "Search" focused
5: button "Google Search"
6: list
  7: listitem
    8: link "About Google"
  9: listitem
    10: link "Advertising"
11: heading "Trending"
12: link "Breaking news: Major tech announcement"
13: img "Google Logo"

安装使用说明

欢迎大家试用哈, 使用 golang 的 chromedp 封装实现的.目前已经覆盖了 90%以上的常用指令.

本地有 go 环境的话 go install github.com/libi/ko-browser/cmd/kbr@v0.1.1 就安装好了. 使用 kbr 指令即可.

没有 go 环境,就直接去 github 的 release 页面下载编译好的二进制包,全平台支持.

项目状态:

我目前尽可能完善了大部分的指令和参数的单元测试,跑了一些自己内部的 jenkins 界面操作都能跑通.更多更细致的场景还没有覆盖到,欢迎大家提交问题反馈哈.

2026 次点击
所在节点    程序员
6 条回复
yaidev
4 月 2 日
mark 思路很有趣
wfhtqp
4 月 2 日
怎么解决?
```
Page: "请稍候…"

1: main
2: Iframe "包含 Cloudflare 安全质询的小组件"
```
libii
4 月 2 日
@wfhtqp 使用 可见界面 模式哈, 给 ai 说不要使用无头模式. 这个问题是无头模式被 cf 拦截请求了.
miwuyouth
4 月 3 日
无障碍模式吗,browser-use 也支持
libii
4 月 3 日
@miwuyouth 嗯, 相对于 browser-use 跟 agent browser 这类的主要优势是不依赖 nodejs 环境跟 Playwright, 快照使用自定义的 ddl 非常节省 token
libii
4 月 15 日
@wfhtqp 优化了下实现,现在已经支持解析 iframe 内的内容了.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1203130

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX