Tool-SQL:基于Agent智能体的Text2SQL解决方案,显著提升Text2SQL效果
1.背景与挑战
Text2SQL核心问题:自然语言转SQL在真实场景中面临数据库不匹配(Database Mismatches),包括:
-
条件不匹配:用户查询条件与数据库实际值不一致(如"todd casey" vs "Todd Casey")
-
约束不匹配:违反外键、数据类型等隐式规则,不触发执行异常但导致结果错误
2.现有方案局限
方案类型 | 代表方法 | 缺点 |
---|---|---|
自我纠正 | DIN-SQL等 | 依赖静态规则,仅能处理有限错误类型 |
执行反馈 | MAC-SQL等 | 仅能捕获执行异常(如语法错误),忽略数据库不匹配 |
3.Tool-SQL创新方案
核心思想:通过工具增强的Agent动态检测和修正SQL问题
两大核心工具:
1) 数据库检索器(Database Retriever)
- 功能:解决条件不匹配问题
- 技术实现:使用SimCSE模型检索相似数据库单元格(支持语义匹配,如缩写、格式差异)
- 迭代修正流程:
检查WHERE/HAVING条件值是否匹配数据库
若无匹配 → 返回相似值供Agent参考
Agent选择修正值或调整条件
重复至成功或达最大尝试次数
- 优势:处理真实场景中的模糊查询(如用户输入非标准化值)
2) 错误检测器(Error Detector)
-
功能:诊断约束不匹配和潜在执行问题
-
检测范围:
外键关系缺失
JOIN冗余/缺失
列类型不匹配
GROUP BY子句误用
- 技术实现:
基于数据库模式(Schema)静态分析
避免直接执行高风险查询,提升安全性
4.技术亮点
Agent架构设计:将SQL生成分解为Python函数调用(如add_where()),结构化参数便于工具检测
动态迭代:工具反馈 → Agent修正 → 重新验证
真实场景适配:专为模糊条件和隐式约束优化,超越传统执行反馈方案
5.效果对比
数据集:Spider、Spider-Realistic、Spider-Mismatch(自建真实场景数据集)
6.核心价值
质量提升:解决传统方法忽略的数据库不匹配问题
安全性:通过静态分析减少高风险查询执行
可扩展性:工具库可灵活扩展(如新增业务规则检测)