Prompting Techniques提示词工程核心知识梳理

请看这条消息数组。第一条消息角色为 system(系统角色),这是开发者设定的指令。 指令内容:"你是一名负责管理日程与任务的私人助手。" 这条指令会决定模型输出的每一条回答。

第二条消息角色为 user(用户角色),是使用者提出的问题:"我今天有哪些日程安排?"

系统提示对终端用户是不可见的,但它会一直存在,持续参与上下文。 在 ChatGPT 网页端,系统提示由 OpenAI 后台预先写好;如果你自己开发应用,就需要手动编写系统提示。 这也是调用 API 比直接网页聊天能力更强的核心原因之一。我们举实例直观说明:

同一个问题,搭配三种不同提示词,会得到三种完全不一样的回复。

  1. 只简单说:"帮我整理日程。" 模型只会给出笼统、通用的时间管理建议,实用性很差。
  2. 细化要求:"用带时间的项目符号列出我今天所有会议。" 此时模型明确了你想要的格式和需要展示的信息,输出简短、结构化、可用。
  3. 增加身份与复杂约束:"你是私人助手,用户今日行程繁忙。总结他的全部日程,标出时间冲突;若存在撞期会议,给出调整建议。" 这时的回复精准、落地、可直接执行。 结论:上下文信息越丰富、约束条件越多,输出内容越有价值。

举个通用例子: 不要只说 "总结一下这段内容", 而要写:"用三条项目符号为技术受众总结本文。"

提示词里每多一句话、一个限定,都是一条约束;约束越清晰,模型输出质量越高。 还有一种高效技巧:在提示词中附上标准示例,直观告诉模型你想要的效果,这种方法叫做少样本提示(few-shot prompting)

一、核心基础:System Prompt(系统提示)

这里有一个例子。如果没有系统消息,你 询问模型如何修复一个bug, 你会得到一个有用的、通用的、相当冗长的答案。添加 一条系统消息,例如:"你是一位高级工程师, 正在进行代码审查。请直接且批判性地提出问题。" 同样的问题会得到完全不同的答案。系统消息 改变了模型所依赖的模式。你可以在系统消息中放入什么? 角色。"你是一位友好的客户支持 代理。" 限制条件。"永远不要讨论竞争对手。" 格式说明。"AI始终以要点形式回复。" 背景知识。"用户是付费用户。" 你使用过的每个AI工具背后都有一条系统消息在运行。 例如聊天GPT、旅行预订助手、 银行聊天机器人。它们本质上并不是不同的 模型。它们采用的是相同的技术,只是由不同的系统信息控制。

1. 定义与作用

API 对话消息数组分为两类永久角色:

  • system底层全局指令,对用户不可见,全程作用于整条对话上下文,锁定 AI 身份、行为规则、输出标准;网页端由厂商内置,自研应用可自定义,是 API 能力强于普通网页聊天的关键。
  • user:终端用户提问,单次可变需求。

示例消息数组结构:

复制代码
[
  {"role":"system","content":"你是一名负责管理日程与任务的私人助手。"},
  {"role":"user","content":"我今天有哪些日程安排?"}
]

系统提示优先级高于用户提问,所有回答必须遵循 system 设定的身份与规则。

2. 三层指令对比(模糊→细化→强约束,输出质量逐级提升)

表格

指令等级 提示词写法 输出效果 核心问题
零约束(模糊) 帮我整理日程 宽泛通用时间管理空话,无结构化信息,无法直接使用 缺少身份、格式、输出边界,AI 自由发挥
单层约束(细化) 用带时间的项目符号列出我今天所有会议 结构清晰、内容简短,但缺少复杂场景处理逻辑(如时间冲突) 仅限定输出格式,无业务处理规则
多层约束(完整系统提示) 你是私人助手,用户今日行程繁忙。总结他的全部日程,标出时间冲突;若存在撞期会议,给出调整建议 精准落地、可直接执行,覆盖异常场景 同时锁定身份 + 任务目标 + 处理规则 + 异常方案,多重约束缩小 AI 生成随机空间

核心结论

提示词里每一条限定、每一条规则都是约束;约束越具体、维度越丰富(角色 / 格式 / 逻辑 / 异常),AI 输出偏离预期的概率越低,内容落地价值越高。

二、进阶强力技巧:少样本提示 Few-Shot Prompting

1. 基础概念

依托大模型上下文学习(In-Context Learning) 能力:不微调模型权重,直接在提示词中放入2--5 组「输入 - 标准输出」示范样例,让 AI 直观看懂你想要的风格、格式、推理逻辑,替代冗长抽象文字描述CSDN博...。

  • Zero-shot(零样本):只文字描述需求,无示例;
  • Few-shot(少样本):附带标准样例,控制力大幅提升。

2. 适用场景(文字说不清楚,示范一眼看懂)

  1. 强制固定输出格式(JSON、特定列表、表格、固定句式);
  2. 统一文风、专业话术(商务文案、技术总结、特定写作风格);
  3. 多步复杂推理任务(日程冲突判断、数据分类、内容提取);
  4. 降低 AI 幻觉,减少多余前言、无关解释。

3. 标准化提示词结构(三段式)

  1. 任务总说明:明确要完成什么;
  2. 示范样例:2--5 组规范输入 + 标准答案;
  3. 当前待处理输入。

实战示例(日程助手少样本提示)

复制代码
# 任务:整理用户日程,标记冲突并给出调整方案
## 示例1
用户日程:9:00-10:00部门例会,9:30-11:00客户面谈
输出:
1. 9:00-10:00 部门例会
2. 9:30-11:00 客户面谈
【时间冲突】两项会议9:30--10:00重叠
调整建议:将客户面谈延后至11:10开始

## 示例2
用户日程:14:00-15:00方案评审,16:00-17:00周报撰写
输出:
1. 14:00-15:00 方案评审
2. 16:00-17:00 周报撰写
【无时间冲突】

## 当前用户日程:8:30-10:00产品会,9:00-10:30线下拜访

AI 会完全复刻示例的排版、冲突标记逻辑、建议话术,输出高度统一。

三、通用优化公式(可复用到所有场景)

反面(低效模糊写法)

总结一下这段内容 问题:无受众、无篇幅、无结构、无重点要求,输出不可控。

正面(标准强约束写法)

用三条项目符号为技术受众总结本文,每条只保留核心技术逻辑,不添加科普铺垫 拆解约束维度:

  1. 输出结构:3 条项目符号;
  2. 目标受众:技术人群;
  3. 内容限制:仅核心逻辑;
  4. 禁止项:剔除科普废话。

四、落地设计模板(高质量 System Prompt 通用四段式)

复制代码
# 1. 角色定位(锁定AI身份、专业能力)
你是XX领域专业助手,核心职责:xxx

# 2. 核心任务(明确要处理的输入、最终目标)
接收用户日程文本,完成全量梳理、冲突识别、优化建议输出

# 3. 输出强制格式(缩小生成空间)
固定使用带时间点的有序列表,冲突单独标注,建议简洁可执行

# 4. 行为约束&禁止项(兜底防跑偏)
1. 不得遗漏任意一条日程;
2. 不添加无关寒暄,仅输出日程相关内容;
3. 冲突必须给出至少1条可行调整方案

# 5. 可选:少样本示范(进一步统一输出标准)
【附上2--3组输入输出样例】

五、关键底层逻辑总结

  1. 系统提示是 AI 行为的底层基准,长对话全程生效,自研 API 应用的核心可控手段;
  2. 模糊指令 = 放任模型随机生成;多层清晰约束 = 可控、稳定、可落地的输出;
  3. 文字描述有极限,少样本提示用范例直观传递标准,是提升输出一致性最高效的技巧;
  4. 优化提示词的核心思路:从「只说要做什么」升级为「明确身份 + 规定格式 + 定义处理逻辑 + 给出示范 + 划定禁止行为」。

底层原理拆解

1. 负面指令的缺陷

模型理解 "不要做什么" 存在天然模糊性:

  • Don't be verbose 只划定了禁止边界,但没定义标准:多短算简洁?没有明确目标;
  • Avoid jargon 无法界定哪些词属于术语,模型容易过度删减或保留冷门专业词; 负面指令是约束型规则,只排除错误行为,不给清晰行动目标,模型容易跑偏。

2. 正向指令的优势

正向句式直接给出明确执行标准

  • Be concise, one sentence per point 给出量化规则,模型有清晰参照;
  • Use simple words a high school student would understand 划定受众门槛,输出尺度固定; 模型会主动朝着给定目标生成,输出稳定性、可控性大幅提升。

3. 提示词工程实操结论

写系统提示词、任务约束时通用准则:

  1. 尽量删除所有 Don't / Avoid / Never / Do not 类负面禁令;
  2. 转化为「应该做什么 + 清晰标准」的正向描述;
  3. 能加量化、受众、格式限制就补充,进一步降低模型理解偏差。

拓展示例对照

表格

低效负面指令 高效正向改写
Don't write long paragraphs Split content into short paragraphs under 3 lines each
Don't make answers complicated Explain logic step by step with basic examples
Don't skip key details List all critical information one by one

三种角色各司其职: system(系统角色)用于设定模型的行为与身份; user(用户角色)负责提供人类输入与提问; assistant(助手角色)承载模型过往输出、留存对话上下文。 三者配合,能让你完整掌控模型的回复风格,以及模型所能读取、记住的全部对话信息。

三大对话角色完整拆解(System / User / Assistant)

一、System 系统角色

核心作用

全局定义大模型的身份、行为准则、能力边界、回复格式、语气风格、约束规则,是模型的底层指令,优先级最高,对话全程生效。

关键特点

  1. 最先输入,不受用户后续提问覆盖;
  2. 规定禁止行为(敏感内容、编造信息、固定话术等)、输出规范;
  3. 可限定专业身份(翻译、程序员、文案、心理咨询等)、回答逻辑框架;
  4. 不会被计入普通聊天上下文,只作为底层约束存在。

示例片段

复制代码
你是专业代码助手,只输出带注释可运行代码;禁止编造不存在的API;回答简洁,不额外闲聊;计算类问题必须给出演算过程。

二、User 用户角色

核心作用

承载人类真实提问、需求、素材、指令、补充信息,是模型需要响应的输入主体。

关键特点

  1. 每一轮用户提问单独标记为 user;
  2. 内容完全由人提供,可包含问题、文本、图片描述、需求修改、反驳、追问;
  3. 模型读取 user 内容作为本轮需要处理的任务。

示例片段

复制代码
用Python写一个批量读取Excel并统计求和的脚本。

三、Assistant 助手角色

核心作用

存储模型上一轮输出的全部回复内容,构建完整对话上下文记忆链。

关键特点

  1. 每一轮模型回答单独标记为 assistant;
  2. 是上下文记忆核心:模型会读取历史所有 assistant 记录,记住之前聊过的内容、达成的结论、之前输出的内容;
  3. 实现连续对话:多轮问答依靠user-assistant交替记录实现上下文关联;
  4. 可被后续 user 指令修改、推翻、补充。

示例片段

复制代码
import pandas as pd
def excel_sum(file_path):
    df = pd.read_excel(file_path)
    return df.sum().sum()

四、三者协作完整流程(标准对话结构)

复制代码
system: 全局基础设定
user: 第一轮人类提问
assistant: 模型第一轮回答
user: 第二轮追问/新需求
assistant: 模型第二轮回答
...

协作价值

  1. 可控回复风格:system 锁死人设与格式,不会随对话跑偏;
  2. 完整上下文记忆:user+assistant 交替留存全部聊天记录,模型不会遗忘前文;
  3. 分层权限清晰:底层规则 (system)、用户需求 (user)、历史回答 (assistant) 分离,可单独修改任意一段,灵活调试 prompt。

补充区分要点

表格

角色 核心定位 生命周期 能否修改记忆
System 底层行为规则 全局全程生效 一次性设定,修改需重新传入
User 人类任务输入 单轮单次 仅代表当前需求
Assistant 模型历史输出缓存 多轮累加留存 构成上下文记忆主体
相关推荐
空堂与归12 分钟前
图像识别总是准确率低?用卷积神经网络CNN实现高效分类
人工智能·深度学习·分类·cnn
老猿AI洞察1 小时前
阿里云启用巴西数据中心,AI服务出海落子南半球
人工智能·阿里云·云计算
大金SEO1 小时前
GEO启动的正确顺序:先做信源清理,再谈内容扩张
大数据·人工智能
Bruce_Liuxiaowei1 小时前
从基础理论开始学习人工智能(三):盲目搜索——从状态空间图到生成-测试范式
人工智能·学习
qyz_hr1 小时前
拥抱AI,红海云筑牢企业组织与人力数据底层能力
人工智能
Capricorn19882 小时前
个人知识库接入大模型频现“幻觉引用”?排查 RAG 溯源失效问题,解析知芽构建可信第三大脑的底层架构
大数据·论文阅读·人工智能·笔记·架构·论文笔记
LaughingZhu2 小时前
Product Hunt 每日热榜 | 2026-08-27
人工智能·深度学习·神经网络·搜索引擎·百度
时代分流2 小时前
生成式搜索时代的 GEO 技术体系与落地实践:解析矩擎 GEO 5.0 全栈架构
人工智能
苏灿烤鱼2 小时前
没有机密文件,也没有付费数据,在浏览器里造一颗"间谍卫星"
前端·javascript·github