开发与工程 browser-automationchrome-cdpweb-scrapingzigandroid-automationios-automationhar-recordingtoken-efficiency

Kuri

用 Zig 编写的单二进制浏览器自动化、网页抓取与 iOS/Android 设备控制工具,为 AI Agent 循环打造,极致压缩 token 开销。

FollowAgents 评估 · FARS-2.1
谨慎使用
71/ 100 五分制 3.6 / 5
1 2 3 4 5 6
1信任安全18 / 29 · 3.1/5

CI 明确验证未认证请求返回 401、token 自动生成至 ~/.kuri/api.token、macOS 凭据入 Keychain,说明访问控制被认真对待;扣分点:README 声明 KURI_SECRET 为『可选』认证,与 CI 展示的强制 token 路径存在张力,静态证据无法确认默认强制;/auth/extract、/cookies/set、/dialog/auto、任意 JS evaluate 等高风险端点均无确认或分级机制,user_confirmation 仅得 1。

2可靠稳定9 / 14 · 3.2/5

CI 含回归测试(issue #156 --help 不得拉起 Chrome)、启动冒烟、Windows 交叉编译门禁,且注释记录了历史缺陷(install.sh 漂移四个版本、--device 静默失效),质量意识强;扣分点:README 声称 Zig 0.16.0 而 CI 实际安装 0.17.0-dev 预发布版,版本声明与构建脚本不一致。

3适用触发16 / 18 · 4.4/5

面向 agent 循环的场景定义极清晰(token 优化快照、diff 循环、batch 端点);Windows 全功能桩化、实验性浏览器运行时、WSL2 建议均明确标注,能力边界诚实完整;触发精度仅依赖 skill 文件示例,未见精确的触发条件规范,给 2。

4规范维护14 / 18 · 3.9/5

安装文档覆盖四种途径并含 SHA-256 校验和与签名/未签名状态的真实披露,known_limitations 因对基准方法、Windows 桩、签名缺失的坦率说明给满分;扣分点:README 营销性表述('Why Kuri Wins')与事实内容混杂,license 元数据 NOASSERTION 与仓库内 SSPL+例外文件不一致,维护者为单一作者,持续性依赖个人。

5有效结果10 / 13 · 3.8/5

输出统一 JSON、紧凑快照格式、截图写盘不进上下文,对 agent 消费者可用性高,给 3;边际价值声明(7-12% token 节省、13-376x 延迟)有方法论链接但均为自我测量;成本收益部分自己承认大列表默认不截断曾导致 5.1x 劣势,诚实但未完全解决。

6证据核验4 / 8 · 2.5/5

基准附方法说明并显式要求读者自行复测、tiktoken vs chars/4 的口径区分清楚;扣分点:所有性能数据均为作者单一环境自测,无第三方或独立复现,cross_source_corroboration 仅 1;事实上 README 在 'The base skill now also expl' 处截断,部分内容不可评。

证据充分度: 评估于 2026年9月10日 审查版本 8c4f5b910e84
使用前请注意
  • 认证强度在静态证据下不确定:README 称 KURI_SECRET 可选,部署前必须自行确认默认是否强制 token 认证。
  • /auth/extract、/cookies、/dialog/auto、任意 JS 求值等端点具备高破坏力且无确认机制,agent 误触发风险需自行缓解。
  • 性能与 token 节省数据全部为作者自测,跨工具对比须在你自己的环境中复测后再引用。
  • 许可证为 SSPL v1 加作者例外:只有作者一方豁免 SaaS 服务条款,企业商用托管需法务评估。
  • Windows 支持为编译通过但运行时大量桩化,勿在生产使用;README 版本声明(Zig 0.16.0)与 CI 工具链(0.17.0-dev)不一致,从源码构建前请核对 build.zig。
  • 发布通道为作者自管的 release-channel 分支而非 GitHub Releases 本身,供应链信任依赖该分支完整性。
评估证据 [1][2][3][4]
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

Kuri(justrach/kuri)是一套用 Zig 0.16 编写的浏览器自动化与设备控制工具集,分为四个二进制:kuri(CDP 服务器,135 个 HTTP 端点)、kuri-fetch(不依赖 Chrome 的独立抓取器,内置 QuickJS)、kuri-browse(交互式终端浏览器)和 kuri-agent(可脚本化 CLI)。它通过 Chrome DevTools Protocol 控制浏览器,输出带 @eN 引用的无障碍树快照、HAR 1.2 网络录制和 Markdown 页面转换,并以内置的原生 adb wire-protocol 客户端和 usbmuxd 客户端驱动 Android 与 iOS 设备。相比 Playwright/Node 方案,其 Apple Silicon 二进制小于 2 MiB、零运行时依赖,快照 token 比 agent-browser 少约 7-12%,配合 /page/state、/diff/snapshot 和 POST /batch 可将一个完整 agent 循环压到约 3,400 token。它还内置反检测补丁(UA 轮换、WebGL/Canvas 伪装)和 bot 拦截识别(Akamai、Cloudflare、PerimeterX、DataDome),并提供 cookie 审计、安全头检查和 IDOR 探测等安全测试命令。kuri-mobile 通过 kuri 主二进制的 ios/android 子命令暴露,无需在设备上安装任何 App。

kuri 启动托管 Chrome(或通过 CDP_URL 连接已有实例),在 127.0.0.1:8080 暴露 135 个 JSON HTTP 端点:/tab/new、/navigate、/snapshot?filter=interactive&format=compact 生成带 @eN 引用的无障碍树快照,/action?action=click&ref=eN 通过可信 CDP 鼠标和逐字符键盘事件操作元素(兼容 React 18/19),/har/start 与 /har/stop 录制网络流量为 HAR 1.2,/diff/snapshot 输出 +/-/~ 增量快照,POST /batch 一次调用执行多条命令,/page/state 以约 48 token 返回轻量页面观察。kuri-fetch 独立抓取页面并输出 markdown/html/links/text/,内嵌 QuickJS 执行内联脚本并带 SSRF 防护;kuri-browse 提供带链接编号和历史记录的终端浏览;kuri-agent 提供 go/snap/click/fill/eval/cookies/headers/audit/probe 等命令,可在登录后做 cookie 安全标记审计、安全头检查和 IDOR 探测。kuri-mobile 以原生 Zig 实现 adb wire 协议(host:transport/shell/exec 的 4-hex 帧封装)和 usbmuxd ListDevices 客户端,执行 android tap/swipe/screenshot/uitree 与 iOS 模拟器 list-devices/openurl/screenshot/launch(真机启停通过 xcrun devicectl)。

  1. AI Agent 开发者构建浏览器操作循环:用 /snapshot?filter=interactive 获取低 token 快照,以 @eN 引用点击,配合 /diff/snapshot 和 POST /batch 把每轮成本压到约 1,700-3,400 token
  2. 爬虫与数据采集工程师用 kuri-fetch 或 CDP 管道抓取页面,输出 Markdown/JSON,并借助 stealth 补丁和 KURI_PROXY 绕过 Akamai、PerimeterX 等 WAF 拦截
  3. 安全测试人员在登录目标后用 kuri-agent cookies/headers/audit 审计 cookie 安全标记、缺失安全头和暴露给 JS 的 token,用 probe 命令迭代数字 ID 探测 IDOR
  4. QA/自动化工程师用 135 个 HTTP 端点做 React 兼容的点击输入、截图对比、Core Web Vitals 采集和网络拦截
  5. 移动测试人员用 kuri-mobile 的原生 adb 客户端驱动 Android 模拟器/真机(tap、swipe、uitree、screenshot),用 usbmuxd/simctl 控制 iOS 模拟器
  6. 偏好终端工作流的开发者用 kuri-browse 在无图形界面的服务器上浏览和检索网页

这个 Agent 有哪些优点和局限?

优点
  • 单二进制、零 Node/Playwright 依赖:Apple Silicon ReleaseFast 构建下 kuri 仅 1.04 MiB、kuri-agent 615 KiB,内存占用约 2.45 MiB 起步
  • 针对 agent 循环的 token 效率:@eN 三字符引用、/page/state(48 token)、/diff/snapshot 增量循环和 POST /batch 批量执行,9 点击轨迹从 44,285 token 降到 898(49 倍)
  • 移动控制原生实现:adb wire 协议和 usbmuxd 客户端均为 Zig 原生编写,无需 Bun/Node/Gradle/Xcode 构建链,设备上也无需安装 App
  • 内置反检测:启动即应用 stealth JS 补丁(隐藏 webdriver、WebGL/Canvas 伪装、UA 轮换),导航时自动识别 Akamai/Cloudflare/PerimeterX/DataDome 拦截并返回结构化 fallback
  • 附带安全测试轨迹:cookie 安全标记审计、安全头检查、JWT 解码和 IDOR probe 命令,输出单行 JSON 便于 jq 流水线
局限
  • Windows 原生功能缺失:仅实验性交叉编译,Chrome 自动化、守护进程、HAR 录制和文件鉴权存储均返回 error.UnsupportedOnWindows,完整功能需 WSL2(issue #153)
  • iOS 真机能力受限:tap/uitree 依赖 XCUITest 的 driverless 路径被有意排除,真机仅支持列举和 launch/terminate(经 xcrun devicectl),模拟器操作还需 xcrun simctl
  • CDP 模式依赖本机 Chrome/Chromium,需要管理浏览器生命周期;重复运行 agent 循环会重复支付 token(无 libretto 式零 token 回放)
  • 许可证字段为 NOASSERTION,虽然 LICENSE 文件声称 Apache-2.0,但企业合规团队需自行确认
  • 跨工具 token 节省数字来自作者自己的基准(部分用 chars/4 近似),README 也提醒需在相同环境中复测才能引用百分比

如何安装或部署这个 Agent?

macOS/Linux 一行安装:curl -fsSL https://kuri.trilok.ai/download | sh(或 curl -fsSL https://raw.githubusercontent.com/justrach/kuri/release-channel/stable/install.sh | sh),安装到 ~/.local/bin,支持 macOS arm64/x86_64 和 Linux x86_64/arm64,单二进制无运行时依赖。也可用包管理器:bun install -g kuri-agent 或 npm install -g kuri-agent(安装时下载对应平台原生二进制)。源码构建需要 Zig >= 0.16.0:git clone https://github.com/justrach/kuri.git && cd kuri && zig build -Doptimize=ReleaseFast,产物在 zig-out/bin/ 下。Windows 仅为实验性交叉编译,Chrome 自动化等功能被 stub 为 error.UnsupportedOnWindows,需用 WSL2。

如何使用这个 Agent?

CDP 服务器模式:./zig-out/bin/kuri(未设 CDP_URL 时自动启动并托管 Chrome),然后 curl -s http://127.0.0.1:8080/discover 发现标签页;推荐会话式 agent 循环:SESSION=hn-demo; BASE=http://127.0.0.1:8080; curl -s -H "X-Kuri-Session: $SESSION" "$BASE/tab/new?url=https%3A%2F%2Fnews.ycombinator.com",再依次调用 /page/state(或 /snapshot?filter=interactive&format=compact)和 /action?action=click&ref=eN。已有 Chrome 远程调试时:CDP_URL=ws://127.0.0.1:9222/devtools/browser/... ./zig-out/bin/kuri。独立抓取:kuri-fetch https://example.com(--/-d links/--js 等选项)。终端浏览:kuri-browse https://example.com。CLI 自动化:kuri-agent tabs → kuri-agent use <ws_url> → kuri-agent go <url> → kuri-agent snap --interactive → kuri-agent click e0。设备控制:kuri ios list-devices / kuri android tap 540 1200。可选配置:HOST、PORT(默认 8080)、KURI_SECRET(API 鉴权)、STATE_DIR(默认 .kuri)、KURI_PROXY(代理)。

这个 Agent 与同类方案有什么区别?

README 将其与 agent-browser(Vercel)和 browser-use 做了 135 端点功能对标,宣称快照 token 少 7-12%;与 libretto(Playwright + Node)的实测对比显示 kuri 单调用延迟快 13-376 倍(持久服务器 vs Node 每命令进程),典型页面快照 token 少 1.37-2.5 倍,但 libretto 在重复运行上胜出——它把轨迹编译为 Playwright 脚本实现零 token 回放,而 kuri 每次运行都重新支付循环成本。若你在意大列表截断,kuri 默认输出全部 259 个引用(4,424 token),需显式传 limit=N 才能低于 libretto 的默认截断。

常见问题

不装 Chrome 能用吗?
可以。kuri-fetch 是不依赖 Chrome 的独立抓取器(内置 QuickJS,约 2 MB),kuri-browse 也是无需 Chrome 的终端浏览器;只有 CDP 服务器模式和 kuri-agent 的浏览器自动化需要 Chrome/Chromium。
成本大概是多少?
以 50 页监控任务为例(引用 Pinchtab 基准):/text 或 /snapshot?filter=interactive&format=compact 约 40,000 token(约 $0.20),全量 /snapshot 约 525,000 token(约 $2.63),/screenshot 约 100,000 token(约 $1.00)。用 /diff/snapshot + limit 截断可把 9 点击轨迹降到 898 token。
需要什么权限和运行环境?
macOS/Linux 的预编译单二进制无运行时依赖;CDP 模式需要本机 Chrome/Chromium,服务器默认绑定 127.0.0.1:8080,可用 KURI_SECRET 开启 API 鉴权,macOS 上鉴权配置文件密钥存入用户 Keychain。构建源码需 Zig >= 0.16.0。
能绕过所有反爬保护吗?
不能。README 的实测表显示 Akamai(新加坡航空)已可绕过,Shopee SG 可加载但跳转登录,Booking.com 的 PerimeterX 仍需配置 KURI_PROXY 才能通过;遇到拦截时导航会返回结构化的 blocked 响应和 fallback 建议。
Windows 上能用吗?
只有实验性支持:zig build -Dtarget=x86_64-windows-gnu 可通过 CI,但 Chrome 自动化、守护进程化、HAR 录制和文件鉴权存储在运行时返回 error.UnsupportedOnWindows,--version/--help 等纯内存操作可用;需要完整功能请使用 WSL2(进度见 issue #153)。

相关 Agents