HarnessSQL:让SQL代理在部署时的工具接口里完成训练
完整交互轨迹SFT再做执行奖励RL;共享数据库与接口错误影响结果解释
HarnessSQL将数据库代理的列举表、检查schema、执行试探SQL和最终提交放进同一个受限接口,用实际运行验证过的完整轨迹训练,再做稀疏执行奖励RL。Qwen3-8B在Spider2.0 SQLite子集由15.5%升至45.2%,14B由22.2%升至54.8%;但主测试共享训练数据库,域外成绩仍显著较低。
图解主要方法
数据库代理如何学会探索、执行、修正和提交,而非只生成最终SQL?

- 1
先生成可运行SQL,再生成任务
从数据库引擎取schema、值样本和join路径,以SQL结构难度控制生成可执行查询,再导出自然语言要求与隐藏oracle。过滤空结果、退化join、语法和执行错误,做改变查询语义的mutation检查。30个SQLite与49个DuckDB转SQLite数据库组成79库训练池。
- 2
把工具和反馈固定成学习环境
SQLite只暴露sql_list_tables、sql_schema、sql_exec、sql_submit,禁用模型可调用shell和文件工具;只读单语句、查询子进程60秒上限、观察截断、重复调用提醒、压力触发上下文压缩共同决定策略分布。BIRD迁移另用九种操作与GPT-4o用户模拟器,不能视作完全同接口。
- 3
监督整段经过验证的交互
2,512条成功教师轨迹平均11,794 tokens、中位16轮、平均17工具调用;保留先失败再修正的过程。完整32K序列只对助手推理/动作计算loss,system、user和工具观察mask。8×H800、3epochs、471更新、AdamW 1e−5;按轮拆分仍有历史前缀,不是完全无上下文。
- 4
在同环境用最终执行结果强化
SFT初始化后DAPO运行150轮、每轮4prompt×8轨迹、2次优化,4H800 actor加4H800 rollout,单会话32K、单调用最多4096新token。去零方差组、非对称裁剪0.20/0.28,assistant token承载梯度,无有效KL惩罚。奖励按隐藏结果的有序/无序规范比较,失败进程按组剔除;评分器执行超时30秒与探索查询60秒不同。
实验与证据
完整正文及附录A–K、图2、公开仓库README与文件树已核查;未独立训练或重跑评测。
来源证据8B:base15.5%、直接RL20.0%、SFT30.4%、SFT+RL45.2%;14B:22.2→37.8→54.8。 表2 ↗
我的解读两阶段收益明显,但135题的小集合没有多seed置信区间,不能精确量化每种机制的独立因果贡献。
来源证据域外BI-mini为9.0%/11.3%,LSB SQLite24.8%/28.5%;GSPO在LSB为25.2%,略高DAPO24.8%。 表1/4 ↗
我的解读方向可迁移,绝对失败率仍高;DAPO并非所有基准最好。
来源证据删除前导注释导致的失败轮后,SFT30.4%降为28.2%。 附录D ↗
我的解读这是约3道135题的差距且无区间;支持保留接口恢复轨迹的可能价值,不能直接推出广义SQL语义纠错能力。
来源证据官方135问题与训练30库SHA相同;同库文字无完全重复,embedding最大0.7122,最宽松结果fingerprint匹配为0。 附录E;表12–14 ↗
我的解读去重审计是共享数据库设置下的必要检查;分数应标注同库新问,不能称数据库完全未见。
来源证据540轨迹/阶段:成功有效提交18.70→75.74→93.52%;严格协议违规83.15→26.67→11.48%。 表8;公式2/13 ↗
我的解读有效提交不等于答案正确。正文把协议作为乘法奖励,附录奖励公式主要列执行等价;需要代码级确认哪些协议约束真正影响奖励。
开放情况与使用许可
官方仓库包含任务合成、DuckDB转SQLite、四工具接口、轨迹收集、SFT和Slime RL实现及配置。README明确排除数据库、生成数据、轨迹、权重和检查点;Slime另装。文件树未发现许可证,不能称为许可完整的开放权重发布。
LICENSE论文及图2为CC BY 4.0;公开代码未确认许可证,基础模型与第三方依赖另遵各自许可。
我的判断
独立分析 · 未复现实验正方 · 为什么值得投入
同一8B、同一DSH-SQL推理下,非接口训练9.6%、接口原生SFT30.4%,较直接的证据支持训练与工具协议匹配。
四次独立评测轨迹每阶段540条显示无效调用从67.41%降到17.41%再到0.56%,改善确实包含协议行为。
反方 · 哪些结论还不够
训练与测试共享30个数据库;文字、embedding和结果去重降低直接抄题风险,但不能证明消除了全部数据库知识收益或基座预训练污染。
3,989次训练执行失败中3,230次来自前导注释被只读guard拒绝,约81%;“学会纠错”很大部分涉及特定接口缺陷。
主文与附录F说对照使用原生协议,附录G却称所有模型统一DSH-SQL;BIRD又是九操作协议,不是全程四工具。结果应按具体实验解释,不能宣称彻底统一。
综合判断
完整轨迹加匹配接口训练有清晰收益;当前更像已知数据库上的专用代理改进,尚不足以证明广泛SQL方言与陌生数据库工作流已解决。
我会先做的验证
建议实验(尚未执行):按数据库而非问题留出,统一token/工具调用预算,修复注释guard后再测原始与清洗轨迹;对执行奖励和协议检查分别记分,并以多seed置信区间检验跨方言迁移。