面向智能体的查询引擎
速览
针对生产环境中快速增长的非结构化文本数据,提出Hyperparam这一开源JavaScript库集合。它允许在JS运行时中直接读取Parquet和Iceberg数据,并通过异步SQL执行与LLM结合,高效分析智能体轨迹等数据。该方案显著提升了查询速度并降低了成本,为AI原生客户端应用提供了新的数据处理范式。
AI 深度解读
A Query Engine for the Agents:面向 AI 代理的查询引擎深度解读
背景
当前生产环境中增长最快的数据类型是非结构化文本,包括 Agent 追踪日志(agent traces)、聊天记录(chat logs)、推理链(reasoning chains)以及模型输出(model outputs)。随着 AI 应用的爆发,用户希望深入分析这些数据,以回答诸如“Agent 在哪里感到困惑”或“推理过程为何失效”等高价值问题。
然而,传统的 SQL 无法直接回答这些问题,因为文本数据在没有模型介入查询路径的情况下是不可查询的。与此同时,一种新的 AI 应用类别正在兴起,例如 Claude Code、Cursor、Claude Desktop 以及浏览器内 Agent。这些应用运行在客户端(client-side),在同一个进程中同时托管人类用户和 LLM Agent。
这些应用对数据处理提出了新的需求,但传统的“湖仓一体”(lakehouse)读取路径在 JavaScript 运行时环境中难以使用。Spark、Trino 以及托管的数据仓库等主流大数据工具,其架构设计并不适配轻量级的 JS 运行时环境。这导致开发者在构建新型 AI 数据应用时面临巨大的工程障碍:既需要处理非结构化文本,又受限于客户端的资源约束。
核心内容
为了解决上述痛点,文章提出了构建新型 AI 数据应用的三个核心引擎属性,并介绍了名为 Hyperparam 的开源解决方案。
1. 新型查询引擎的三大核心属性
要适应 AI 原生客户端应用的需求,查询引擎必须具备以下三个“一阶”(first-order)特性:
- JS 原生分发(JS-native distribution):引擎必须能够直接嵌入到应用程序已经运行的 JS 运行时环境中,无需复杂的跨进程通信或外部服务依赖。
- 极小的包体积(Small bundle):打包体积必须足够小,以便能够嵌入到“冷启动标签页”(cold tab)或每次 Agent 交互的沙箱环境中。这意味着引擎不能像传统大数据工具那样庞大。
- 分析算子与模型解释的交织(Interleaving analytic operators with model-based interpretation):引擎需要支持将传统的分析算子与基于模型的文本解释能力混合使用。这意味着查询不仅是数据的筛选,还包含对文本语义的理解。
2. Hyperparam 解决方案
文章介绍了 Hyperparam,这是一套由三个开源 JavaScript 库组成的工具集,总代码体积不到 70 KB。这三个库分别是:
- Hyparquet:负责读取 Parquet 格式文件。
- Squirreling:负责 SQL 执行引擎,特别是异步原生(async-native)的执行。
- Icebird:负责读取 Apache Iceberg 格式文件。
这些库能够直接从对象存储(object storage)中读取 Parquet 和 Apache Iceberg 数据。
3. 技术实现与性能优势
Hyperparam 的核心创新在于其 Squirreling 组件,它实现了“每单元格异步原生 SQL 执行”(per-cell, async-native SQL execution)。
- 按需计算:昂贵的计算操作(如调用 LLM 进行文本解释)仅在下游算子真正需要数据时才会触发。这种惰性求值机制极大地优化了资源消耗。
- LLM 形状的异步 UDF:Squirreling 支持运行类似 LLM 接口的异步用户定义函数(UDFs)。
4. 基准测试与对比
文章通过基准测试展示了 Hyperparam 相对于现有方案的性能优势:
- 速度对比:在过滤受限(filter-bounded)的查询中,Squirreling 的运行速度比 DuckDB-WASM 快 300 倍以上;在排序受限(sort-bounded)的查询中,速度快 192 倍。
- 成本与效率:在一个包含十个任务的“Agent 分析师套件”(agent analyst suite)测试中,Hyperparam 以比传统方案低三分之二的成本完成了任务。
关键要点
- 数据类型的转变:生产环境中增长最快的是非结构化文本(Agent 日志、推理链等),传统 SQL 无法直接处理,需要模型介入查询路径。
- 运行环境的限制:新型 AI 应用(如 Cursor、Claude Code)运行在客户端 JS 环境中,传统的 Spark、Trino 等大数据工具无法直接适配此环境。
- Hyperparam 的构成:由 Hyparquet、Squirreling、Icebird 三个库组成,总大小 <70KB,支持直接从对象存储读取 Parquet 和 Iceberg 数据。
- 异步原生执行:Squirreling 采用每单元格异步原生 SQL 执行,实现昂贵计算(如 LLM 调用)的按需触发,避免不必要的资源浪费。
- 性能碾压:相比 DuckDB-WASM,Squirreling 在过滤查询中快 300x,在排序查询中快 192x。
- 成本优势:在复杂的 Agent 分析任务中,Hyperparam 将成本降低了约 33%(即原成本的 1/3)。
意义与影响
这篇文章不仅介绍了一个新的工具库,更提出了一个重要的行业观点:数据工程(Data Engineering)这一学科需要更新,以适应现在投入生产的 AI 原生客户端应用以及与用户并肩工作的 Agent。
- 填补技术空白:Hyperparam 填补了“轻量级客户端运行时”与“复杂数据分析需求”之间的空白。它证明了在浏览器或边缘设备上,也可以进行高效、低成本的大规模数据分析和 AI 交互。
- 推动 AI 应用本地化:通过支持 JS 原生分发和小包体积,Hyperparam 使得更复杂的 AI 数据分析功能可以嵌入到本地应用或浏览器插件中,提升了数据隐私性和响应速度,减少了对云端重型服务的依赖。
- 重新定义查询引擎:传统的查询引擎主要优化结构化数据的计算,而 Hyperparam 展示了如何将“模型解释”作为一等公民嵌入到查询执行计划中。这为未来的 AI 原生数据库和数据分析工具提供了新的架构范式。
- 降低 Agent 开发门槛:对于开发者而言,无需再为客户端应用搭建复杂的大数据后端,即可直接对 Agent 产生的海量日志进行深度分析和调试,加速了 AI Agent 的迭代和优化过程。
