一句话定义
Prompt 是发给模型的输入文本或消息,通常由角色、上下文、任务、约束、输出格式和示例组成。它是模型生成的条件,不是模型参数的一部分。常见消息角色有 system、user、assistant;system 指令通常优先于用户输入。
为什么需要它
同一个模型,换个说法就可能得到不同结果。Prompt 决定模型看到什么、按什么身份回答、输出什么格式;在 RAG 和 Agent 里,它还承载检索资料和工具说明。
怎么工作
- 角色 / 系统指令:设定身份、边界和总体要求。
- 上下文:对话历史、检索片段、文档或工具结果。
- 任务:明确要做什么,避免“帮我看看”这种模糊请求。
- 约束 / 输出格式:长度、语气、字段、JSON 结构。
- 示例:用少量输入输出样例固定格式和风格。
这些内容都占 上下文窗口,越长越贵,也越容易淹没关键指令。
和提示工程的区别
Prompt 是输入对象;提示工程 是设计、评测和迭代 Prompt 的方法。前者是“写了什么”,后者是“怎么让它稳定有效”。
关键取舍
- 越具体越可控,但过度约束会降低灵活性。
- 结构化比堆长度更重要;关键要求放在显眼位置。
- 不同模型对同一 Prompt 的敏感度不同,要按模型回归测试。
常见误区
- Prompt 不是训练:它不改变模型权重。
- 不存在一套万能 Prompt;效果依赖任务、模型和数据。
- 把所有要求堆进一段话不等于好 Prompt。
用在哪里
- 对话、写作、抽取、分类、代码生成。
- RAG 的资料拼接和引用约束:标注来源,避免模型把资料当指令。
- Agent 的角色、工具说明和终止条件。