技术实践
技术实践:怎么给 AI 设计意图提示词?JSON 契约、智能推断与默认值
提示词写得含糊,模型就自由发挥;写得太死,又像在调配置文件。云帆轻工具的意图识别提示词走了中间路线:格式约束钉死,语义推断放开,参数能默认的全默认。这篇拆开讲每一段为什么这么写。
先钉格式:只返回 JSON,别的一律不要
第一条铁律写进提示词末尾:「只返回 JSON,不要其他内容」。模型喜欢在答案前后加解释,这一句能挡掉大半。字段契约用一行示例给全:{"intent":"操作名","params":{参数}}。给模型一个看得懂的模板,比甩一份 JSON Schema 更管用——长规范吃 token,还容易被忽略。
再钉语义:意图枚举 + 必填参数
每条意图一行,写明操作名、参数清单、哪些必填。比如 create_exam:参数 title(必填)、totalTime、qualifyScore、chance。枚举越具体,模型越不会把「考试」和「刷题」混在一起;参数名与后端 DTO 对齐,解析出来能直接映射。
推断规则是提示词里的「常识」
光有枚举不够,模型不知道「爬山」和「团建」意味着活动报名。于是加一组关键词规则:抽奖/点名 → 建抽奖分组,溯源码/二维码 → 建溯源批次,分班/座位 → 智能分班。本质是把产品经理的领域知识翻译成提示词,替模型补上业务背景。
相对时间必须换算,默认值放桥接层
「下周三」「明天」这类说法,模型自己能推,但业务参数要的是具体日期。规则里明确要求换算成具体日期再填参数——这一步漏了,桥接层拿到的就是没法解析的字符串。默认值同理:考试时间 60 分钟、及格线 60 分、1 次机会,全部由桥接层补全而不是让模型猜——模型的默认值不稳定,代码里的默认值是确定的。
少问问题的产品哲学
助手的人格设定提示词里写了句「尽量智能默认,少问问题」。多轮追问看着智能,实际每次往返都在流失耐心。能默认的默认掉,用户拿到结果觉得不对,再进管理页改——改参数的成本,远低于多答两轮问题。
