提示词不是护栏
不让模型直接写 SQL,第一眼看像是给自己找麻烦。只读账号、query 工具,“和数据库聊天”的 demo 一个下午就能跑起来,小库查询成本也无所谓。但那篇文章偏不这么干。原因是:模型能猜出一段 SQL 该长什么样,但不知道这段 SQL 的返回值和现实之间隔着什么。 这个判断值得往下挖。

不让模型直接写 SQL,第一眼看像是给自己找麻烦。只读账号、query 工具,“和数据库聊天”的 demo 一个下午就能跑起来,小库查询成本也无所谓。但那篇文章偏不这么干。原因是:模型能猜出一段 SQL 该长什么样,但不知道这段 SQL 的返回值和现实之间隔着什么。 这个判断值得往下挖。

先贴一个 tool call。模型发给我的: 我声明的参数叫 oldcontent。它填的是 oldstring。 schema 写得明明白白,required 里我还写了三遍。模型没看。不是没看见——它压根不按 schema 调工具,它按训练轨迹里的形状调。它见过太多长这样的调用,照着敲了一遍。