AgentNLQ:一种通用的自然语言到SQL代理
摘要
本文介绍了AgentNLQ,一个用于自然语言到SQL转换的多代理系统,通过模式增强和自校正编排器在BIRD基准测试上达到了78.1%的语义准确率。
arXiv:2605.19010v1 公告类型:新论文
摘要:自然语言到SQL(NL2SQL)转换对于研究人员和企业来说是一个重要问题,因为关系数据库在广泛的实际问题中具有普遍重要性。尽管LLMs的能力迅速提升,但NL2SQL在准确性上尚未达到人类专家SQL编写者的水平,因此需要进一步改进NL2SQL算法。本研究提出了一种新的多代理NL2SQL方法,在大型数据库基准测试(BIRD)上达到了78.1%的语义准确率。我们的方法利用了用户提供模式的语义增强表示,添加了用户提供的业务规则,并生成了准确的SQL查询。本研究的主要贡献包括:(a) 我们设计了一种优化的新编排器,用于多代理解决方案,利用LLMs进行规划、编排、反思和自我校正,以生成准确的SQL查询;(b) 我们开发了一种高级模式增强方法,创建上下文感知的元数据以提高准确性;(c) 我们通过在BIRD-SQL基准测试上的评估,展示了该方法在不同领域和数据集上的准确性和泛化能力。
查看缓存全文
缓存时间: 2026/05/20 08:27
# 自然语言到SQL的通用代理
来源:https://arxiv.org/html/2605.19010
Olena Bogdanov, Yeunji Jung, Chandra Dhir, Pareekshitreddy Gaddam, Saurabh Jain, Lakshmi Tumati
Vijay Parthasarathy¹, Anup Shirgaonkar¹
摩根大通
¹通讯作者:\{vijay.parthasarathy, anup.shirgaonkar\}@jpmchase.com
###### 摘要
自然语言到SQL(NL2SQL)转换是研究人员和企业面临的重要问题,因为关系数据库在广泛的实际问题中具有普遍重要性。尽管大型语言模型的能力快速发展,但NL2SQL在准确性上仍未达到人类专家SQL编写者的水平,因此需要进一步改进NL2SQL算法。本研究提出了一种新的多智能体NL2SQL方法,在大型数据库基准(BIRD)上达到了78.1%的语义准确率。我们的方法利用了用户提供的模式的语义丰富表示,添加了用户提供的业务规则,并生成了准确的SQL查询。本研究的主要贡献包括:(a)设计了一种优化后的新编排器,嵌入多智能体解决方案中,利用LLM进行规划、编排、反思和自我纠正,以生成准确的SQL查询;(b)开发了一种先进的模式丰富方法,创建上下文感知的元数据以提高准确率;(c)通过在BIRD-SQL基准上的评估,展示了该方法在不同领域和数据集上的准确性和泛化能力。
††脚注:免责声明:本文为信息准备而撰写,并非摩根大通研究部门的产品。摩根大通不对本文所含信息的完整性、准确性或可靠性作任何陈述、担保或承诺,并免除所有责任。本文不构成投资研究或投资建议,也不是对任何证券、金融工具、金融产品或服务的购买或销售推荐、要约或招揽,也不应用于评估参与任何交易的价值,也不构成在任何司法管辖区或向任何人发出的招揽(如果在该司法管辖区或向该人发出此类招揽属于非法行为)。
## 1 引言
关系数据库在几乎每个企业中都存储着大量业务数据,因此高效访问这些信息成为一个关键挑战。从结构化数据库中提取洞察通常需要编写SQL查询,这是一种专门的技术技能,可能会限制业务用户从数据中快速获取答案和洞察。具备技术技能的数据从业者也需要花费大量时间来查找、清理和组织数据(包括编写和调试SQL)。因此,从自然语言问题自动生成SQL查询成为现代企业非常渴求的能力。大型语言模型(LLM)的最新发展推动了自动化这一任务的大量研究。AI驱动的工具已经很大程度上实现了SQL查询编写的自动化(Mohammadjafari等人,2024 (https://arxiv.org/html/2605.19010#bib.bib15))。使用这些工具,用户可以就数据库提出自然语言问题,LLM生成相应的SQL查询并代表用户执行。通常,单实例LLM调用或通用问答LLM在SQL生成上的性能有限,因为它们不了解数据库模式、业务规则,而且通常无法可靠地进行多步推理或通过执行反馈进行验证和自我纠正。企业级的SQL理解需要对业务部门内的数据库有更深入的了解:表结构、列名、关系以及业务定义。分析师经常需要搜索实体关系图,学习领域特定的结构(例如,在特定模式中"customer"如何标记,或者数据库中不同表之间"transaction type"的区别),这需要大量的SQL编写时间。虽然"黄金标准"的SQL编写者可以取得非常高的准确率(例如在BIRD-Bench上达到90%或更高),但在现实场景中,模式复杂性、需求变化、复杂连接和模糊请求等因素可能导致准确率低于优化的基准环境。因此,即使使用LLM生成查询,生成准确的SQL查询也需要大量的人工编写或监督。改进的LLM和智能体推理使得开发更具泛化能力的工具成为可能,减少了对传统上约束工程团队的临时、任务特定解决方案的需求。多智能体解决方案已知能增强基于LLM的解决方案的推理能力,并提供了一种有效手段来提高生成复杂SQL查询的能力(Google Cloud, 2025 (https://arxiv.org/html/2605.19010#bib.bib11))。我们提出了AgentNLQ,一种结合了多个元素的智能体解决方案:(1)多智能体编排,包含自我反思和链式思维(CoT)推理以实现迭代优化;(2)自动元数据生成,丰富数据库模式以增强对数据库的理解;(3)多模型智能体配置,利用不同LLM的互补优势。AgentNLQ将这些能力统一到一个端到端解决方案中,用于从自然语言问题生成SQL查询。
## 2 相关工作
NL2SQL任务涉及许多技术和科学挑战,包括用户问题中的词汇和句法歧义、识别实体和时间概念(例如"去年")、输出格式(自由形式 vs. 结构化输出 vs. 数据框)、单个正确答案对应多个有效SQL查询,以及需要理解跨多个表的众多列之间的复杂关系(Liu等人,2024 (https://arxiv.org/html/2605.19010#bib.bib14))。来自公共基准排行榜(如BIRD(BIRD-SQL, 2025 (https://arxiv.org/html/2605.19010#bib.bib3))和Spider(Spider Team, 2025 (https://arxiv.org/html/2605.19010#bib.bib19)))的最新工作展示了用于解决这些挑战的LLM方法趋势,以及优化这些方法的各种方式。其中包括利用LLM的推理能力来规划和编排SQL生成(Zhai等人,2025 (https://arxiv.org/html/2605.19010#bib.bib25))、模式链接以高效搜索与用户查询最相关的表和列(Deng等人,2025 (https://arxiv.org/html/2605.19010#bib.bib6))、集成(多数投票)(XiYan-SQL Team, 2025 (https://arxiv.org/html/2605.19010#bib.bib22))、强化学习和微调(Cohere, 2025 (https://arxiv.org/html/2605.19010#bib.bib4))、动态少量样本选择以及构建合成少量样本来指导LLM的SQL生成(Pourreza等人,2024 (https://arxiv.org/html/2605.19010#bib.bib16))。在商业产品中,Snowflake的研究将LLM的推理(通过链式思维)与偏好优化相结合(Zhai等人,2025 (https://arxiv.org/html/2605.19010#bib.bib25))。这展示了利用推理时间缩放来提高准确率的例子。推理时间缩放也用于集成(Contextual.ai, 2025 (https://arxiv.org/html/2605.19010#bib.bib5); XiYan-SQL Team, 2025 (https://arxiv.org/html/2605.19010#bib.bib22)),以及通过生成大量候选SQL查询,然后通过多数投票或奖励模型进行过滤(Wang等人,2023 (https://arxiv.org/html/2605.19010#bib.bib20); Contextual.ai, 2025 (https://arxiv.org/html/2605.19010#bib.bib5))。这些研究的关键发现是将奖励模型建立在SQL执行结果上,而不是基于生成的文本反馈,后者是LLM偏好学习中更常见的范式。我们发现多智能体方法已成为提高准确率的一种有前景的方法。例如,MAC-SQL(Wang等人,2023 (https://arxiv.org/html/2605.19010#bib.bib20))引入了一种架构,包含三个独立的智能体,分别负责模式链接、查询分解和生成。其他研究也关注预处理智能体和自定义链式思维路径(Pourreza等人,2024 (https://arxiv.org/html/2605.19010#bib.bib16))。我们从专注于通用多智能体系统处理开放式任务的研究中汲取灵感,并采用了Magentic One编排器智能体(Microsoft Research, 2024 (https://arxiv.org/html/2605.19010#bib.bib2)),用于我们当前版本的NL2SQL解决方案,因为它具有详细的规划能力。我们还设计了一个新的自定义编排器,针对高效规划和编排进行了优化。该编排器将在后面的图2 (https://arxiv.org/html/2605.19010#S3.F2)中描述。除上述技术外,以往文献表明,在SQL生成LLM的上下文中包含少量样本示例(上下文学习)可以提高准确率,尤其是当需要精确的格式和语法来生成正确的SQL查询时。几个排行榜解决方案在其优化组合中使用少量样本示例(Pourreza等人,2024 (https://arxiv.org/html/2605.19010#bib.bib16); XiYan-SQL Team, 2025 (https://arxiv.org/html/2605.19010#bib.bib22); Contextual.ai, 2025 (https://arxiv.org/html/2605.19010#bib.bib5); Floratou等人,2024 (https://arxiv.org/html/2605.19010#bib.bib9))。Contextual AI的方法(Contextual.ai, 2025 (https://arxiv.org/html/2605.19010#bib.bib5))仅使用训练集中的一个示例,他们发现这可以提高准确率。因此,我们在可用时利用用户提供的少量样本示例作为输入。模式链接对于生成高准确率的SQL也至关重要。这个过程涉及复杂的推理来解释列名、表名和表数据,从而识别外键、表之间的关系以及列及其值的语义重要性,所有这些都与特定用例相关。最近的研究,如前所述,利用模式链接的各种改编。这包括探查数据库以探索这些复杂关系,理解和解释它们,并用丰富的模式描述封装它们,该描述捕捉了多列之间的这些链接。以往研究采用基于LLM的方法来做到这一点,并使用了探索性数据分析类型的探查(Dragusin等人,2025 (https://arxiv.org/html/2605.19010#bib.bib7))。基于这些发现,我们的方法融合了其中几种技术。我们允许用户提供与其用例相关的少量样本示例,并在上下文中连同模式提供业务规则。我们构建了一个新的模式丰富过程,利用LLM编写丰富的表和列描述,识别实体,并探查数据库以映射跨多个表的模式链接。
## 3 方法论
### 3.1 问题形式化
给定一个自然语言问题以及关于数据库的相关业务特定知识,NL2SQL的目标是生成准确且可执行的SQL查询。该问题可以形式化为以下优化问题:
SQL = argmax_{k ≤ k_max} E( LLM_θ( Q_NL, S, λ_biz ), k_{E_max} ) (1)
其中:
- E = 评估目标函数,评估生成SQL查询的正确性
- Q_NL = 用户的自然语言问题
- S = SQL数据库的模式
- λ_biz = 业务特定规则,包含用例的领域知识
- LLM = SQL生成器LLM,以θ作为其超参数
- k_{E_max} = 智能体为得出最佳查询而进行的自我反思尝试次数(提前停止)
- k_max = 智能体被允许生成最佳SQL查询的最大尝试次数
### 3.2 智能体方法
我们开发了一个多智能体编排工作流,包含规划器/编排器、SQL生成器和查询执行智能体,具有自我学习和委派能力。这与一次性丰富的模式表示生成相结合。图1 (https://arxiv.org/html/2605.19010#S3.F1)显示了用户提供的输入以及智能体的内部工作方法。智能体分两个阶段工作:元数据生成和推理。首先,离线管道从用户数据库模式生成元数据和向量索引,供推理时使用。元数据包含多个组成部分:(1)数据的统计描述,(2)主键和外键映射,(3)LLM生成的表和列描述。元数据生成步骤检索主键和外键,如果不可用则推导出来。然后,LLM将用户提供的模式与提取的知识结合,生成每个表、列及其在数据库内关系的描述。这些元数据在推理时被嵌入并搜索,以为我们的智能体提供额外的上下文(图1 (https://arxiv.org/html/2605.19010#S3.F1))。第二阶段是推理,我们从用户问题中提取相关实体开始。这些实体——可能与表、列或值相关的关键词——被嵌入并使用向量搜索检索。然后检索相关表和列的元数据,并注入到我们的编排器和SQL生成器智能体的系统提示中。我们还引入了一种优化,在运行时检查模式总令牌长度。如果令牌长度低于模型的上下文限制,我们直接包含所有表和列,绕过向量搜索以减少延迟。我们还纳入用户提供的任何额外信息,以将智能体锚定在用户的业务领域,包括相关业务规则和少量样本示例。为了帮助智能体的思维链,我们提供了一个"草稿本"(称为"事实表"),将SQL生成分解为多个步骤,包括查询分解、识别相关过滤器和度量、连接路径识别、全局或局部聚合、WHERE子句以及列存在性检查。我们开发了一个NL2SQL编排器智能体,采用"推理-生成-评估-重新规划"的思维链,具有两个不同的账本:用于标准执行的快速思考系统1循环,以及用于错误恢复的慢速思考系统2循环。编排器尝试通过生成连续迭代的SQL查询来解决问题,每次调用SQL执行工具以获得直接的执行反馈。反馈包括成功执行时的SQL结果,或执行失败时的错误消息和失败原因。编排器还具有根据模式信息自我反思生成的SQL对于用户问题的准确性的能力。编排器可以决定任务成功完成,或者在三次生成不成功后,将控制权委派给SQL作者智能体,该智能体重新思考整个计划,必要时调整方法,并运行详细的"计划-编写-执行-反思"循环。更多细节在下面的编排器部分提供(图2 (https://arxiv.org/html/2605.19010#S3.F2))。
### 3.3 关键组件
#### 3.3.1 模型
我们使用OpenAI的text-embedding-3-large-1作为我们的嵌入模型。对于相似文章
FD-NL2SQL:反馈驱动的临床NL2SQL系统,使用中不断改进
FD-NL2SQL是一个反馈驱动的自然语言转SQL系统,专门用于临床肿瘤学数据库,通过临床医生编辑和基于逻辑的SQL增强实现持续学习。该系统将自然语言问题分解为谓词,检索专家验证的范例,并综合可执行的SQL,具备持续学习能力。
从提示到协议:实验室自动化的AI代理
本文介绍了一种AI代理,它将大型语言模型与实验室编排软件集成,使科学家能够使用自然语言创建、监控和管理自动化的实验室协议。在三个模拟实验室上的评估显示,该代理实现了97%的首次尝试协议生成成功率,并且所需的界面操作大幅减少。
@neural_avb: https://x.com/neural_avb/status/2063907440509571354
探索递归语言模型(RLM)中一个常见的失败模式,其中自由文本子代理响应会导致问题,并提出一种使用结构化输出提高可靠性的解决方案,通过NarrativeQA中的长上下文问答示例进行说明。
利用生成式AI拓宽交通安全数据获取渠道:一种基于模式框架的空间自然语言查询方法
本文提出了一种基于模式框架的自然语言接口,用于交通安全分析。该接口利用大型语言模型解释用户查询,同时保持对权威数据库的确定性执行。该框架在马萨诸塞州交通安全数据库上进行了评估,成功执行了所有查询,并在29%的案例中纠正了错误,展示了拓宽安全数据获取渠道的实用方法。
SANE:面向生物数据的模式感知自然语言评估框架
SANE 是一种新颖的模式感知评估范式,专为生物/药理学数据集的自然语言(文本转SQL)查询而设计,能够基于真实实验模式自动生成基准测试。研究表明,采用结构化提示的少样本 LLM 无需微调即可实现准确的 SQL 生成,大多数失败案例源于输入歧义,而非查询生成错误。