Zeta-Lite: A Concurrent, Branchable In-Browser SQL Database for Agentic Memory
Zeta-lite 是一个紧凑、并发且可分支的基于 WebAssembly 的浏览器内 SQL 数据库引擎,它通过支持重叠的快照隔离事务和写时复制(copy-on-write)数据库分支,为智能体记忆(agentic memory)和本地优先(local-first)应用提供了一个经过优化的、功能完备的 PostgreSQL 接口。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
几十年来,互联网一直遵循着一个简单的规则:你的数据存储在别处的某个服务器上,而你的计算机仅仅是一个观察它的窗口。如果你想搜索、排序或分析那些数据,你必须向网络发送请求,并等待答案返回。随着应用程序开始对隐私和离线工作能力提出更高要求,这种模式发生了变化。将数据保留在用户设备本身而非遥远的云端,成为了一个优先事项。这种转变给软件工程师带来了新的挑战:如何构建一个完全在 Web 浏览器内部运行的强大且结构化的数据系统?浏览器旨在保持安全和隔离,这使得在其中运行通常需要深度访问计算机操作系统的复杂软件变得非常困难。
传统的解决方案要么是缩小现有数据库系统的规模,要么是使用缺乏高级功能的极简工具。一种流行的做法是将庞大的数据库引擎进行精简,并将其转化为浏览器可以理解的格式,但这往往迫使软件运行缓慢,或者只能以单线程方式工作,无法同时处理多个任务。另一种方法是使用微型、轻量级的引擎,它们速度很快,但无法执行复杂的搜索或管理不同信息碎片之间错综复杂的关系。问题在于,是否可能拥有一个既足够小能装进浏览器,又足够快能让人感到即时,且足够聪明能同时处理复杂、重叠任务的数据库。
一位研究人员现在开发了一个名为 Zeta-lite 的系统,它用肯定的回答了这个问题:是的。他们创建了一个完全运行在 Web 浏览器中的数据库引擎,压缩后仅为 2.87 MB。尽管体积如此之小,它仍能执行复杂的搜索、管理多用户同时协作,甚至能创建自身的副本以测试新想法而不危及原始数据。该系统是专为一种新型软件设计的:运行在浏览器中的人工智能代理(AI agents),这些代理需要一个存储其思想、记忆和发现的地方。研究人员发现,通过改变数据库记录历史的方式,他们能够实现一种此前被认为对于如此小型程序而言是不可能的性能和灵活性水平。
其核心发现在于数据库处理时间的方式。大多数传统数据库的工作方式就像一条单车道公路,车辆必须等待前方的车辆完成后才能继续前进。如果两个人试图同时更新同一条信息,其中一人就必须等待。Zeta-lite 的工作方式则不同。它不是单车道,而是将每一条数据视为拥有版本历史。当一项任务开始时,它会获取该时刻数据的快照。随后,它可以在处理其他任务的同时,在自己的“真相版本”上进行操作。如果两个任务试图更改同一内容,系统会检测到冲突并停止其中一个,但它不会强迫它们排队等待。这使得多个任务可以在单个执行线程上同时运行,这一壮举通常需要复杂的、重型的硬件或大多数网站无法使用的特殊浏览器设置。
这种处理重叠任务的能力与一个被称为“分支”(branching)的独特功能相匹配。在软件开发领域,创建一个分支意味着制作一个项目的副本,以便在不破坏原件的情况下尝试新想法。Zeta-lit 将这一概念直接引入了数据本身。应用程序可以将整个数据库分叉(fork)为一个新分支,进行修改、测试,然后决定是将这些更改合并回主数据库,还是将其完全丢弃。这个过程几乎是瞬间完成的,且不占用额外的存储空间,因为系统只保存分支之间的差异。对于人工智能代理来说,这是一个强大的工具。它允许代理探索一个假设、尝试一个新计划或模拟一段对话,并在实验失败时只需简单地抹除实验,从而使原始记忆保持完美无缺。
研究人员对该系统进行了严格测试,以确保它不仅仅是一个理论概念,而是一个运作中的现实。他们在 Chrome 和 Firefox 这两个最流行的 Web 浏览器中运行了该数据库,并将其速度与运行在标准计算机上的原生版本进行了对比。他们发现,浏览器版本几乎与原生版本一样快,每秒可以处理数十万次数据查找。在多个任务试图同时更新相同数据的测试中,系统成功管理了冲突而没有崩溃或减速。他们还验证了即使在处理数百万次操作时,该系统也能长时间运行而不丢失数据或发生内存泄漏。该数据库通过将完整的自身快照保存到浏览器的私有存储中来持久化其状态,即使对于大量数据,这一过程也耗时不到一秒。
这项成就之所以特别显著,是因为它并不依赖于通常驱动此类系统的复杂、沉重的底层架构。大多数提供类似功能的浏览器端数据库都需要特殊的安全标头,强制网站与其所在的互联网环境隔离,这限制了它们的使用范围。Zeta-lite 完全避免了这一点。它运行在浏览器的主要线程(main thread)上,即网站其他部分所在的位置,无需额外的安全措施或后台工作进程。这意味着它可以直接放入任何 Web 应用程序中,而无需改变网站的构建或托管方式。该系统与一个规模大得多的服务器数据库使用相同的代码库构建,证明了实现高级数据管理的复杂逻辑可以被压缩成一个微小的包,且不会丧失其功能。
这项工作的意义不仅限于速度或大小。它为新一代应用程序开启了大门,这些应用可以在本地对其数据进行记忆和推理。想象一下,一个生活在您浏览器中的 AI 助手,它能够存储您的个人历史,从您的交互中学习,并组织您的信息,而无需将这些数据发送到远程服务器。凭借其分支记忆的能力,这个助手可以尝试不同的方式来组织您的笔记或规划您的日程,并仅保留有效的结果。研究人员已经开始构建一个名为 Zengram-lite 的配套系统,利用这些特性为这类代理创建记忆系统。
论文总结道,旧有的假设——即你必须在小型、简单的数据库和大型、强大的数据库之间做出选择——已不再成立。通过重新思考数据的版本化和任务管理方式,同时拥有两者是可能的。Zeta-lite 引擎证明了一个功能齐全、支持并发且支持分支的数据库可以装进 Web 浏览器,并达到足以媲美原生软件的水平。这不是一种模拟,也不是对未来技术的承诺;它是一个现有的、可用的系统,随时准备被开发者使用,用于构建那些能够在用户设备上实现私密、快速且具备复杂推理能力的应用程序。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。