概率组件和确定组件.

模型是一个概率组件:同样的输入,它可能给出不同的输出。数据库不是,加法不是,权限校验也不是。

工程的任务是把这两类组件正确地拼在一起,而不是假装其中一类不存在。凡是业务上要求「必须如此」的地方,就不该由概率组件来负责。

不要用提示词写 if.

「如果用户没有权限,就拒绝回答」——这句话写进提示词,意味着你的权限系统有一定概率会失效。这个概率也许是千分之一,但它不为零。

正确的做法是在调用模型之前就把无权访问的数据过滤掉。模型看不到的东西,它就不可能泄露。

把不确定性装进小盒子.

理想的结构是:模型只负责一件事,比如「从这段话里抽出日期」,然后立刻交给一个严格的校验器。校验通过就继续,不通过就重试或者报错。

盒子越小,你能给它的测试就越多,出问题时也越容易定位。反过来,一个从头到尾都由模型驱动的流程,出错时你几乎无从下手。