一、什么是 Prompt
Prompt提示词:送给大模型的全部输入文本,用来告诉大模型要做什么、怎么做、输出格式、约束条件、角色背景。
二、Prompt 的组成元素
一个高质量提示词一般包含 6 个要素,不一定全部都要有,按需组合:
1、角色 Role:你是什么身份(专家、分析师、工程师、Agent 智能体)
2、背景 Context:相关背景信息、上下文、已知条件
3、任务指令 Instruction:明确要完成什么事,核心要求
4、约束 Constraints:禁止做什么、边界、输出限制
5、输出格式 Format:json /markdown/ 列表 / 指定模板
6、示例 Examples(少样本 Few‑shot):给 1~N个输入输出样例,教模型模仿格式与逻辑
【角色】你是专业数据分析师。
【背景】下面是一份销售数据表。
【任务】分析销量变化,找出核心问题。
【约束】不要废话,只输出结论,不要编造数据。
【输出格式】markdown表格+简短总结
【示例】
输入:xxx
输出:xxx
三、Prompt主要分类
1. 零样本 Zero‑shot
不给例子,直接下达指令。
例子:“总结下面这段文字”
适合简单任务;复杂任务效果不稳定。
2. 少样本 Few‑shot
给少量输入输出样例,让模型模仿。
给 2‑5 组样例,模型照着样例的格式、逻辑输出。
Agent 大量使用 Few‑shot,用来教会模型输出Thought/Action/Observation格式。
3. 思维链 CoT(Chain‑of‑Thought)
让模型先一步步思考,再给出答案。
核心提示词:请一步步思考,先分析每一步,最后给出结果。
不直接要答案,强制输出推理过程,大幅提升逻辑、计算、推理任务正确率。
ReAct Agent 的基础就是 CoT。
4. 思维树 ToT Tree‑of‑Thoughts
让模型生成多条思考分支,评估每个分支好坏,择优继续推理。
“请想出 3 种解决思路,分别评估每种方案优缺点,选择最优方案继续执行”。
5. ReAct Prompt(Agent 专用提示词)
专门给智能体使用,规定:思考→动作→观察循环格式。
告诉模型什么时候调用工具,输出什么标记,什么时候结束任务。
这就是 LLM Agent 最核心的 Prompt,没有这套提示词,大模型不会主动调用工具。
6. Self‑Consistency 自一致性
同一个问题生成多条推理路径,再投票选出多数答案,降低幻觉。
7. Reflection 反思 Prompt
专门用于 Agent 反思模块:
“回顾上面全部执行过程,找出错误、遗漏,分析失败原因,给出改进策略”。
8. System Prompt 系统提示词
OpenAI 消息格式里role:system的内容。
全局角色、规则、约束,在对话最开头,全程生效。
Agent 绝大部分核心规则全部写在 System Prompt。
用户输入是 user,模型返回是 assistant,系统提示独立存在。
四、Prompt 工程常用技巧
1、指令写具体,拒绝模糊
差:帮我分析报告
好:帮我分析这份报告,找出 3 个风险点,用 markdown 列表输出,每点不超过 50 字。
2、把约束写清楚,明确禁止行为
“禁止编造数据,没有信息就调用搜索;不要输出多余客套话”
3、强制输出格式
复杂任务强制 JSON,避免自由文本;但大模型偶尔会格式错乱,这是 Agent 一大痛点。
4、Few‑shot 给样例
复杂输出格式,直接给 1‑2 个标准样例,效果远胜于纯文字描述。
5、CoT:要求先思考再输出
复杂逻辑任务,加上:请一步步思考,把你的推理过程写出来,最后给出最终结果
6、角色设定
给模型一个明确身份,会改变输出风格、专业度。
7、分隔符隔离输入
用 ``` 把用户输入、文档包裹起来,避免提示注入。
五、Prompt的局限性
1. 上下文窗口限制:Prompt越长,消耗token越多,超过窗口直接截断。
2. 不稳定:同样Prompt,不同轮次输出不一样;偶尔不遵守格式(Agent最头疼)。
3. 容易被干扰:外部输入容易发生提示注入。
4. 能力上限:Prompt不能赋予模型本身没有的能力,只能引导模型发挥已有能力。