ax:Hono 作者新作,给 AI Agent 用的"AI 时代 curl"

CLI工具
AI Agent
爬虫
CSS选择器
Hono
开源
2026/9/29
·

阅读时间: 大约 8 分钟

ax:Hono 作者新作,给 AI Agent 用的”AI 时代 curl”

编码 Agent 抓网页时的典型一幕是:现场写一段 Python,用一堆正则去解析 HTML,既烧 token,又一旦页面改版就全部失效。ax 是 Hono 作者 Yusuke Wada 的新作,自我定位”AI-era curl”,想用一条命令替代 curl + 一次性 Python 脚本。本文基于其官网公布的实测数据,分析它到底省在哪、benchmark 又该怎么读。

ax 官网的 BEFORE/AFTER 对照:上方是 Agent 现场写的 Python 正则脚本,下方是一条 ax 命令直接输出结构化表格(50 rows extracted, no empty fields)

一、背景:Agent 抓页面的隐性 token 成本

Koala 点出了问题本质:智能体抓网页时经常现写正则脚本,既费 token 又脆弱。ax 官网首页直接贴了一段”真实 Agent 会话”的对照——左边是 Agent 现场写的 Python 正则(耗时 3 分 19 秒、消耗 8.6K token),右边是一行 ax 命令直接输出结构化表格。它要消灭的,正是”每次任务都现写、现调、现 debug 选择器”的这笔重复成本。

二、它是什么:fetch / discover / extract 三合一

ax 把本地 HTTP 与 HTML I/O 收敛成一个命令,分三类能力:

  • fetch(抓取):类似 curl,但每个请求都产出结构化报告而非静默失败——返回里带 status、ok、ms(耗时毫秒)、headers、body;
  • discover(探索):不把原始 HTML 整个塞进上下文,而是先摸清页面结构——--outline 列出选择器分布、--locate 定位文本、--count 计数;
  • extract(提取):用 CSS 选择器抽结构化行,--row 'title=a, href=a@href' 一次取多字段,--table --where 'Stars > 100' 做表格过滤,--md --budget 800 把文档转成 markdown 并设 token 预算。

关键设计哲学是:用 CSS 选择器这种”页面改版后可被模型修复的抽象”,取代脆弱的正则。选择器比正则好修——这是 Koala 也认可的聪明之处。

三、为什么”对 Agent 友好”

ax 有几个专门为模型使用而做的设计:

  • 默认有上限(capped by default)、绝不静默(never silent):输出带 ax: note: 50 rows extracted, no empty fields 这类提示,避免 Agent 误以为抓到了数据;
  • ax agent-context:离线打印完整手册,Agent 跑一次就学会怎么用,不用每次重新翻文档;
  • 可作为 skill 安装:npx skills add yusukebe/ax,让能力固化下来;
  • 安装方式齐全:一键脚本、Homebrew(brew install yusukebe/tap/ax)、Nix(nix run github:yusukebe/ax)、源码(bun 构建)。许可证 MIT。

四、关键数据:官方 benchmark 怎么读

官网给出了四项基于 Claude Opus 4.8 的实测(已核实原文):

场景不用 ax用 ax成本降幅
两页间标记漂移(正则脚本崩溃处)$0.458$0.150−67%
60 项目录页结构化提取$0.296 / 24s$0.104 / 14s−65%
真实公网页面、带诱饵标记(3 次中位数)$0.248$0.191−23%
Agent 第一次用 ax(含读文档成本)$0.664$0.282−58%

Koala 在周报里只提了”部分场景成本降低 65%“,对照原文必须打几个折扣:

  1. 最佳场景才 −67%,真实公网中位数只有 −23%:最亮眼的数字来自”正则注定会崩”的人造漂移场景,那正是 ax 最占优的情况;放到真实随机网页,收益明显收窄到两成多;
  2. “中位数 of 3 runs”:样本极小,方差大,作者自己也注明”Method, prompts, variance notes and the failed runs — in the repo”,即有失败运行未计入主榜;
  3. 后三行假设 Agent 已会用 ax:最后一行专门测”第一次用”,把读手册成本算进去后仍省 58%——这反而是对新用户更诚实的数字;
  4. 评测方就是作者本人:虽然作者把方法、提示词、失败运行都放进了仓库可供复核,但仍是厂商自测,缺第三方独立复现。

五、适用 / 不适用场景

适合:

  • 高频让 Agent 抓网页、做结构化抽取的自动化流水线;
  • 受够了每次现写正则、页面一改全崩的团队;
  • 想把”抓网页”标准化成一个可被 Agent 学会并复用的工具。

不适合:

  • 只是偶尔手动 curl 一下接口的人(curl 足够);
  • 需要渲染 JS、处理反爬、登录态的重度抓取(ax 定位是本地 HTTP/HTML I/O,不是爬虫框架);
  • 期待它在任意网页都省六成成本——真实中位数约两成。

六、客观分析:优势与局限

优势:

  1. 切中真实痛点:把 Agent 反复现写正则的隐性成本显性化、工具化;
  2. CSS 选择器比正则可维护:页面改版后模型修一条选择器远比修一堆正则容易;
  3. 输出为 token 优化:默认截断、预算上限、非静默提示,工程细节到位;
  4. 作者有 Hono 这样的成功作品与社区号召力,生态起步快。

局限:

  1. 收益高度依赖场景:人造漂移场景 −67%,真实公网中位数仅 −23%,别把最佳数字当普遍预期;
  2. 不渲染 JS、不处理反爬:对现代动态站能力有限;
  3. 厂商自测、样本小:缺独立复现;
  4. 又一个需要 Agent”学会”的工具,学习成本虽被压到很低,但并非零。

七、它意味着什么

ax 是”给 Agent 造工具”这股浪潮里一个很有代表性的样本。它的聪明不在技术多高深,而在于把一个过去靠模型临场发挥的肮脏活,固化成一个输出为 token 预算优化的专用命令。作者在开发者工具上的品味确实在线——不做黑盒抓取,而是暴露选择器这种可修复的抽象,让模型出错后能自己救回来。对已经在搭 Agent 工作流的人,它值得进工具箱;但选型时请认准官网那张表里最不起眼的那一行——真实公网中位数 −23%,那才是你日常会遇到的省幅。

参考来源