……民有、民治、民享的政府……——亚伯拉罕·林肯,《葛底斯堡演说》(1863年)
人工智能的成本正在急剧下降。2023年初,GPT-4级别的能力大约每百万token需要30美元;如今同样的能力不到1美元,有些供应商甚至将成本压至0.10美元以下。从各项基准测试来看,推理价格每年下降9倍到900倍不等,中位数降幅接近50倍。即便是前沿模型,每一代的价格也在大幅降低,开源模型紧随其后。关键在于,即便“诺贝尔奖得主级别的天才智能”尚未到来,但足以胜任绝大多数知识工作的智能已经存在,并且价格逐月走低。按照这个速度,我们很快将进入近乎免费的智能时代——这种智能对于日常知识工作来说已经绰绰有余。
声明:本文观点由加州大学伯克利分校EECS副教授、EPIC数据实验室联合主任Aditya G. Parameswaran及其合作者主导提出。本文兼具领域综述与观点阐述性质,下文讨论的若干研究方向(包括智能体推测、结构化记忆以及从零开始合成定制数据系统)均基于作者自身正在进行的工作。
那么,这个近乎免费的智能新时代对数据系统意味着什么?我们认为,推理成本趋近于零将带来三个新的挑战——同时也是机遇:
面向智能体的数据系统。智能体很快将成为数据系统的主要工作负载——每个终端用户请求都会触发大量智能体集群被启动。考虑到智能体与人类(或代表人类运行的应用程序)在特性上的差异,我们应如何为这类智能体用户重新设计数据系统?
由智能体构成的数据系统。随着智能体开始承担大部分知识工作,我们需要一种新的底层架构,让成千上万个智能体能够管理长期运行任务的状态、进行协调并达成共识,以及处理故障。能够可靠且高效地运行和管理智能体集群的数据系统应该是什么样子?
由智能体构建的数据系统。智能体正迅速变得能够一次性合成整个数据系统——这意味着我们可以为每个新工作负载重建定制系统。验证此类系统是否符合预期行为是一项挑战。要让智能体构建出我们真正可以信赖的数据系统,需要做些什么?
为智能体构建、由智能体构成、由智能体构建的数据系统
接下来,我们将更详细地讨论每一个方面,随后探讨数据系统与智能体相互交织的未来,尤其是当这三项挑战交汇之时。
为智能体构建的数据系统
智能体查询数据库的行为与人类或 BI 工具不同。它执行我们称之为智能体推测的操作:一个高容量、异构的工作流,涵盖模式自省、列式探索、部分查询构建再到完整查询构建。当多个智能体各自探索假设空间的不同部分时,每个用户请求可能相当于数千条独立的 SQL 查询。现在,用户可以提出“高层级”的数据任务,例如根因分析——比如“为什么今年伯克利的咖啡销量下降了”——或探索性群体分析——比如“哪些用户群体最有可能在下个季度流失”——每个任务都涉及连接、聚合和过滤组合的潜在组合空间。
为更有效支持智能体推测而重新设计的数据系统
来自这些智能体的请求存在多种优化机会。例如,在一个让多个智能体各自尝试完成任务的 text-to-SQL 基准测试中,仅有 10-20% 的子计划是互不相同的。因此,80-90% 的子查询执行了重复工作。同样的实验表明,随着智能体尝试次数的增加,任务成功率显著提升——因此这种冗余实际上是有益的。但从数据系统的角度来看,这却是浪费的工作。
一个以智能体为先的数据系统可以利用这些特性,帮助智能体更快地取得进展。它可以在重叠的子计划之间复用结果,借鉴数十年前关于多查询优化和共享扫描的研究思路。或者,数据系统可以尝试追求“满意解”,返回对智能体推进任务而言足够好的近似答案,利用近似查询处理(AQP)领域的成果——或者流式传输最终或中间操作符的结果,帮助智能体判断查看剩余部分是否必要或有帮助。
另一个机会在于彻底重新思考查询接口:智能体不再是一次只提交一条 SQL 查询,而是可以提交一批查询,每条查询都有自己的近似要求。由于枚举指数级搜索空间(如上述根因分析或队列分析示例)并非智能体推理能力的最佳用途,或许数据系统应该支持更高级的原语,而不是要求智能体逐一明确列出每条 SQL 查询。一个思路是借鉴 DBT 风格的 Jinja 宏,为智能体提供基于循环的原语,以便它们与数据系统交互。
一支精力充沛的智能体大军,随时准备不知疲倦地完成你的数据任务。
最后一个机会是,不再将数据系统视为被动的查询执行者;数据系统可以变得主动,因为它们对数据和系统特性拥有更深入的了解,而这些可能是智能体事先不具备的——它们可以引导智能体走向不同方向,提供相关查询的结果,并给出性能层面的反馈(例如,系统可以先向智能体提供延迟估算,而不是直接执行一个昂贵的查询)。我们现在能够做到这一点,而过去不行,原因在于智能体可以接受任何形式的文本反馈,并不期望严格的 SQL 查询结果。事实上,数据系统还可以提前为智能体准备好物化视图和虚拟视图,作为上下文的一部分提供给智能体,因为这可能比让智能体自行编写或使用这些视图更经济或更高效。
智能体的数据系统
此前,我们重点关注了智能体如何与数据系统交互。现在,我们考虑智能体持续工作所需的其他一切:它们驻留在何处、如何记忆、如何相互协调,以及如何处理彼此的故障。这种智能体基座与驱动原始智能的推理栈是分离的。然而,推理栈本身正通过 API(例如来自 OpenAI 或 Anthropic)被抽象化,或者对于开放权重的模型而言,则通过隐藏底层细节的服务框架来实现抽象化。到目前为止,智能体基座一直通过诸如 Claude Code 和 Codex 之类的工具,结合各种存储和检索记忆的机制来进行管理。
首先,在记忆方面,当前的主流观点是文件就足够了;智能体写入非结构化的 Markdown(MD)文件,然后可以通过 grep 或基于嵌入向量的检索来搜索这些文件。事实上,许多人认为,持续学习的解决方案在于让智能体大量摄入信息(例如,整个代码库、Slack 消息、公司维基等),然后将它们的学习成果写入 MD 文件,再根据需要选择性检索这些文件。确实,文件系统、bash 脚本和 MD 文件现在乃至将来对智能体都仍然重要。然而,在规模化场景下,当智能体承担绝大多数知识工作时,这种方法将不再有效。
鉴于上下文窗口有限,检索所有可能相关的 MD 文件片段并将其塞入上下文,这种做法终将失效。即使上下文窗口持续增长,不将所有信息都放入上下文也有延迟方面的好处——而且在许多情况下,例如当知识工作涉及与大型数据库或代码库交互时,将所有相关数据序列化到上下文中是不可行的。
数据系统作为多智能体集群的基座
可以使用知识图谱表示,但知识图谱与基于非结构化 MD 的记忆存在同样的局限性,即缺乏结构化搜索能力。真正需要的是能够跨多个相关属性(或维度)仅检索与任务相关的记忆。例如,调试不稳定测试的智能体应能只拉取标记了相关模块、语言、框架和故障模式的记忆,而非基于关键词或嵌入相似度进行检索。另一个问题是实际检索什么内容;包含错误的原始智能体轨迹用处不大,因为它们会导致智能体重复同样的错误——相反,我们希望检索到的记忆具有纠正性。
我们近期探索了一种相关的结构化记忆概念,将记忆按多种属性进行组织,每个属性可设为 * 表示通用适用,或设为一个待匹配的值列表。对于数据智能体而言,维度可包括列和表、操作类型,以及最终的自由文本纠正指令。因此,我们可以加入仅适用于特定操作类型的记忆(例如"执行日期时间操作时,使用财年惯例而非日历年惯例"),或仅适用于特定表的记忆(例如"按产品名称查询时,优先使用 product_cleaned 列而非 product 列")。一个待解决的问题是定义特定于应用的结构化记忆——也有人称之为记忆的世界模型。我们认为这类似于为每个应用定义模式——或许智能体本身也能随时间推移帮助我们定义并优化它。
一种可能的存储与检索结构化知识的方式 [来源链接]
结构化记忆对于进化框架有效管理搜索空间同样有用。事实上,存储、结构化并挖掘大量单智能体和多智能体轨迹,有助于未来智能体变得高效得多——可能通过基于结构化记忆的机制实现有效的递归自我改进。
另一个挑战是,当有大量智能体同时执行变换操作时,如何支持对共享内存的并发编辑,以及更广义上的并发编辑。尽管已有一些关于支持多版本和写时复制语义的有益尝试,但当数千个智能体同时试图编辑共享状态时,这些技术是否足够有效尚不明确。例如,当智能体针对用户请求尝试各种潜在事务时,其中绝大多数事务的效果需要被回滚——只有那个“正确”事务的结果得以保留。支持恰好一次语义的相关工作,以及基于 CRDT 和操作变换的底层技术,在此处具有相关性。对于记忆等模糊机制的更新,为了降低延迟,我们或许可以在完美正确性上牺牲一致性。虽然智能体能够通过语义推理来进行补偿或回滚其操作,从而最终完成大多数任务,但主要挑战在于它们在此过程中相互干扰的程度。需要避免的一种重要故障模式是“活锁”,即无休止的补偿操作阻碍了任何有意义的进展。
除了共享状态之外,在尝试支持大规模智能体集群时,还会出现其他问题,包括智能体失败时该如何处理、智能体之间应如何相互通信(直接通信还是通过中间共享状态),以及应如何处理掉队智能体。在支持持久化多智能体执行方面已有一些进展,例如 Temporal,但此类解决方案能否在数千个智能体的规模下应用仍有待观察。在通信方面,我们需要建立机制让智能体能够相互协商。想象一下,四个开发智能体试图就一个共享模式达成共识,它们的目标各不相同但又有所重叠。在人类环境中,这需要反复讨论和妥协;而对于智能体集群,我们必须定义相应的机制,使它们能够收敛到一个能反映各自主体根本目标的设计方案上。或者,如果所有智能体都需要访问某种有限资源,那么通信同样是必要的。目前尚不清楚,通过集中式协调还是去中心化方法来实现这一点效果最佳。
智能体驱动的数据系统
最后,如果智能能力实际上是免费的,那么我们就可以利用这种智能从零开始合成新的数据系统。事实上,在许多场景中,通用型数据系统可能有些大材小用,因为它们必须支持所有模式、查询和硬件目标。针对特定工作负载,包括 Bespoke OLAP 和 GenDB 在内的近期研究表明,可以使用智能体流水线在几分钟到几小时内,以几美元的成本,合成一个完整的、针对特定工作负载的分析引擎。这些引擎是一次性的:当工作负载发生变化时,只需重新生成即可。类似地,我们的工作表明,可以从零开始合成针对特定工作负载的定制键值存储。事实上,像 Kiro 这样的现代 IDE,已将系统开发的规范提升为一等公民。
智能体可以从零开始合成定制数据系统
然而,主要问题在于,规范通常并不完美,无法覆盖所有边界情况。当前的智能体会利用缺失的规范,通过奖励黑客手段来获得高绩效指标。在我们自定义的键值存储工作中,我们发现缓解这一问题的一种方法是引入辅助验证智能体,尝试生成能够捕捉边界情况被利用的测试用例,从而实质上扩展规范。另一种方法是同时生成系统及其正确性证明,我们在这方面已取得一些初步成功,但还需要更多工作来巩固这一方法。此外,如何以最佳方式获取人类为系统编写的规范仍有待观察——能否以迭代、人机协同的方式完成,而非一次性、不完整的方式?事实上,即使是手动编写的软件,人类编写的规范也是不完整的,因此可以预期,未来更对齐的智能体在设计决策时将展现出更优的判断力。
一种可能的数据系统合成流程 [来源链接]
这里涉及的其他问题包括:测试从一个成熟系统(例如 Postgres)出发,移除组件/功能是否能带来更高的性能或更多的用户信任。另外,是否存在机会使设计具有可组合性,即包含各种经过验证的组件,并根据工作负载进行混合搭配?例如,也许工作负载的变化还不足以需要更新存储层,但查询优化器可能需要调整。一个可能更可行的方案是,将智能体与证明系统结合,针对与形式化证明相关的代码关键部分进行优化,而非对整个系统进行此类操作。
最后一个机会是摆脱传统数据系统栈中那些接口定义明确(例如解析器、查询优化器、存储管理器……)的组件——这些组件以往很大程度上是由单个人类团队负责管理的。取而代之的是,智能体可以找到将这些组件“融合”在一起的新方法,从而可能发现新的优化机会。智能体还可以填补功能上的空白,使现有系统功能更加完备,或达到与其他竞争系统同等的功能水平——或者类似地,根据功能请求或问题(可能是由其他智能体提交的!)持续改进开源系统。如何以优先考虑正确性、长期可维护性和人类可解释性的方式来实现这一点,将是一个挑战。
展望更远的未来
在近乎免费的智能时代,数据系统比以往任何时候都更加重要。随着智能体承担起大部分知识工作,数据系统的工作负载将发生变化,它们运行所需的底层基础设施也必须构建起来,并且它们将越来越多地参与到自身的设计中。这些转变中的每一个都开辟了一个令人兴奋的新研究议程。
数据系统与智能体的协同进化
放眼更远的未来,智能体与数据系统之间的界限很可能会开始模糊。例如,智能体可能会设计它们自身运行所依赖的数据系统,既定义接口,也定义底层的系统组件。接口和内部结构都可以通过智能体以递归自我改进的形式随时间演变。此外,还有一个机会是将数据系统重新构想为所有相关状态的全局事实来源:包括原始数据、记忆和协调状态,从而进一步消除智能体查询的数据与智能体活动产生的数据之间的区别。最后,数据系统本身也可能融入智能体组件,从根本上从被动的计算引擎演变为智能、主动、自我优化的架构。未来会怎样,很难预测。我们即将迎来一场狂野的旅程!
致谢
本文所述的观点及正在进行的工作,是 EPIC 数据实验室、数据系统与基础研究组,以及更广泛的伯克利 AI 系统社区众多优秀合作者共同研究与多次讨论的成果。感谢各位!
本文的 BibTex 引用格式:
@misc{intelligence-is-free-blog,
title={Intelligence is Free, Now What? Data Systems for, of, and by Agents},
author={Aditya G. Parameswaran and Shubham Agarwal and Kerem Akillioglu and Shreya Shankar
and Sepanta Zeighami and Rishabh Iyer and Matei Zaharia and Alvin Cheung
and Natacha Crooks and Joseph Gonzalez and Joseph Hellerstein and Ion Stoica},
howpublished={\url{https://bair.berkeley.edu/blog/2026/07/07/intelligence-is-free-now-what/}},
year={2026}
}