提示词工程
提示词工程是设计并测试给语言模型的指令,使其回复符合特定任务要求的实践。它包括定义任务、提供有用示例、指定输出并检查结果。更清晰的提示词可以减少歧义,但不能凭空补出缺失的证据,也不能证明答案正确。
作者:Ai Flowi · 发布于
有用的起点是一个实际问题:模型应该如何处理这份输入,您又将如何判断答案?这让提示词工程有别于收集听起来很厉害的措辞。本页用一个虚构的服务请求任务说明其中的设计选择,不声称已有模型回复或效果改进测量。
提示词应该包含什么
任务指令说明操作,例如提取请求的房间,并指出缺失的预订详情。上下文提供操作所针对的材料。约束说明哪些信息必须保持未知,不能猜测。输出约定说明其他人或程序将如何读取结果。示例则展示合理理解与虚构信息之间的边界。
这些部分应该一致。既要求简短摘要,又要求保留来源中的每个细节,会产生相互冲突的预期。既要求模型只用已提供的事实,又要求完整的预订日期,会促使它填补信息缺口。在调整语气或添加角色描述前,应先解决这些冲突。
关于应纳入哪些文档和历史消息这一独立问题,请参阅上下文工程。如果周围的证据不相关、已过时,或超出了所选模型的处理容量,即使指令经过精心编写,也仍可能失败。
提示词工程示例:改进一个固定任务
模拟输入为:“请安排星期五下午使用 Cedar 房间。”假设应用需要房间名、具体日期和时间。“星期五下午”并没有给出明确的日期或时刻。提示词应保留已知的房间,同时指出这些缺失的细节。
示例配置,并非记录下来的测试。下列修订定义的是提取任务,并不执行预订。
| 修订 | 指令 | 修改原因 |
|---|---|---|
| 模糊任务 | 根据这条消息完成预订。 | 没有区分信息提取与外部预订动作。 |
| 限定范围的任务 | 提取房间,并列出缺失的日期或时间详情。不要预订任何内容。 | 将理解与执行分开。 |
| 输出约定 | 返回 room、date、time 和 clarification_needed。缺失的日期和时间用 null 表示。 | 让后续检查能够看到缺失信息。 |
| 示例边界 | 只给出星期而没有具体日期时,仍属于未解决的信息。 | 说明应如何处理有歧义的短语。 |
作者设定的目标是保留 Cedar,让日期和时间保持未确定,并请求澄清。这是验收目标,并非记录下来的输出。所选模型是否遵循它,必须用实际的模型配置和输入检查。
让指令具体,但避免过载
使用能描述可观察工作的动词,例如提取、分类、比较或引用。“提供帮助”不能说明猜出的预订日期是否算缺陷,而“日期缺失时使用 null”可以。将数据与指令清楚分开,让请求中的句子被当作待理解的材料。
要求忽略引述数据中的命令,是有用的设计意图,但仅靠提示词措辞无法形成访问控制边界。面向模型的请求不应附带提交预订的权限。任何动作执行前,应用都必须检查必填字段,并要求取得适当授权。
当难点在于判断边界,例如区分偏好与已确认的详情时,示例会有帮助。少样本提示条目说明如何选择示例,并将评估案例排除在提示词之外。更多示例并不自动意味着更有用。
在 AI Flowi Workflow 中如何应用
组装指令文本的方法请参阅 Prompt Template 参考文档。
Structured Output 说明介绍机器可读回复的字段与模式约定。
对于这条预订请求,room 必须保留 Cedar,date 和 time 在用户提供精确值前保持 null。拟定的 clarification_needed 字段应指出这两项缺失详情。如果没有给出参考日期,回复却根据星期五虚构了具体日期,即使该日期语法有效,也应拒绝。
偏好下午与确认的时间是不同的值。如有必要,可在说明中保留这一偏好,但不能擅自把它转换为某个时刻。同样,请求 Cedar 并不能证明 Cedar 可用。房间提取成功的标准是报告所请求的房间,而不是承诺已完成预约。
评估器设置和失败类别请参阅大语言模型幻觉。
这里要评估的是:某次修订是否在保留已知字段的同时揭示歧义。应分别比较精确的房间值、使用 null 的决定,以及澄清措辞。如果提示词提出了正确的追问,却丢失房间名,就发生了退步。如果返回了所有键,却猜出了时间,则违反了另一项要求;不能用“总体上很有帮助”的印象掩盖这两类结果。
已在目录中说明,但未经 Ai Flowi 生产环境测试
组件目录列出了这些工具;比较预订提示词时,应提供您自己的生成与评估账户及其 API 密钥,并为各提供商单独收取的费用做好预算。
如何针对任务测试提示词?
比较提示词修订时,应固定来源请求和验收规则。如果同时改变模型、来源事实和提示词,就不能将不同答案归因于指令变化。为每条检查过的回复记录提示词版本及设置。
应纳入以下案例:完整日期、相对星期、缺失房间,以及试图通过请求文本下达命令的情况。分别评估各项属性:字段是否有依据、如何处理缺失信息、输出结构是否正确,以及是否避免了未经授权的动作。回复可能符合格式要求,却未通过证据检查。
只有设计确实需要工具时,才使用 Agent 参考文档。寻找特定任务的起始模式时,可查看已有文档说明的使用案例及其声明的测试范围。提示词测试不能证明已连接的工具或完整工作流能够正常工作。
常见错误与限制
不要把流畅的答案当作通过检查,不要在共享提示词中泄露私密示例,也不要把评估答案复制进提示词本身。确定性规则已经能给出答案时,不要再让模型理解。提示词工程适用于依赖语言的任务,但证据、验证和应用权限仍是各自独立的职责。
相关内容:自动提示词优化:生成并评估候选提示词。