作者: Hao Wu(Software Engineer, PuppyGraph)
来源: PuppyGraph Blog
原文链接: https://www.puppygraph.com/blog/agentic-text-to-sql
发布日期: 2026-08-19(翻译日期)
大语言模型(Large Language Models, LLMs)的快速普及已经深刻变革了用户与数据交互的方式,但传统的 Text-to-SQL 方法仍然受限于其单次翻译(single-shot)的本质。这些系统将查询生成视为一种直接的翻译问题,在面对真实世界中由歧义、Schema 规模和业务逻辑带来的复杂挑战时往往表现不佳。随着企业数据生态系统在规模和复杂度上的持续增长,亟需一种更具适应性和可靠性的范式。
Agentic Text-to-SQL 正是这一演进方向。通过将查询生成重新定义为一个多步、目标导向的推理过程(multi-step, goal-oriented reasoning process),它使得系统能够规划、行动并迭代改进。Agentic 系统并非孤立地生成 SQL,而是与数据环境交互、利用反馈信息,并在多个专业化智能体(agent)之间进行协作。这一转变将数据访问从静态翻译推进到智能分析,为更自主、更可信的数据驱动决策奠定基础。
什么是 Agentic Text-to-SQL
Agentic Text-to-SQL 是一种先进的框架,它重新定义了语义解析(semantic parsing),将其从”单次翻译”任务转变为一个多步、自主的问题解决过程。传统范式将 Text-to-SQL 视为一种直接映射问题——从语言学角度将自然语言转化为结构化查询语言(Structured Query Language, SQL)——而 Agentic 方法则将这种交互重新构建为一系列目标导向的操作序列。与试图一次性生成代码的静态模型不同,Agentic 系统将数据库视为一个动态的、可交互的环境。
其核心理念在于从预测(prediction)到推理(reasoning)的根本性转变。通过利用大语言模型作为核心推理引擎,这些系统采用思维链(Chain-of-Thought, CoT)方法来分解复杂请求、处理”Schema 噪声”(schema noise),并通过环境反馈进行自我纠正。本质上,Agentic Text-to-SQL 将 AI 从被动的翻译器进化为主动的数据分析师。这一转型对于现代企业环境至关重要——模糊的命名约定和海量元数据要求迭代式验证与精细化规划,而这正是单次 LLM 调用无法提供的。
Agentic Text-to-SQL 系统架构

图:Agentic Text-to-SQL 系统架构示例(来源:PuppyGraph)
Agentic Text-to-SQL 系统的架构是一个多层框架,旨在复刻人类数据科学家的复杂认知工作流。与传统”Text-to-SQL”模型从自然语言直接翻译到代码不同,Agentic 架构具有模块化、容错性和专业化的特征。它由五个主要层次组成,协同工作以弥合人类意图与结构化数据库执行之间的语义鸿沟。
I. 推理与规划层(Reasoning & Planning Layer)
系统入口处是推理与规划层,通常被称为整个系统的”大脑”(Brain)。该层的核心是规划智能体(Planner Agent),又称编排器(Orchestrator),它利用高级推理技术,如思维链(CoT)和思维树(Tree-of-Thoughts, ToT)。
规划智能体不会立即生成语法,而是将用户请求分解为一条”推理路径”(Reasoning Path)。对于复杂的分析查询——例如计算同比增长率或同期群组留存率——规划智能体会识别出需要先隔离不同时间段、计算中间聚合结果,然后应用数学变换。通过创建这种高层执行计划,系统避免了非 Agentic 模型中常见的”逻辑跳跃”(logical leaps),从而减少了错误的发生。
II. 知识检索与锚定层(Knowledge Retrieval & Grounding Layer)
知识检索与锚定层充当系统的”上下文引擎”(Context Engine),解决”Schema 噪声”这一普遍问题。在企业环境中,数据库可能包含数千张表,将整个 Schema 提供给 LLM 会导致上下文窗口溢出和”中间丢失”(lost-in-the-middle)现象。
- Schema 智能体(Schema Agent): 该组件通过检索增强生成(Retrieval-Augmented Generation, RAG)执行动态 Schema 链接(Schema Linking)。它仅识别第 1 层生成的特定计划所必需的表、列和外键关系。
- 内容搜索工具(Content Search Tool): 该工具允许智能体”窥探”数据分布。通过执行向量搜索或唯一值查找,它确保用户提示中提到的实体(如”The Big Apple”)能够正确映射到存储的字面值(如’New York City’),从而将 SQL 锚定在现实数据上。
III. 多智能体生成层(Multi-Agent Generation Layer)
这是将抽象计划转化为可执行代码的”引擎室”(Engine Room),通过基于角色的协作实现。该架构采用多智能体系统(Multi-Agent System, MAS)来分担认知负荷:
- 程序员智能体(Programmer Agent): 专注于特定 SQL 方言(PostgreSQL、Snowflake、BigQuery)的细微差异。它负责查询的技术综合,确保 JOIN 条件和窗口函数的语法正确性。
- 评审智能体(Critic/Reviewer Agent): 充当自动化的同行评审者。它执行”静态分析”,检查常见的陷阱,如笛卡尔积(Cartesian products)、缺失的 GROUP BY 子句或可能导致生产环境性能瓶颈的低效子查询。
IV. 自我纠正与执行层(Self-Correction & Execution Layer)
自我纠正与执行层是 Agentic 设计的标志性特征,相当于”质量控制实验室”(Quality Control Lab)。它包含一个沙箱执行引擎(Sandbox Execution Engine),在此将查询在实时或镜像数据库环境中进行测试。该层不仅仅是一个直通通道,而是一个迭代循环。如果数据库返回运行时错误或超时,精炼智能体(Refiner Agent)会捕获具体的回溯信息(traceback),利用这一反馈进行”反思”,识别错误是源于对 Schema 的结构性误解还是简单的语法拼写错误,然后触发重新生成周期。
V. 验证与格式化层(Verification & Formatting Layer)
最后一层是验证与格式化层,确保输出既准确又可消费。验证智能体(Validator Agent)执行后置检查:将返回的数据集与原始用户意图进行对比,确保语义对齐。验证通过后,响应生成器(Response Generator)将原始行列数据转化为自然语言洞察、交互式表格或数据可视化,完成从”数据”回到”决策”的桥梁。
Agentic Text-to-SQL 的工作流程
虽然架构提供了结构蓝图,但 Agentic 工作流(Agentic Workflow)描述的是查询的动态迭代生命周期。借鉴自主数据库智能体的最新进展——如 MAC-SQL(Multi-Agent Collaboration)框架——该工作流用”推理-行动-纠正”(Reasoning-Acting-Correcting)循环取代了线性翻译。
步骤 1:任务分解与战略规划
生命周期始于编排器接收自然语言问题。此阶段的主要目标是分解(Decomposition)。例如,”2023 年利润率最高的 3 个产品”这一请求被拆解为一系列子任务:
- 定义”利润率”(profit margin)的业务逻辑(如 (收入 - 成本) / 收入)。
- 确定 WHERE 子句所需的时间过滤条件。
- 确定必要的 ORDER BY 和 LIMIT 约束。
这一步确保智能体在尝试”做什么”之前,先理解”为什么”和”怎么做”。
步骤 2:语义 Schema 链接与 RAG 集成
为防止”幻觉”(hallucination),工作流进入 Schema 链接阶段。在大规模数据仓库中,智能体必须充当图书馆管理员。通过语义相似度,Schema 智能体检索”最小可行 Schema”(minimal viable schema)——即回答问题所需的最小元数据集。通过将 LLM 锚定在实际的数据库目录和主键-外键关系上,工作流确保生成的 SQL 引用的是真实实体,而非虚构的表名。
步骤 3:协作综合与多智能体对话
在 Agentic 框架中,SQL 生成是一个协作对话过程,而非单次尝试。程序员智能体根据战略计划起草初始 SQL 代码。同时,评审智能体对草稿进行严格审查。这对于处理复杂的 JOIN 结构尤为重要。如果一个查询需要连接五个不同的表,评审智能体会确保连接键根据步骤 2 检索到的元数据正确对齐,从而防止执行逻辑有误的查询。
步骤 4:执行-反思循环(自我纠正)
这是 Agentic 生命周期中最关键的阶段,智能体在此”行动”并”学习”。SQL 被提交到沙箱,导致三种可能的结果:
- 结果 A:语法/运行时错误。 引擎返回回溯信息(如”Column not found”)。智能体分析错误,意识到误解了列别名,然后生成修正版本。
- 结果 B:空结果。 如果查询执行成功但未返回数据,智能体会调用内容搜索工具验证用户的过滤条件(如拼写错误的城市名)是否存在。然后调整查询并重试。
- 结果 C:成功。 数据被检索,循环终止。这种迭代式”反思”机制使 Agentic 系统能够解决传统模型无法处理的复杂基准测试。
步骤 5:最终语义验证与洞察生成
在结果呈现给用户之前,验证智能体执行最终审计。它会问:”这个数字表格是否真正回答了用户关于产品利润率的原始问题?”这防止了”回答了正确的问题的错误答案”场景。如果验证通过,系统使用响应生成器将数据综合为人类可读的叙事,提供上下文、识别趋势,确保用户获得全面的答案,而非原始数据转储。
AI 智能体在 Text-to-SQL 中的角色
在 Agentic Text-to-SQL 框架中,AI 智能体不仅仅是被动的翻译器,而是在专业化”分工”中运行的自主实体,用以驾驭关系型数据库的复杂性。这些智能体的角色由其在非结构化人类意图与 SQL 严格约束之间充当中介的能力来定义。
AI 智能体在此生态系统中执行的主要角色包括:
1. 规划智能体(Planner)——推理与战略分解
规划智能体负责高层认知处理。它不是试图立即生成查询,而是将自然语言提示分解为逻辑子步骤序列。这涉及识别特定意图(如趋势分析 vs. 点检查询)并确定操作顺序。通过创建路线图,规划智能体确保系统在处理嵌套子查询和复杂聚合时不会偏离用户的原始目标。
2. Schema 链接智能体(Schema Linker)——元数据管理与检索
Text-to-SQL 中的一个关键挑战是”Schema 噪声”——大量无关表的存在。Schema 智能体充当精确过滤器,使用语义搜索和 RAG 识别查询所需的确切表、列和外键关系。该智能体将系统”锚定”在数据库目录中,确保生成的 SQL 引用的是真实的、已存在的实体,而非”幻觉”的标识符。
3. 程序员智能体(Programmer)——代码生成与工具使用
程序员智能体专注于将计划技术性地转化为可执行 SQL。与传统模型不同,该智能体配备了”工具”,如用于查找特定单元格值的内容搜索函数(例如检查用户指的是”California”还是”CA”)和语法检查器。该角色的特征在于其能够利用环境反馈在最终确定代码之前进行优化。
4. 评审/反思智能体(Critic/Reflector)——自我纠正与验证
Agentic 系统中最具特色的角色可能是评审智能体。该智能体通过分析程序员智能体的输出来执行”自我反思”。如果查询在沙箱执行过程中失败,评审智能体会检查数据库回溯信息或错误消息(如 JOIN 错误或类型不匹配),并提供纠正性反馈。这种迭代循环使系统能够自主调试自身错误。
5. 编排智能体(Orchestrator)——协调与状态管理
编排智能体维护交互的”记忆”。它管理规划智能体、程序员智能体和评审智能体之间的信息流,确保用户请求的上下文在整个迭代过程中得以保留。这一角色对于处理多轮对话至关重要——用户可能基于先前的结果提出后续问题。
通过从单体架构转向基于角色的协作,Agentic Text-to-SQL 系统能够解决超出标准单次 LLM 的”上下文窗口”和逻辑能力的复杂推理任务。
Agentic Text-to-SQL 的核心特性
与传统静态模型不同,Agentic Text-to-SQL 系统以其”思考”、”行动”和”优化”的能力为特征。以下特性将这种 Agentic 方法区分为数据交互的下一代演进:
多步推理与问题分解
Agentic 系统的标志性特征是其将高层自然语言提示分解为一系列逻辑子任务的能力。智能体不是试图将复杂句子一步映射为 SQL 语句,而是利用 CoT 过程。在编写任何代码之前,它识别离散阶段,如识别相关实体、确定连接条件和应用聚合。这降低了多表 JOIN 和嵌套查询的错误率——这些通常令非 Agentic 模型困惑。
自主自我纠正与调试
最强大的特性之一是执行反馈循环(execution-feedback loop)。当生成的查询导致数据库错误(如语法错误或类型不匹配)时,智能体不会简单地失败。相反,它捕获引擎的回溯信息,分析错误,并执行”自我反思”来调试和重新生成代码。这种迭代式精炼使系统能够克服对 Schema 或语法的初始误解,而无需人工干预。
动态 Schema 链接与工具使用
传统系统常常难以处理”Schema 噪声”——大量无关表的存在。Agentic 系统具有主动 Schema 选择(Active Schema Selection)功能。它们使用专用工具浏览数据库目录、采样数据并动态验证外键关系。通过充当探索者,智能体确保仅考虑与特定查询相关的元数据,显著提高了精度并避免了”幻觉”列名。
环境锚定(上下文内验证)
Agentic Text-to-SQL “锚定”在实际数据环境中。如果查询返回空结果集,智能体可以使用内容搜索工具检查用户请求的值(如特定城市名或产品 ID)是否确实存在于数据库中,或是否存在拼写差异。这种查询数据以帮助编写查询的能力确保了最终输出不仅语法正确,而且语境准确。
基于角色的协作(多智能体架构)
现代 Agentic 框架通常采用多智能体设计,不同”专家”协同工作。例如,”规划智能体”处理逻辑,”程序员智能体”编写 SQL,”评审智能体”审查代码的安全风险或优化问题(如缺失索引)。这种分工模拟了专业数据工程团队,确保比单一模型方法更高的质量和更健壮的治理。
可追溯性与可解释性
由于 Agentic 系统遵循结构化计划,它们提供了清晰的推理”审计线索”(audit trail)。用户可以看到智能体如何解释请求、选择了哪些表,以及为何选择特定的过滤器。这种透明度建立了信任,特别是在企业环境中——用户需要验证生成报告或数据洞察背后的逻辑。
传统 Text-to-SQL 与 Agentic Text-to-SQL 的差异
传统系统与 Agentic 系统之间的根本差异在于从翻译(Translation)到分析(Analysis)的转变。传统模型将 Text-to-SQL 视为语言映射问题,而 Agentic 系统将其视为目标导向的问题解决任务。
| 特性 | 传统 Text-to-SQL | Agentic Text-to-SQL |
|---|---|---|
| 操作逻辑 | 单次翻译:试图基于输入提示一次生成整个 SQL 查询 | 迭代推理:将提示分解为子任务(规划→推理→行动) |
| 推理透明度 | 黑箱:内部逻辑不透明,难以解释或调试 | 推理链(CoT):提供逐步的、可追溯的推理过程 |
| 错误处理 | 被动:如果查询失败或返回语法错误,系统停止,用户必须手动修复提示 | 主动自我纠正:捕获执行回溯并反思错误,自主调试并重新生成代码 |
| Schema 处理 | 静态映射:依赖模型在上下文窗口中提供的 Schema 内部记忆,常导致 Schema 噪声 | 动态探索:主动查询数据库目录以验证表关系,并采样数据以将逻辑锚定在现实 |
| 环境交互 | 无交互:在不访问实时数据库环境的情况下生成 SQL | 交互式锚定:使用工具(如内容搜索、Schema 浏览器)基于真实数据进行验证 |
| 歧义消解 | 启发式猜测:对用户意图进行最佳猜测,常导致幻觉列或不正确的 JOIN 逻辑 | 多智能体验证:使用专业评审智能体审查逻辑,使用内容搜索工具澄清歧义值 |
| 工作流 | 线性:输入 → LLM → SQL 输出 | 循环式:输入 → 规划 → 执行 → 评估 → 优化 |
弥合语义鸿沟:本体论与本体论强制执行
尽管 Agentic 工作流具备先进的推理能力,但一个根本性挑战仍然存在:语义鸿沟(Semantic Gap)。在复杂的企业环境中,LLM 往往难以将人类业务逻辑映射到碎片化的物理 Schema。这导致语法上正确但在逻辑上有误的查询,甚至出现”静默失败”(Silent Failures)——语法完美且可执行的查询却产生了逻辑错误的结果,因为智能体误解了业务上下文。
为解决这一问题,我们需要引入本体论(Ontology)和本体论强制执行(Ontology Enforcement)的概念。
1. 语义基础:本体论与强制执行
可靠 Agentic 系统的核心是本体论——领域特定概念及其相互关系的形式化表示。它充当位于物理表之上的语义抽象层,将晦涩的列名和碎片化的 JOIN 转化为有意义的业务实体,如”客户”、”交易”或”客户终身价值”。
本体论强制执行是作为实时守门人的主动验证机制。它确保智能体执行的每个操作都严格遵守语义层中定义的结构和逻辑规则。对于 AI 智能体而言,这一点至关重要,原因有三:
- 上下文清晰度: 它提供了”什么”背后的”为什么”,使智能体能够理解业务规则而非仅仅是语法。
- 减少幻觉: 通过提供有效关系的明确路线图,智能体不太可能”发明”数据点之间不存在的路径。
- 自我纠正的结构化反馈: 当查询违反业务逻辑时,系统不仅返回晦涩的 SQL 错误;它提供结构化的、LLM 可读的反馈,解释语义违规,从而实现更有效的自我纠正循环。
2. 赋能可靠的 AI 智能体
PuppyGraph 通过利用本体论强制执行架构(ontology-enforced architecture)来解决基于智能体的数据访问的局限性。它通过以下关键能力在原始复杂数据与智能智能体之间充当关键桥梁:
- 抽象海量 Schema 复杂性: PuppyGraph 不是将数百个碎片化的表推送给 LLM,而是将它们抽象为丰富的、可管理的实体和关系。这显著降低了智能体的认知负荷,防止其迷失在复杂的 JOIN 逻辑中。
- 消除语义幻觉: 在多表环境中,PuppyGraph 的显式语义层充当唯一事实来源(single source of truth)。它确保智能体不仅编写有效的代码,而且遵循”正确的”业务逻辑,防止产生逻辑缺陷但可执行的查询。
- 弥合”反馈鸿沟”: 没有本体论强制执行时,数据库错误(如”Column not found”)缺乏足够的语义上下文。PuppyGraph 将这些错误转化为结构化的、LLM 可读的反馈。当智能体违反业务规则时,PuppyGraph 用语义术语解释原因,使智能体能够自主调试和优化策略。这种结构化反馈还创建了持续改进循环——违规信号可以被捕获以微调 LLM 或驱动强化学习,使智能体随时间推移变得越来越智能。
3. 超越基础设施:内置分析伙伴
超越单纯的架构,PuppyGraph 通过其内置智能体提供无缝的直接交互界面。该智能体允许开发者和业务利益相关者使用直观的对话式语言查询复杂数据集。

图:PuppyGraph 聊天机器人处理自然语言问题
通过利用同样的本体论强制执行核心架构,PuppyGraph 智能体实现了高精度的自然语言驱动数据访问:它在语义结构化上下文中解释用户意图并相应地检索相关信息。这将数据库从静态的技术存储库转变为响应式的自主协作者——在保持严格语义完整性的同时,提供人类可读的洞察。
结论
Agentic Text-to-SQL 代表了从被动查询生成到主动问题解决的根本性转变。通过多步推理、动态 Schema 锚定和迭代式自我纠正,它解决了传统方法的许多固有局限。基于角色的智能体和执行反馈循环的引入使这些系统能够在复杂数据环境中以更高的鲁棒性、透明度和适应性运行。
然而,仅有推理不足以完全弥合人类意图与物理数据 Schema 之间的语义鸿沟。这正是本体论和本体论强制执行变得至关重要之处。通过嵌入领域知识并强制执行语义约束,PuppyGraph 等系统确保生成的查询不仅可执行,而且在逻辑上正确。Agentic 工作流与本体论强制执行架构共同指向一个未来——与数据的交互变得更加直观、可靠,并与真实的业务理解保持一致。
本文翻译自 PuppyGraph Blog,原文链接:https://www.puppygraph.com/blog/agentic-text-to-sql
译者:AI 辅助翻译,仅供学术参考。