先这样答
结论是,Schema 要同时约束参数和工具选择。参数必须让模型知道什么能填、什么不能填。工具描述必须让模型知道什么时候该用、什么时候不该用。
参数侧先严格区分必填和可选字段。必填字段缺失时,工具不能直接执行。可选字段不能和必填字段混在一起。枚举字段要使用封闭取值,不留自由文本。这样可以减少模型生成同义词、近似词或无效值的情况。金额和日期要使用结构化类型。Schema 还要写明取值边界,并在执行前校验边界。参数之间有依赖关系时,也要显式声明。比如一个参数出现后,另一个参数才允许出现,不能只靠描述里的自然语言暗示。
工具侧要把名称和描述写清楚。描述要说明工具适用于什么场景,也要说明什么时候不该使用。相似工具要直接写出差异点,让模型能按场景区分。金融场景还要单独处理高风险参数。转账金额不能只依赖 Schema 校验。系统必须强制用户二次确认,再执行相关操作。
面试官会怎么追问
-
「为什么枚举字段不能保留自由文本?」 模型生成自由文本时,可能使用同义词或不符合约定的值。封闭枚举能把可选范围固定下来,也方便执行前校验。
-
「参数依赖关系应该怎么写?」 把依赖关系直接声明在 Schema 中。说明哪些参数互相依赖,以及某个参数出现后哪些参数才允许出现,避免只写在一段模糊描述里。
-
「既然 Schema 已经校验了金额,为什么还要二次确认?」 Schema 只能约束参数格式和边界。转账金额属于高风险参数,系统还必须让用户确认具体操作,不能只依赖字段校验。
回答的坑
-
把金额和日期都写成普通字符串,却没有结构化类型和边界校验。
-
只描述工具能做什么,却不写不适用场景和相似工具的差异。
同系列的题
—— 本题完 ——