Prompt 设计的通用原则

Prompt 设计的通用原则

原则一:角色 > 任务 > 约束 > 格式(从大到小)

❌ 差的 prompt(没有层次):
"帮我回答问题,要准确,用工具"

✅ 好的 prompt(层次分明):
"你是一个XX角色。      ← 角色(身份 + 能力边界)
你的任务是XX。          ← 任务(要做什么)
请遵守以下规则:        ← 约束(怎么做 + 不能做什么)
输出格式:XX"           ← 格式(最终产出的形态)

原则二:正面指令 > 负面指令

LLM 对"要做什么"的理解比"不要做什么"更准确:

❌ "不要直接回答需要查资料的问题"
✅ "遇到需要查资料的问题时,先调用 search 工具获取信息"

原则三:具体 > 抽象

❌ "准确回答"              (什么是"准确"?LLM 不知道你的标准)
✅ "回答必须引用工具返回的具体数据"(行为可验证)

原则四:给 LLM 一个"思维路径"

不是告诉 LLM 每一个细节,而是给它一个推理框架

✅ "请按以下步骤思考:
1. 用户的问题需要什么信息?
2. 我有这些信息吗?如果没有,我该用哪个工具?
3. 工具给了我什么结果?这些结果是否充分?
4. 我能否据此给出完整的答案?如果能,现在就回答。"

原则五:用示例(Few-Shot)消除歧义

当文字描述不够精确时,直接给例子:

规则:如果用户只是打招呼(如"你好"、"hi"),
直接回复问候,不要调用任何工具。

示例1:
用户:你好
助手:[直接回复] 你好!有什么可以帮你的吗?

示例2:
用户:今天天气怎么样?
助手:[调用 get_weather 工具] ...

写好 Prompt 的核心心法

┌────────────────────────────────────────────┐
│                                            │
│   把 LLM 想象成一个"极度听话但缺乏常识"的    │
│   实习生:                                  │
│                                            │
│   ✅ 你明确告诉它的事,它会做得很好          │
│   ❌ 你以为它"应该懂"但没写出来的,它可能乱做  │
│   ✅ 给它思考框架,它会有条理                 │
│   ❌ 不告诉它什么时候停,它就不停              │
│                                            │
│   所以:把所有"你以为它懂的"都写出来。         │
│                                            │
└────────────────────────────────────────────┘
本文为原创内容,作者:闲鹤,原文链接:https://blog.uwenya.cc/1684.html,转载请注明出处。

发表评论