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

一、背景: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%“,对照原文必须打几个折扣:
- 最佳场景才 −67%,真实公网中位数只有 −23%:最亮眼的数字来自”正则注定会崩”的人造漂移场景,那正是 ax 最占优的情况;放到真实随机网页,收益明显收窄到两成多;
- “中位数 of 3 runs”:样本极小,方差大,作者自己也注明”Method, prompts, variance notes and the failed runs — in the repo”,即有失败运行未计入主榜;
- 后三行假设 Agent 已会用 ax:最后一行专门测”第一次用”,把读手册成本算进去后仍省 58%——这反而是对新用户更诚实的数字;
- 评测方就是作者本人:虽然作者把方法、提示词、失败运行都放进了仓库可供复核,但仍是厂商自测,缺第三方独立复现。
五、适用 / 不适用场景
适合:
- 高频让 Agent 抓网页、做结构化抽取的自动化流水线;
- 受够了每次现写正则、页面一改全崩的团队;
- 想把”抓网页”标准化成一个可被 Agent 学会并复用的工具。
不适合:
- 只是偶尔手动 curl 一下接口的人(curl 足够);
- 需要渲染 JS、处理反爬、登录态的重度抓取(ax 定位是本地 HTTP/HTML I/O,不是爬虫框架);
- 期待它在任意网页都省六成成本——真实中位数约两成。
六、客观分析:优势与局限
优势:
- 切中真实痛点:把 Agent 反复现写正则的隐性成本显性化、工具化;
- CSS 选择器比正则可维护:页面改版后模型修一条选择器远比修一堆正则容易;
- 输出为 token 优化:默认截断、预算上限、非静默提示,工程细节到位;
- 作者有 Hono 这样的成功作品与社区号召力,生态起步快。
局限:
- 收益高度依赖场景:人造漂移场景 −67%,真实公网中位数仅 −23%,别把最佳数字当普遍预期;
- 不渲染 JS、不处理反爬:对现代动态站能力有限;
- 厂商自测、样本小:缺独立复现;
- 又一个需要 Agent”学会”的工具,学习成本虽被压到很低,但并非零。
七、它意味着什么
ax 是”给 Agent 造工具”这股浪潮里一个很有代表性的样本。它的聪明不在技术多高深,而在于把一个过去靠模型临场发挥的肮脏活,固化成一个输出为 token 预算优化的专用命令。作者在开发者工具上的品味确实在线——不做黑盒抓取,而是暴露选择器这种可修复的抽象,让模型出错后能自己救回来。对已经在搭 Agent 工作流的人,它值得进工具箱;但选型时请认准官网那张表里最不起眼的那一行——真实公网中位数 −23%,那才是你日常会遇到的省幅。