提示词工程速查
提示词结构与方法论、常用模式与框架、分类抽取写作等任务写法、评估迭代方法、提示注入防护与工程化管理:提示词设计速查。
提示词基础
结构要素、角色设定与指令清晰化方法
提示词五要素结构(角色/任务/约束/格式/示例)热门
把一条提示拆成角色、任务、约束、输出格式、示例五个可独立修改的要素,写清后提示更稳定,迭代时只需改动其中一格。
system 角色设定写法热门
在 system 消息里定义身份、职责边界与固定风格,让全局规则在整段会话中持续生效;比逐轮在 user 里重复要求更省长度也更稳定。
temperature 采样温度
控制随机性的核心采样参数:数值越低输出越集中稳定,越高越发散;按任务类型选择起点,而不是所有场景共用一个值。
输出格式约束写法
明确字段名、字段顺序、空值表示、数字单位与日期格式,让输出能直接进入下游程序;格式要求缺失时模型会自行选择样式。
指令动词开头写法
把要求改写成「动词 + 对象 + 验收标准」的祈使句:分析什么、输出什么、达到什么程度一步到位,替代“帮我看看”这类模糊请求。
示例挑选与边界覆盖
示例要覆盖典型、边界、易错三类情形,并保持与目标输出完全一致的格式;示例对输出稳定性的影响常大于规则描述。
分隔符与标签隔离指令和资料
用 XML 风格标签、三反引号或 ### 把指令、资料、示例分区;分区清晰的输入更少把资料文字误当成指令执行。
正向指令替代否定清单
直接说明希望模型做什么(含被禁行为的替代动作),比罗列一长串「不要……」更稳定;否定项只在无法替代时保留。
system / user / assistant 消息分工
三种消息角色各司其职:system 放全局规则、user 放本次输入、assistant 放历史回复或预填开头;摆放位置影响稳定性与缓存。
输出骨架先搭后填
先在提示里给出带占位符的空模板(章节标题、字段名),再要求逐项填写;比只写一句“结构化输出”更能防漏项和跑偏。
输出长度上限(max_tokens)
限制单次回复的 token 数,超出内容会被硬截断;给推理类任务留足预算,看到“半句话、半个 JSON”先怀疑触达上限。
可量化要求替代模糊词
“详细一点”“简短一些”没有验收标准,模型会自行脑补;换成字数、条数、覆盖范围等可检查的写法。
一次一件任务原则
同一条提示塞多个任务会让失败难以定位、输出互相干扰;把「总结 + 翻译 + 改写」拆成独立调用,每步可单独验证与重试。
top_p 核采样
从概率累计达到 top_p 的候选词集合中采样:值越小候选越窄、输出越保守;常与 temperature 二选一调整。
长文档位置与提问顺序
长材料放提示前部、指令与问题放后部;多份文档编号包裹,并要求先引用再结论,减少长上下文里的信息漏读。
长度约束写法
用可数单位(字数、条数、行数、章节数)约束输出,并说明超出时的处理方式;不要用“长短”这类相对词。
输入结构化包装
把输入包成 JSON / YAML / 固定字段清单再交给模型,用字段名承载语义,减少自然语言描述的歧义与遗漏。
输出前自检清单
要求模型在给出结果前逐条核对硬约束(字段、单位、字数),减少低级失误;自检是软约束,关键字段仍需程序侧校验。
受众定义写法
写清读者身份、已有知识、使用场景三件事,模型据此决定术语深度与解释粒度;同一材料对不同受众的合理输出差异很大。
采样参数联合调法
一次只改一个参数、固定其他参数做对比:先确定 temperature 区间,再用 top_p 微调;参数与提示版本一起记录以便复现。
先澄清再回答(信息不足时先提问)
对信息不足的请求,先让模型列出关键缺口并提问,而不是自行补齐假设直接作答;适合需求梳理、配置核对类任务的第一步。
角色一致性维持(防人设漂移)
长会话中角色设定会随轮次逐渐冲淡:语气变随意、格式松掉、约束被稀释。常用做法是在固定位置复述关键约束,并在输出端抽查。
用户内容隔离与转义
把用户提交的内容放进提示前做转义、截断与声明;内容中的分隔标签与指令性语句都可能影响模型行为。
约束优先级与让步顺序
多条要求无法同时满足时,预先声明让步顺序(先保格式、再保事实、最后保风格),避免模型替你做不透明的取舍。
提示语言与输出语言设置
输入语言、理解依据、输出语言是可分别约定的三件事;跨语言任务要把“用什么语言理解、用什么语言输出”写清楚。
歧义词与指代消解
“它、这个、近期、尽量”等词会让模型自行选择指代对象与量级;提交前把它们替换成具体对象、时间与数值。
语气与文体设定写法
用一个靠近的参照加边界说明来锁定语气(如“同事在群里解释问题的口吻”),比单独一个形容词(“专业”)更可执行。
关键要求首尾强化
长提示中开头的设定与结尾的复述都更容易被模型遵守,中段内容容易被忽略;把硬约束放首尾、资料放中间。
规则与示例的一致性
文字规则与示例必须一致:两者冲突时模型倾向模仿示例;修改规则时同步更新所有示例,并把一致性纳入评审清单。
术语表消除多义歧义
对领域缩写与多义词在提示内先给定义(“本任务中 SLA 指……”),模型据此统一理解与表述,避免各说各话。
适用范围与越界处理声明
明确规则覆盖哪些输入类型、范围外请求如何处理(拒答、转人工或提示重述),避免模型对越界问题自由发挥。
条件分支规则写法(IF/THEN)
把边缘情况的处理写成「如果……则……」的规则行,覆盖默认行为之外的分支;比让模型自由发挥更可控,也便于测试。
任务背景三行写法
用三行交代背景:用途、读者、红线。背景不是客套,它直接决定模型的信息取舍与详略安排。
重复惩罚(frequency / presence penalty)
两类惩罚参数用于抑制复读:一类按出现次数累计惩罚,一类按是否出现过施加固定惩罚;创作类可用,抽取类通常保持默认。
无关上下文干扰的裁剪
长提示里的无关段落会稀释注意力、增加成本;按需裁剪历史与背景,只保留影响答案的约束、定义与例外。
停止序列(stop)
指定一个或多个字符串,生成到该串即停止;批量生成多条内容或让模型停在固定标记处时常用。
指令去重与冲突清理
同一要求被重复表述或前后矛盾时,模型行为不稳定;维护提示时先合并同类项,再做回归验证。
假设显式声明
信息不全时要求先列出所采用的假设再作答,把隐含推断摆到台面上,便于人工复核、纠错与回归对比。
礼貌语与情绪词的有限作用
“请”“谢谢”或情绪化鼓励对指令遵循的影响有限,清晰与信息量才是主要变量;礼貌无害,但不能用语气修饰替代需求描述。
提示的可读性与可维护性
用分节标题、编号与空行组织长提示,让评审、改动与 diff 更容易;提示词也是要进版本库的工程资产。
模式与框架
思维链、少样本、ReAct 等常用模式
思维链提示(Chain-of-Thought)热门
在示例或指令中要求模型先写推理步骤再给结论;对算术、逻辑、多跳问题类任务有提升,效果依模型能力而定。
Few-shot 少样本示例提示热门
在提示里给 1-5 组输入输出示例,让模型模仿模式完成新输入;对格式、语气、映射规则类需求效果直接。
零样本思维链(Let's think step by step)
在问题后加一句引导语(如 Let's think step by step),让模型先输出推理再给答案;实现成本低、上手快。
ReAct 推理与行动交替模式
让模型循环执行“思考 → 行动(调用工具/检索)→ 观察结果”,直到信息足够再给出结论;是工具型 Agent 的基础循环。
Zero-shot 零样本提示
不提供任何示例,直接描述任务与输出要求;适合任务定义明确、模型熟悉的常规任务,提示简短、迭代开销小。
检索增强提示写法(RAG 提示)
把检索到的资料连同问题一起交给模型,并明确“只依据资料作答、缺依据就说明”;是知识库问答提示的基本结构。
少样本思维链(示例带推理)
在示例中写入完整推理过程,让模型模仿“先推理后结论”的结构;比只写一句引导语更可控,适合格式固定的推理任务。
自洽性投票(Self-Consistency)
对同一问题多次采样、对最终答案做多数投票;用采样多样性换取正确率,适合答案可对齐的推理类任务。
提示链(Prompt Chaining)
把任务拆成多步调用,每一步的输出作为下一步输入,并在关键节点加入校验;比单条长提示更可控、可观测。
由易到难分解(Least-to-Most)
先把复杂问题拆成由简单到复杂的子问题序列,再按顺序逐个求解,后面的解引用前面的结果;适合组合推理任务。
函数调用与参数 Schema
用 JSON Schema 描述函数名、参数与必填项,平台据此约束模型输出结构化调用;比在提示里描述“请输出 JSON”更严格。
自我精修(Self-Refine)
同一模型内循环“生成初稿 → 自我批评 → 修订”,不需要外部评估器;对可读性、结构类问题有改善,对事实准确性改善有限。
推理与答案分区输出
用固定标签把推理过程与最终答案分开(如 <reasoning> 与 <answer>),便于程序精确提取答案,也便于控制展示内容。
程序化思考(Program-of-Thought / PAL)
让模型把计算过程写成一段代码(或伪代码)并执行,用确定性计算替代心算;数值与逻辑类任务中较可靠的做法。
工具调用提示结构(Toolformer 思路)
在提示中声明可用工具、调用格式与使用条件,让模型在需要时主动发起调用;工具结果回填后继续推理。
先计划再求解(Plan-and-Solve)
在正式作答前先写出解题计划(步骤清单),再按计划逐步计算;把“理解问题”与“执行计算”分成两个阶段。
分块处理模式(Map-Reduce)
长文档先分块分别处理(map:每块摘要或抽取),再对中间结果汇总(reduce:合并、去重、定稿);是长材料处理的通用套路。
草稿纸模式(Scratchpad)
给模型一块专属草稿区做中间计算(统计、核对、试算),正文只引用草稿结果;让复杂计算的中间步骤可控可查。
验证链(Chain-of-Verification, CoVe)
先产出答案,再生成针对性验证问题、独立回答这些问题,最后据验证结果修订答案;用“独立验证”降低自洽性带来的盲区。
反思循环(Reflexion)
任务失败后让模型总结失败原因、写成可复用的经验文本,下一轮带着经验重试;不更新模型参数,靠文本记忆改进。
思维树(Tree of Thoughts)
让模型对一个问题并行生成多条思路,逐条评估后选优继续展开;用搜索式探索替代单链推理,适合需要试错与回溯的任务。
路由分发模式(Router)
先用一次轻量分类调用判断请求类型,再把请求分发给对应的专门提示或处理流程;适合意图多样的服务入口。
退一步抽象(Step-Back Prompting)
先让模型回答一个更通用的上位问题(原理、规则、类别),再回到具体问题作答;用抽象减少细节干扰。
查询改写提示(Rewrite-Retrieve-Read)
先让模型把口语化问题改写成适合检索的查询语句,再执行检索;对多轮对话与含指代的口语提问改善明显。
自我提问(Self-Ask)
把组合式问题显式拆成“后续问题”并逐一自答,最后综合;本质是把多跳分解固化为可读的输出结构。
引用锚定(带出处作答)
要求每个事实性陈述后标注来源编号或原文片段,把“说了什么”和“凭什么”绑定;便于核对,也便于用户溯源。
正反例对比提示
在同一提示里给出“正确做法 + 错误做法及纠正原因”的成对示例,比只给正例更能压住常见错误模式。
前置门卫模式(输入输出检查)
在正式处理前后各加一道轻量判定:输入先判相关性/安全性,输出再判合规与格式;把风险挡在主流程之外。
骨架并行生成(Skeleton-of-Thought)
先让模型只产出答案骨架(各节要点),再并行展开每一节;适合可拆成独立小块的长内容,降低串行等待。
多角色评审(Role Ensemble)
让同一输出接受多个专家角色(架构、安全、运维)分别点评,再合并修改意见;用视角多样弥补单一视角盲区。
连续分解问答(Successive Prompting)
对复杂问题逐轮“问一个子问题、得到答案、并入上下文、再问下一个”,比一次性拆分更接近真实的检索推理流程。
按复杂度选择推理模式
对问题先做难度判断:简单问题直接答(省 token),复杂问题才启用思维链与验证;兼顾质量与成本。
输出预填(Prefill / Priming)
在对话里预先给出回应的开头(如 JSON 起始符、章节标题),引导模型从该处继续书写;对锚定格式与跳开客套开头有效。
检索与推理交替(IRCoT)
把思维链与检索交错进行:每写一步推理就去检索一次,用检索结果指导下一条推理;适合多跳知识密集问题。
多稿优选(Best-of-N)
同一提示采样 N 次得到多个候选,再用规则、评分或校验器选出一份;比单次生成多花算力,换取更高合格率。
指令复述(Instruction Repetition)
把关键约束在提示开头与结尾各出现一次(内容一致),在长提示场景下有助于提高约束遵守率;复述仅限硬约束。
假设文档检索(HyDE 思路)
让模型先写一段“假设能回答问题的文档”,用它的向量去检索,再基于真实检索结果作答;用于短查询与长文档之间的语义鸿沟。
多智能体辩论(Multiagent Debate)
让多个模型实例分别作答、互看答案后修订,多轮后取共识;对数学与推理类任务有提升,成本较高。
推理预算控制(思考长度)
对支持“思考长度”控制的模型,按任务难度分配推理预算:简单任务压缩思考、复杂任务放开;用预算参数替代“想深一点”这类口令。
先生成背景知识再作答
对需要常识或领域背景的问题,先让模型写出相关知识(事实、规则),再基于这些知识回答问题;用两段式提升一致性与可核查性。
事前验尸(Pre-mortem)
假设方案已经失败,让模型倒推“为什么会失败”;把风险想象从“可能出什么问题”换成“它已经坏了,因为……”,更易挖出具体隐患。
动态示例选择(按相似度挑示例)
为每个输入检索相关度靠前的示例拼进提示,而不是用固定示例集;示例相关性越高,少样本效果越稳定。
反方审查(Devil's Advocate)
要求模型站在反方立场尽力找出方案漏洞与反驳理由,再评估哪些反驳成立;用于方案定稿前的压力测试。
类比提示(自生成类比示例)
让模型先回忆与当前问题结构相似的已知问题或知识,再借鉴其解法处理新问题;示例由模型自召回,不依赖人工编写。
元提示(Meta-Prompting)
用一个“协调者”提示负责拆解任务、分派给角色化子步骤并整合结果;本质是单次调用内的任务编排。
自动提示生成与筛选(APE)
让模型自己批量生成候选指令,用目标任务的评分(如执行准确率)筛出表现好的指令;用搜索替代手写调优。
自动构造思维链示例(Auto-CoT)
用模型自动生成“问题 + 推理链”示例并按多样性筛选,替代人工编写 CoT 示例;适合示例编写成本高的批量场景。
密度链摘要(Chain of Density)
分多轮迭代压缩摘要:每轮补充 1-2 个缺失的关键实体、同时删减冗余,逐轮提高信息密度;适合需要信息浓缩的摘要任务。
元提示优化(OPRO)
把“指令与评估结果”的历史写进提示,让模型根据历史表现提出新的指令改进版,循环迭代;适合有明确得分的优化场景。
复述与作答(Rephrase and Respond)
让模型先把用户问题改写成更清晰、更完整的版本,再基于改写版作答;对表述含糊的问题有助于提升回答质量。
任务型写法
分类、抽取、总结、写作、翻译与代码任务要点
结构化字段抽取(JSON 输出)
把自然语言文本抽取成固定字段的 JSON:先给字段表(名称/类型/示例),再要求仅输出 JSON,便于程序直接解析入库。
文本分类提示基本写法
分类提示的三要素:类别定义、判定依据、输出格式;把类别边界写清(含边界案例)比堆砌形容词更能提升一致率。
摘要任务基本写法
摘要提示先固定四件事:给谁看、用在哪、多长、保留哪些要素;再要求不引入原文之外的事实,输出才可控。
JSON 输出模式与围栏约定
要求只输出 JSON 时要显式声明:无 Markdown 围栏、无解释文字、转义规则;解析端仍要兼容可能的围栏包裹。
代码生成提示写法
代码生成先给上下文:语言与版本、运行环境、输入输出示例、错误处理要求;要求给出可直接运行的最小实现。
意图识别任务写法
识别用户想做什么而不是说了什么:意图列表、例句与兜底策略缺一不可;常与槽位抽取合并为一次调用。
先定 Schema 再写抽取提示
抽取类提示先写 Schema 再写话术:字段名用英文小写下划线、类型收敛到 string/number/boolean/array,枚举字段列全取值。
基于资料作答(带引用)
问答限定在给定资料内:先说用了哪些段落,答案逐句标注出处编号;资料不足时明确说“资料未覆盖”。
标签体系定义与收敛
标签数量、命名与粒度要统一:互斥场景用单选、可并存用多选;先收敛标签表,再写提示。
翻译任务基本写法
翻译提示先定三件事:目标语言变体(简体/繁体、地区用法)、用途(阅读/发布/字幕)、未知词处理策略。
命名实体抽取(NER 式提示)
按实体类别(人名/机构/时间/地点/金额)逐条抽取,输出数组并附原文出处;覆盖多语种与嵌套实体时按类别归组更易核对。
先大纲后成文(分步写作)
写作任务拆成两步:第一步只出大纲等确认,第二步按大纲成文;改大纲比改长文便宜,返工更少。
二分类与阈值处理
是/否类判定要写明“边界情形怎么算”和“无法判断怎么办”,否则不同批次的结果不可比。
会议纪要摘要写法
会议记录转纪要:固定四个分区——决议、待办、争议点、未决项;每条决议写明依据(谁提出、何时定)。
代码评审提示写法
代码评审提示按维度分工:正确性、边界、并发、安全、性能、可读性;每条意见给位置、问题与修改建议三段式。
结构化摘要(结论+要点+数字)
把摘要输出固定成小块:一句话结论、要点列表、关键数字表;结构化之后可以直接进周报或工单系统。
多标签分类写法
一条文本可属于多个类别的场景:规定数量上限与排序规则,并要求逐条给出命中的依据片段。
长文分层摘要(分块后汇总)
超长文档先按小节分块摘要,再对摘要做二级汇总;每块保留出处编号,最后可追溯到原文位置。
技术文档写作(步骤式)
面向工程师的文档按“前置条件→步骤→预期结果→排错”组织;每步动词开头、一条一步,命令可复制运行。
工单分诊与优先级判定
用规则表定义优先级(影响范围 × 紧急程度),让模型输出级别与依据;规则外置,模型只负责执行判定。
待办抽取与责任归属
从会议记录或邮件线程中抽出行动项:动作、负责人、时限三要素;信息缺失时显式标注而不是猜测补位。
情感分类任务写法
情感分析要区分“主体”与“极性”:对谁的情感、极性分几档、混合情感如何输出,都要先定义。
嵌套对象与明细数组抽取
订单、简历、合同这类含多级结构的文本:先抽头部字段,再抽明细数组;要求空明细输出空数组而不是伪造行。
日志解析为结构化字段
把 syslog 或应用日志行解析为时间、级别、模块、消息四元组:先用少量真实样例校准格式,再批量执行。
摘要保真约束(防添加原文外信息)
摘要输出加三道保险:不改数字、不加原文没有的判断、含糊处保留含糊;数字与专名可做零成本自动核对。
商务邮件写法(先结论后背景)
邮件提示按 BLUF 结构:结论与请求放开头,背景其次,最后给行动项与时间点;收件人决定语气与详略。
代码解释写法
解释代码按层次来:一句话作用→逐段逻辑→关键细节(边界/副作用)→潜在问题;面向读者水平决定详略。
垃圾与违规内容分类
内容审核分类要定义“违规类型 + 处理动作”,并明确“讨论违规”与“实施违规”的差别,减少误杀。
原文片段引用式抽取
每个抽取值附原文连续片段(span):既方便人工核对,也为程序侧“原文校验”提供依据,抑制改写与编造。
术语表约束的翻译
带术语表的翻译:术语表以原文到译文对照给出,命中必须使用指定译法;未命中的新词先进候选表再定。
分类结果与原因的输出顺序
分类结果与原因分开输出:结果放固定字段(便于解析),原因放独立字段(便于复核);不让原因淹没结论。
缺失字段与 null 约定
抽取任务先约定“信息不存在”的表达:统一 null 或空数组,禁止用猜测值补位;字段缺失率本身也是质量指标。
按问题定制摘要
围绕一个具体问题做摘要:只保留与该问题相关的证据与结论,其余内容略过;比通用摘要更适合排障与检索场景。
产品与功能简介写作
功能简介按“解决什么问题→怎么用→边界与限制”组织;只写可验证的能力,不写效果承诺与对比贬损。
解题步骤与结果分离(数学题)
数学应用题要求“先步骤后答案”且分区块输出:步骤写推导,答案区只放最终数值;数值格式统一(单位、小数位)。
不确定样本的弃权机制
给分类器一个“弃权”出口:证据不足时输出 unknown 或低置信度,交给人工或二次判定,而不是强行打标。
文本转表格抽取
把段落或版面文本整理成 Markdown 表格:先约定列头与列序,再逐行填充;合并单元格与空单元格给出统一写法。
表格输出写法
让模型输出 Markdown 表格:固定列头、约定空值符号、每行列数一致;列多时先输出列定义再给数据行。
字段级校验规则(枚举/范围/正则)
在提示里内联校验规则:枚举取值、数字范围、字符串正则与长度;模型先自检再输出,程序侧再做同样校验。
字段归一化与单位统一
抽取之后做第二次归一化:日期转 ISO 8601、金额去千分位、单位换到固定基准,并保留原始值以便回溯。
文风模仿与风格约束
给 2-3 段样例并总结其特征(句长、称呼、术语、收尾方式),让模型按特征仿写;比只说“文风像某某”可靠。
精简压缩改写
压缩类改写先列“必须保留的信息”再删冗:重复表述、套话、可推导内容优先删;数字与义务句不允许被删。
文体与语气适配翻译
翻译时保持原文文体:法律条文要严密、营销文案要顺口、界面文案要短;不跨文体改写,也不添加语气词。
XML 标签结构化输出
用 XML 风格标签分区输出(analysis、answer、citations):标签边界清晰,正文里出现类似词也不易混淆。
抽取失败的回传修复循环
程序校验失败后,把校验错误信息与原始输出一起回传,让模型只做修复而不是重新抽取;重试要有次数与降级路径。
语气转换改写(正式化/口语化)
同一内容的语气改写:给目标语气特征(称呼、句长、用词级别)与不变量(事实、数字、术语),转换后逐项检查。
保留标记与格式的翻译
翻译带占位符、标签或代码的文本:占位符与标记原样保留、位置可调、内容不译;只翻自然语言部分。
CSV 输出与转义约定
CSV 输出要点:先给表头行、字段含逗号或引号时用双引号包裹并转义;约定缺失值与多行文本的处理方式。
扩写与细节补全
扩写不是加形容词:按“是什么→为什么这样→怎么做→注意什么”补维度;素材里没有的细节标占位,不凭空写。
回译检查翻译质量
用回译做自检:把译文再译回源语言,与原文比对差异点;区分语义差异与风格差异,只修语义问题。
评估与迭代
测试集构造、对比评估与迭代方法
先定成功标准再改提示
改提示前先写清成功标准:目标场景、主指标与门槛、护栏指标;标准落盘后再迭代,避免事后合理化。
金标测试集构建
金标集从真实流量抽样加人工定标:覆盖典型场景与边界情形,规模先小后大;每条标注要有定标依据。
LLM 评审(LLM-as-a-judge)基本写法
用模型给输出打分或选优:评委提示固定评分维度、锚点与输出格式;评委模型与生成模型尽量不同源。
摘要自动指标 ROUGE 与局限
ROUGE 度量与参考摘要的 n-gram 重叠,适合同集回归对比;它不懂语义,单独用会奖励抄句式摘要。
精确率、召回率与 F1
P/R/F1 的选择由业务代价决定:误报贵就盯精确率,漏报贵就盯召回;阈值动一下两个指标就会互换。
成对比较评估(A/B 判别)
两个版本输出并排给评委选优:比绝对打分更稳定;要求给出胜负理由,允许平局,并交换两侧再评一次。
准确率与其陷阱(类别不均衡)
类别不均衡时准确率会骗人:99% 样本是 A 类时全猜 A 也有 99%;分类评测要同时看各类别指标。
回归测试集与用例管理
每次修 badcase 就往回归集加一条:合并前必须全量回放,防止修 A 破 B;用例带来源与修复版本备注。
测试样本的切片标签
给每条测试样本打切片标签(长度/语言/场景/难度),评测结果按片报告;整体均值会掩盖细分场景的退化。
结构化输出的可解析率
结构化任务把“能不能解析”当独立指标:解析成功率、字段缺失率、类型错误率分开统计,再谈内容正确率。
A/B 对比实验设计
版本对比实验:控制变量(只改一个因素)、同题配对、同参数;先定假设与判定标准,再决定样本量。
保留集与提示过拟合
反复用同一批样本调提示会过拟合:留一份不参与调参的保留集,只在关键决策时使用,防止自欺。
抽取任务的字段级评估
抽取评估按字段算:完全匹配、归一化后匹配、部分匹配三档分开统计;整体通过率之外要报每字段指标。
评测样本量的波动直觉
小样本评测的波动比想象大:100 条里差几条就可能翻转结论;对比版本时优先用配对样本与更大的集合。
混淆矩阵与错误模式分析
混淆矩阵把“错了多少”变成“怎么错的”:看哪些类互相混淆、方向是否单向,再决定改提示还是改标签体系。
评分表(rubric)式评审
把评分标准写成维度表:每档给行为描述而非形容词;评委逐维核对再合成结论,避免一个分数打天下。
采样随机性与可复现记录
让评测尽量可复现:固定采样参数与提示版本,记录模型标识与请求参数;无法固定的部分用重复运行覆盖。
摘要的人工评估维度
摘要人工评审固定维度:一致性、覆盖度、简洁度、可读性;每档打分给锚点,硬性错误单独打钩统计。
代码评估 pass@k
代码任务用 pass@k 度量:同一题生成 k 个候选,只要有一个通过测试即算通过;k 越大越宽松,报告必须带 k。
评审位置偏差与缓解
评委对先出现或后出现的答案有偏好:同一对样本交换顺序评两次,把两次结果不一致的样本计入偏差统计。
错误分类体系(误差分析)
给错误建分类表:格式错误、知识缺失、指令未遵守、信息错误、风格不符;每次评测按类计数,指导下一步投入。
迭代闭环:假设→改→回放→对比
一次只解决一个主要问题:从错误分类中选高频类,提出可检验假设,改一处提示,回放全量并对比结论落档。
重复运行与结果波动
带随机性的生成任务单次评测不可信:同一提示跑 3 次取均值与波动范围;波动大于版本差异时不能下结论。
翻译指标 BLEU 与 chrF
BLEU 看 n-gram 精确率加长度惩罚,chrF 看字符级 F 值;中文等语言用字符级指标更稳,两者都只作辅助。
执行式评估:用运行结果判对错
能运行的任务优先用执行结果判定:代码跑单元测试、SQL 对结果集、正则对样例;比文本相似度更接近真实正确。
评委自偏好与同源问题
模型倾向偏好自己生成的答案:评委与生成模型同源时胜率会系统性偏斜;关键评测用异源评委或人工抽查。
提示变更的卡口(CI 门禁)
把评测接进变更流程:提示文件变更触发自动回放;低于门槛或护栏恶化就拦住合并,并附报告链接。
切片复盘:定位退化的那一块
版本对比不只报总分:逐切片算差值并按幅度排序,定位“总分没变但某片大幅退化”的情况。
上线后的质量监控
上线不是终点:监控解析失败率、重试率、拒答率、时延分位与抽检合格率;异常波动触发回看与回滚预案。
神经翻译质量评估(COMET)
COMET 用模型直接预测人工评分:输入原文与译文(可带参考译文)输出质量分;区分有无参考两种使用模式。
评委的长度偏好(啰嗦偏差)
评委常给更长的回答更高分,即使信息没有更多;缓解:评委提示显式禁止按长度加分,或按长度分层比较。
评委与人工评分的对齐
自动评委上线前先做对齐:同一批样本人工与评委各评一遍,看一致率与偏差方向;不一致超阈值先修评委提示。
评测集的分层抽样
抽样按业务频率与难度分层:高频场景按占比、低频高风险场景保底样本;避免评测集被单一场景主导。
badcase 挖掘与归类流程
定期主动挖 badcase:抽样解析失败、低置信度输出与重试样本;归类计数后决定修复顺序,不让问题随机冒出来。
token 用量核算与预算
给每条提示链算 token 账:系统提示、示例、检索内容、历史对话与输出各占多少;大头上限期,防无声膨胀。
语义相似度指标(BERTScore 思路)
BERTScore 用预训练向量算 token 级相似度,对同义改写比 n-gram 指标宽容;适合辅助对比,不替代人工评审。
难例集与对抗样本池
单独维护难例集:已知易错句式、诱导性输入、罕见格式;难例分数不作主指标,用于观察稳健性趋势。
两个版本的差异是否显著
小幅差异先过显著性检查:配对样本上用 bootstrap 重采样或符号检验,避免把几条样本的差异当提升。
标注规范文档写法
标注手册写三件事:每个判定的规则、边界案例、遇到歧义怎么办;有争议样本定期回流成手册条目。
用户反馈闭环
把点赞踩、工单与人工改单接进评测:差评样本定期抽样核对,确认问题类型后并入回归集,形成闭环。
提示变更日志与实验记录
提示文件旁维护变更日志:版本号、日期、改动内容、动机、评测结果与影响面;出问题时可快速回滚定位。
成本与延迟纳入评测
质量提升若有代价要如实报告:token 用量、单请求成本、P95 延迟;把成本作为护栏指标与质量一起评审。
多重比较与指标挑选
一次对比看几十个指标时容易“挑出”好看的:预先固定主指标与判定规则,次级指标只作解释不作决定。
人工标注一致性(Kappa)
双人标注要算一致性:简单一致率之外用 Cohen's Kappa 校正随机一致;一致性低先修标注手册而不是催进度。
影子运行与灰度评估
新版本先影子运行:同流量双跑只记录不对外,对比新旧输出差异;差异样本人工抽查后再考虑小流量灰度。
延迟看分位数(P95/P99)
平均延迟掩盖长尾:报告 P50/P95/P99 与超时率;首字节与完整输出分开测,流式场景对体验影响不同。
双标与仲裁流程
重要评测集双人独立标注:不一致样本进仲裁队列,由第三方裁定;仲裁结论回写手册并定期抽检。
金标集的保鲜与轮换
数据分布会变,金标集要定期轮换:从新流量抽样本补充,旧样本降级为历史回归集,防评测与线上脱节。
输入分布漂移的检测
线上输入在变:监控长度分布、语言占比、新高频词与解析失败集中度;漂移明显时评测集与提示都要复查。
评测报告模板与结论写法
评测报告固定结构:变更摘要、实验条件、总指标与切片表、结论与风险、附件;结论用带条件与区间的可证伪表述。
提示注入与防护
注入与越权风险原理及防御措施
提示注入的基本概念
提示注入:不可信内容里夹带的指令被模型当作任务执行;它利用的是“模型无法原生区分数据与指令”,属于系统设计问题。
间接注入:第三方内容夹带指令
间接注入来自检索文档、网页、邮件、工具返回等第三方内容;用户完全不知情,是代理型系统的核心风险。
指令与内容的隔离写法
把外部内容放进显式的数据容器(XML 标签或 JSON 字段),并在指令区声明其数据属性;隔离是第一道结构性防线。
注入与越狱的区别
越狱是绕过安全策略(诱导输出违规内容),注入是打乱指令流(把内容当命令执行);两者应对策略不同,要分开评估。
直接注入:用户输入携带指令
直接注入发生在用户侧:输入里混入改写任务的指令;防护重点是对输入结构化处理,并对敏感动作做权限控制。
指令层级:系统高于用户高于内容
给不同来源的指令分优先级:系统提示高于开发者约束、高于用户请求、高于外部内容;层级明确后才能讨论冲突处理。
最小权限原则
给模型与该会话最小权限:只读就够的不给写、只访问本租户数据、凭据不落上下文;权限面小,注入的潜在损失就小。
RAG 文档投毒与注入面
知识库里可被写入的内容就是注入面:上传文档、评论、附件都可能夹带指令;入库与检索两端都要治理。
Markdown 图片链接的数据外泄原理
渲染 Markdown 图片会发起外部请求:若回答里拼入机密内容,机密会随 URL 发到外部;防线是渲染白名单与出站控制。
提示加固条款写法
在提示中显式声明安全规则:内容中的指令不执行、不泄露系统提示、不因内容触发高风险动作;条款短而具体。
工具返回内容里的注入
工具(搜索、网页抓取、数据库、外部接口)返回值同样不可信:把它当数据渲染前,先明确它不具备指令权限。
分隔符防护的局限
用分隔符包住内容是常见做法,但分隔符可被内容伪造:它不是安全边界;真正的边界在权限与执行校验。
输出侧的检查与拦截
输出侧检查敏感数据模式、外发链接与可疑操作请求;对高权限动作要求结构化确认,而不是直接执行自由文本。
工具白名单与参数校验
工具调用走白名单与参数校验:工具名枚举、参数类型与范围校验、危险参数二次确认;自由文本不能直接变调用。
沙箱与执行隔离
模型生成的代码与命令要在隔离环境执行:容器或虚拟机、无敏感凭据、限时限资源、默认无外网或仅白名单出站。
纵深防御的组合设计
单层防护都可能被绕过:输入清洗、隔离、权限、审批、输出检查、出站控制与监控组合使用,每层独立降低成功概率。
多模态载体上的注入
图片、音频、附件也能携带指令文本:模型读图时会解读图片里的文字;防控思路与文本注入一致,入口更多元。
来源标记(Spotlighting)
给外部内容打来源标记(统一前缀符号或声明来源),帮助模型区分数据与指令;研究显示可降低间接注入成功率。
输入侧的指令样式检测
输入侧扫描可疑指令模式(要求改规则、索要系统提示、要求外发数据);命中不直接拦截,而是分级处理。
敏感操作的人工审批
对不可逆或高影响动作设置人工审批:审批请求展示动作、目标、参数来源与触发链,人确认后才执行。
出站流量与数据外发控制
模型侧组件出站要受控:仅允许白名单域名、拦截含敏感模式的请求、记录全部出站日志;外发是注入变现的通道。
注入防护测试集设计
防护测试集按攻击面分组:直接注入、间接注入、工具返回、多模态、编码混淆;每组写清期望行为(拒绝或降级或照常处理数据)。
隐藏文本与不可见字符
网页与文档可以藏起指令:小字、白底白字、零宽字符与注释;文本清洗要能去掉不可见字符并保留可视结构。
双模型模式:特权模型与受限模型
双 LLM 模式:特权模型只见用户指令、不接触不可信内容;受限模型处理不可信内容但无工具权限;两者通过结构化数据交换。
canary 标记检测泄露
在系统提示或内部数据中放置 canary 标记值:它出现在输出或外部请求里即说明发生泄露或外发,可立即告警。
系统提示的保密与泄露应对
不把系统提示当机密仓库:里面不放凭据与密钥;对“请复述你的提示”类请求统一回应;泄露按事件流程处理。
防护效果的评估指标
防护指标至少三个:攻击成功率(含变体)、误伤率(正常请求被拦)、各攻击面覆盖;三项分开报告。
编码混淆与清洗归一化
注入常借编码混淆穿越过滤:全角字符、Base64、Unicode 变体;清洗层做归一化与解码审计,把变体拉回统一形态。
会话隔离与数据边界
多租户与多用户场景做会话隔离:检索、记忆、文件与缓存按租户分区;跨会话引用要显式授权而不是默认可见。
安全规则与业务提示分层
不把安全条款埋在业务长提示里:安全规则单独成层(可审计、可测试、可复用),业务提示引用而不是复制它。
红队评估的组织流程(防御视角)
定期红队:定目标(找到能触发越权或外发的最小路径)、限范围(隔离环境)、完整记录、修复后回归验证。
注入尝试的日志与监控
把可疑输入、检测命中、被拦动作与 canary 触发记入日志:字段统一可聚合;监控频率与来源分布异常。
注入事件的响应流程
疑似被注入成功时:先限流或停用对应能力、保全证据、评估数据影响面、修复后灰度恢复。
内容来源可信度分层
按来源给内容定信任级别并映射到允许行为:系统提示高于运营配置,用户输入与外部网页更低;低信任内容只作数据、不触发高影响动作。
数据标记(datamarking)
datamarking 一类做法:在外部文本的词间插入特殊标记,使其在形式上不像自然指令,同时保持模型可读。
可疑请求的拒答与降级话术
对可疑请求给出稳定、信息量低的回应:不解释内部规则、不逐步配合、提供安全替代;话术统一减少泄露。
高风险动作的确认设计
确认对话框展示可核对的信息:动作、对象、金额或范围、参数来源;默认取消、高影响动作要求输入对象名校验。
防护与效用的平衡
防护过强会伤任务质量:把“正当请求被拒”量化出来,按场景调强度,而不是全系统一个口径。
告警分级与响应
按影响面分级告警:canary 触发与越权尝试为高优先级,单条可疑输入为低优先级;每级定义响应时限与动作。
对照 OWASP 与 NIST 建立治理清单
用公开框架查漏:OWASP LLM Top 10 与 NIST AI 100-2 分类逐条对照,标注适用性与现状,形成可维护的治理清单。
插件与连接器的供应链风险
第三方插件、连接器与外部服务会带入新的指令通道与数据出口:审查来源、权限范围、数据流向与更新节奏,按供应链风险管理而非一次性接入。
注入防护与内容审核的区别
内容审核管输出是否合规,注入防护管输入如何影响系统行为与副作用;两者目标、位置与指标不同,需要分别建设、分别度量。
注入事件复盘与修复闭环
复盘输出四件事:时间线、根因(哪层失效)、修复项(含回归用例)、验证结果;修复完把用例并入常规测试。
防御规则的维护与版本化
检测正则、敏感模式与白名单都会失效或误伤:把规则当代码管理——版本库、评审、变更记录、回归测试与回滚路径,规则变更同样要留痕。
系统提示泄露的检测思路
检测输出是否复述系统提示:关键词命中、片段相似度、canary 串与输出长度异常组合判断;确认泄露后更新提示并轮换相关秘钥。
多代理协作中的注入传播
代理之间传递消息时,被污染的子任务输出会以内部可信输入的姿态进入下游代理并横向扩散;跨代理边界要重新做来源标记与校验。
模型与依赖更新后的防护复测
更换模型版本、推理框架或插件后,原防护效果会变化:用固定测试集在新组合上复测拦截率与误伤率,把安全回归纳入升级流程。
内部人员与权限风险
有配置权限的人能改系统提示、白名单与知识库,往往绕过所有对外防护:职责分离、双人复核、独立审计与权限回收是主要控制。
输出溯源与水印标记
在生成内容中保留可识别标记用于事后溯源:文本水印、提示指纹与内容凭证(C2PA)三类思路并存;它们帮助判断内容是否来自本系统,不承担访问控制职责。
防护开销与性能评估
输入扫描、二次审查与输出过滤都会带来延迟与成本:上线前做基线对比(P50/P99 延迟、调用次数、费用),并准备高峰期的降级策略。
工程化实践
模板管理、变量注入与版本控制
提示模板的占位符设计
模板把可变部分做成占位符:命名语义化、区分必填与可选、给默认值与类型;避免用位置顺序隐式传参导致维护困难。
上下文窗口的使用规划
上下文不是越满越好:内容按优先级排列并动态取舍,给输出留空间;长文档用检索或分段处理,不整篇塞入。
提示即代码:纳入仓库管理
提示词、模板与配置进入版本库:改动走评审、可 diff、可回滚,与代码同节奏发布;生产环境只读加载,避免控制台直接编辑。
模型与 SDK 版本固定
生产固定模型版本与 SDK 版本:不依赖会漂移的默认别名,升级走评测与灰度;模型、提示与评测集版本一起记录在发布清单中。
token 预算与分配
给上下文各段分配 token 预算:系统提示、示例、检索内容、历史与输出预留;超预算按顺序压缩低优先段,不动输出空间。
OpenTelemetry GenAI 语义约定
遵循 OpenTelemetry 的生成式 AI 语义约定埋点:统一 gen_ai.* 属性命名(系统、模型、请求参数与用量),让观测平台跨服务聚合。
生成延迟的分解度量
把端到端延迟拆成排队、首 token(TTFT)与逐 token 生成(TPOT):不同环节优化手段不同,分开监控才能定位瓶颈。
线上质量抽检
上线后按比例抽样人工检查:分层抽样(任务类型、提示版本、输入长度)配合评分表;抽检结果回流到评测集与告警阈值。
模板变量注入与默认值
渲染前统一处理变量:默认值、类型转换、空值策略与超长截断;渲染层是数据进入提示词的边界,校验放在这里成本低、收益直接。
提示灰度发布与回滚
提示变更先小流量灰度:按会话粘性分流,对比关键指标与错误率,异常一键回滚;观察窗口要覆盖高峰期与低频路径。
配置外置与环境差异
提示与配置和代码分离,按环境注入:接口地址、模型标识、阈值放环境配置;同一份模板在多个环境复用,差异由配置表达。
提示与密钥分离管理
系统提示里不放密钥与内部地址:密钥由密钥管理或环境变量注入,运行时短时有效;提示按可能被泄露来设计,泄露损失可控。
多轮对话的滚动摘要
长对话把较早轮次压缩成结构化摘要(目标、约束、结论、未决事项),保留最近若干轮原文;摘要触发阈值与更新策略要明确。
上下文排序与位置效应
长上下文的中段内容容易被忽略:关键指令与证据放开头或结尾,超长资料首尾放摘要;调整后用对比评测验证效果。
提示缓存的概念与收益
相同前缀的请求可复用已计算的中间状态(KV 缓存)降低延迟与成本:稳定内容放前缀、易变内容放尾部;命中条件与计费以服务商文档为准。
重试与指数退避
调用失败重试要有策略:只重试可恢复错误,指数退避加随机抖动,设置总时限与次数上限;防止重试风暴放大后端故障。
模型不可用时的降级
模型超时或不可用时按预设降级而非直接报错:切换备用模型、缩减增强功能、排队缓冲,并向用户与监控明确当前状态。
流式输出处理
流式返回要处理增量解析、断流与取消:按事件边界组装(SSE 事件或按行分隔的 JSON),中途异常时保留已产出内容并标注不完整。
请求追踪与回放调试
为每次生成记录可回放链路:trace 标识、提示版本、参数、输入与输出摘要;排错用相同输入回放,同时考虑模型输出的非确定性。
成本归因与预算告警
按维度归因成本:租户、功能、模型与提示版本;设置预算与告警阈值,异常消耗(重试风暴、输入膨胀)能及时定位。
日志与数据脱敏
日志、追踪与评测样本避免留存个人信息:入库前按字段规则脱敏(手机号、邮箱、证件号),需要关联比对时用加盐哈希。
模板渲染的转义与安全
渲染层同样存在注入面:用户变量若包含模板语法或分隔符会改变最终提示词结构;变量做转义并只进入数据区,指令区保持固定文本。
提示变更评审清单
提示改动比普通代码更依赖行为验证:动机、样本、回归结果、回滚路径与安全面逐项确认,用清单固定检查项,减少随意修改。
提示版本号与兼容策略
用语义化版本管理提示:输出契约不兼容变更升主版本,行为改进升次版本,措辞微调升修订号;下游按范围锁定主版本。
功能开关与实验分流
用开关控制提示版本、模型路由与新功能可见性:开关分级管理,默认值明确,实验结束设清理期限,防止开关堆积成隐性技术债。
开发与生产环境隔离
开发、测试、生产的数据与调用配额互相隔离:测试用脱敏样本与独立配额,避免实验污染生产指标,也避免真实数据外流。
分词器与 token 估算
模型按 token 计量与限长:中英文、数字、代码的折算比例不同,估算用目标模型分词器实测;预留余量,不用固定系数硬估。
会话记忆与实体表
把对话中的稳定事实抽成实体表(用户偏好、订单号、时区),每轮随上下文注入;避免同一信息反复推理或被记错。
会话隔离与并发
多用户并发时按会话键严格隔离上下文与缓存:会话标识贯穿日志、缓存与存储;共享缓存只放与身份无关的内容。
超时与取消设计
每次调用设明确超时并支持取消:超时分级(连接、首 token、总时长),用户取消即中止上游并记录;长任务转异步。
限流与配额处理
客户端要正确响应限流:按 Retry-After 退避、任务排队、对用户分级提示;服务端按租户与全局双层限流保护后端。
批量任务的部分失败处理
批量处理允许部分成功:记录每条状态(成功、失败、跳过),失败项设重试上限并归入死信;批次报告给出总量与原因分布。
响应缓存与语义缓存
对重复请求可缓存响应:精确缓存(同输入哈希)可靠;语义缓存(相似问题复用)要设保守阈值与隔离,避免跨用户串答。
长任务的异步化
超过同步窗口的任务转异步:创建任务返回 ID,客户端轮询或订阅回调;任务状态机管理排队、执行、完成、失败与取消。
审计日志字段设计
审计日志回答谁在何时对哪条提示做了什么:操作者、对象、动作、前后摘要、结果与来源;日志独立存储,权限收紧。
用户反馈收集与回流
设计低摩擦反馈入口(点赞、点踩、纠正提交),把反馈与请求链路关联;定期归类用于扩充评测覆盖,注意去标识与授权。
LLM 功能的值班手册
为线上 LLM 功能准备运行手册:常见故障(超时、限流、质量下滑、注入告警)对应检查步骤、应急开关与升级路径。
模板注册表与命名规范
模板集中登记、按 ID 引用,避免散落各处与复制分叉:命名体现领域与任务、带版本与状态,负责人与回归用例一并记录。
提示变更记录的写法
按 Keep a Changelog 风格记录每次提示变更:版本、日期、改动内容、动机与回归结论;让人能追溯为什么这个提示是现在这样。
提示资产目录与元数据
用目录登记全部提示资产:用途、变量、依赖、评测状态、负责人与最近验证时间;找模板、评影响、做审计都有统一入口。
历史截断策略对比
超出预算时的删减方式影响体验:按时间滑窗、按重要性保留、摘要替换各有取舍;无论哪种都要保住系统约束与最近一轮。
调用幂等性设计
网络抖动与重试会让同一请求到达两次:用幂等键把重复请求归并到一次执行;写操作先查后写或落去重表,回执可复用。
回退链设计
多模型回退链要定义顺序与条件:能力匹配、成本上限、区域冗余;每次切换记录原因,并定期演练整条链的有效性。
并发控制与排队
控制同时在途请求数:信号量限制并发,任务排队并设公平策略;高峰期宁可排队也不打垮上游,排队状态对用户可见。
数据保留与清理策略
明确各类数据的保留期与到期处理:会话记录、日志、评测样本、缓存分别设限;到期自动清理并留清理记录。
依赖固定与升级窗口
锁定 SDK、框架与工具链版本,在固定窗口升级:升级前跑回归与安全复测;锁文件与镜像摘要保证各环境一致。
模板片段复用与组合
把公共部分(角色设定、输出格式约束)抽成片段,通过包含组装生成完整模板;改动片段前评估全部引用方,防止连锁影响。
提示静态检查规则
用脚本对提示做发布前静态检查:占位符配对、变量登记、敏感串扫描、结构完整性;问题挡在上线之前,代价低于线上事故。
配置优先级与覆盖规则
多来源配置(默认、环境、租户、请求)需要明确优先级,防止互相覆盖出意外;规则写进文档,并在加载时打印生效值便于排查。
会话恢复与持久化
会话状态持久化后支持重连与换设备恢复:存结构化状态(摘要、实体表、未决事项)而非整段原始消息;恢复时校验版本与时效。