为什么测试工程师必须吃透 Prompt?
在 AI 大模型评测的过程中,北大万小军教授(中文对话评测领域权威)的一句话点透了核心:无边界的任务,无评测意义。
Prompt 就是大模型任务的「需求文档 + 测试用例」,是所有 AI 评测工作的前提:
- 没有合格的 Prompt,模型输出就没有稳定的边界,你无法判断输出是否符合预期
- 指令不清晰,模型回复一致性极差,批量评测结果完全无效
- 大部分的大模型 Bad Case,根源不是模型能力不行,而是 Prompt 写得不合格
一、Prompt 核心三要素(测试工程师专属解读)
Prompt 的核心三要素:角色设定、上下文管理、Token 机制,三者环环相扣。
1. 角色设定:无角色 = 无评测
角色设定,就是给大模型划定固定的行为边界,相当于写测试用例前,先明确「被测系统的需求边界、版本范围」。不设定角色,就像测一个系统,连需求文档都没有,根本无法判断输出是对是错,评测完全没有意义。
对 AI 评测的核心影响
- 角色缺失:模型输出风格、专业度、回复逻辑完全不可控,多次执行结果差异极大,无法做一致性校验
- 角色精准:模型输出有固定的规范和边界,多次执行结果稳定可对比,你的评测数据才有效
实战避坑
新手常犯错误:只给问题,不给角色。❌ 错误示例:用户投诉流量超了没收到提醒,该怎么处理✅ 正确示例
# 角色:中国移动10086官方客服
# 约束:全程礼貌耐心,不与用户争执,仅输出合规处理方案
# 任务:针对用户「流量超了未收到系统提醒,情绪激动要求退费」的投诉,输出标准处理话术
# 输出要求:分步骤输出,不超过300字
## Prompt 角色设定|黄金四要素 + 核心原则 + 避坑指南
### 一、角色设定黄金四要素
1. **角色名称**:精准身份定位,划定模型专业边界
1. **刚性约束**:明确能做 / 不能做,防违规、防幻觉、防越界
1. **核心任务**:告诉模型具体要完成的工作,锁定评测目标
1. **输出要求**:规定格式、长度、结构,保证输出可评测、可量化
### 二、核心原则
1. 身份精准原则:角色越具体,输出越稳定
1. 约束刚性原则:红线越清晰,评测越可靠
1. 任务匹配原则:角色与任务一致,不跑偏
1. 输出可测原则:标准化输出,便于自动化评测
### 三、避坑指南
1. 不使用泛化角色,避免输出无边界
1. 不写模糊约束,避免评测无统一标准
1. 不让角色与任务冲突,避免模型逻辑混乱
1. 不省略输出要求,避免结果无法量化
1. 不堆砌无关内容,避免核心指令被稀释
# 角色模板:AI 客服(逐句拆解)
## 完整模板(先整体看一遍)
# 角色:电商平台官方售后一线客服,工号DS001
# 刚性约束:
1. 仅处理本电商平台的订单售后、物流咨询、商品问题相关业务,非相关问题统一回复固定话术。
2. 不得承诺任何超出平台官方售后规则的退款、补偿、赔偿,所有解决方案必须合规。
3. 全程礼貌耐心,不得使用反问句、不得与用户争执、不得激化用户情绪。
4. 必须按“先安抚→再核对信息→最后给方案”的流程执行,不能跳步。
5. 不得编造、虚构不存在的信息、规则、政策。
# 核心任务:
处理用户的订单售后、投诉、退换货需求,给出标准、合规的处理话术。
# 输出要求:
1. 口语化,符合在线客服聊天场景。
2. 分步骤输出,每一步单独一段。
3. 单条回复不超过300字。
4. 必须给具体可执行方案,不空话。
## 极简逐句拆解
### 1. 角色:电商平台官方售后一线客服
- 作用:明确模型身份,固定输出专业边界
- 缺失影响:输出泛化、风格混乱,无法做一致性评测
### 2. 约束 1:仅处理平台订单售后、物流、商品问题,无关问题统一回复固定话术
- 作用:划定业务范围,防止模型答非所问
- 缺失影响:模型随意承接无关话题,评测场景失控
### 3. 约束 2:不承诺超官方规则的退款 / 补偿,输出严格合规
- 作用:规避违规承诺,降低业务风险
- 缺失影响:模型乱许诺补偿,评测结果无效且存在风险
### 4. 约束 3:全程礼貌耐心,不争执、不激化用户情绪
- 作用:统一服务风格,保证输出语气稳定
- 缺失影响:回复语气忽好忽差,一致性评测不通过
### 5. 约束 4:按「安抚情绪→核对信息→给出方案」流程执行,不跳步
- 作用:规范执行 SOP,贴合真实客服工作流程
- 缺失影响:回复无逻辑、跳步骤,不符合评测标准
### 6. 约束 5:不编造虚假规则、数据与政策
- 作用:杜绝模型幻觉,保证输出真实可信
- 缺失影响:虚构政策规则,评测数据完全失真
### 7. 核心任务:处理用户售后、投诉与退换货需求,输出标准合规话术
- 作用:明确模型执行目标,聚焦评测核心
- 缺失影响:模型任务不清晰,输出偏离需求
### 8. 输出要求(4 条)
- 作用:统一格式、长度与内容质量,便于批量评测与打分
- 缺失影响:输出格式杂乱、长短不一,无法量化评估
2. 上下文管理:管不好必出幻觉,直接导致评测失效
先纠正 90% 新手的核心误区
上下文 = 整个对话窗口里,你和模型说过的所有内容—— 包括历史所有提问、模型所有历史回复,再加上你当前的提示语,全部加起来才叫完整上下文。
对 AI 评测的核心影响
上下文过短(信息不足):模型缺少必要信息,只能瞎猜,直接出现幻觉,测试结果失真
上下文过长(无效内容太多):核心指令被淹没,模型偏离测试任务,输出完全跑偏,评测结果无效
上下文管理的核心原则
在「给足模型完成任务的必要信息」和「不稀释核心测试指令」之间找平衡,只保留和当前评测任务相关的内容,删掉所有无效废话。
3. Token 机制:AI 评测的绝对红线,碰了必翻车
Token 是大模型处理文本的最小计算单位,直接决定了你的上下文能装多少内容,是 AI 评测用例设计绝对不能碰的红线。
3 个核心知识点
- **极简换算规则(不用自己算,工具一键搞定)**中文:1 个汉字≈2 个 Token,标点、空格、换行都算 Token;英文:1 个单词≈1 个 Token。国内直接用「豆包 Token 计算器」、国际用 OpenAI 官方 Tokenizer,粘贴内容 10 秒出精准数值。
- 评测绝对红线每个大模型都有固定的「上下文窗口」(比如 4k、32k、128k Token),整个对话的总 Token 数,绝对不能超过窗口上限。一旦超了,模型会自动删掉最开头的内容(一般就是你写的角色设定、核心评测规则),直接导致模型忘了自己的身份和任务,输出完全失控,你的评测结果 100% 失真。
- 批量评测成本控制大模型 API 调用是按 Token 收费的,Token 越多,评测成本越高。写测试用例时,要在保证指令清晰的前提下,精简无效内容,控制评测成本。
二、可直接复制的 AI 评测常用 Prompt 模板
AI 评测专用 Prompt
# 角色:大模型评测工程师
# 约束:严格按照评测标准判断,仅输出「通过/不通过」+ 不通过原因
# 任务:判断模型回复是否符合「客服礼貌规范、合规处理用户投诉」的评测标准
# 输入:[用户投诉内容] + [模型回复内容]
# 输出要求:固定格式,结论前置,原因不超过100字
三、验证实验:上下文长短对模型输出一致性的影响
| 实验项 | 具体内容 |
|---|---|
| 固定核心测试点 | 10086 客服处理用户流量超额投诉的话术 |
| 唯一变量 | 上下文长度(约束条件多少) |
| 实验组 1(短上下文) | 你是10086客服,用户投诉流量超了没收到提醒,情绪激动,给出处理话术 |
| 实验组 2(长上下文) | 上面模板 1 的完整约束版 Prompt |
实验步骤
-
把两个 Prompt 分别输入大模型,各执行 3 次
-
记录每次输出,对比两个核心评测指标(万小军教授对话一致性评测核心指标):
- 任务完成度:是否符合客服角色、完成投诉处理核心任务
- 输出一致性:3 次执行的输出,内容、风格、规则遵守度是否稳定
实验结论
- 短上下文组:3 次输出差异极大,甚至出现违规承诺、和用户争执的内容,一致性极差,完全无法用于评测
- 长上下文组:3 次输出高度一致,严格遵守所有规则,完全符合任务要求,评测结果稳定有效
四、记忆口诀 + 避坑指南
记忆口诀
角色定边界,上下文定任务,Token 定上限,三个都管好,Prompt 才靠谱,评测才有效
新手必避的 3 个坑
- 不写角色直接提问题,导致输出无边界,评测无效
- 上下文堆大量无关内容,稀释核心指令,导致模型任务跑偏
- 不关注 Token 上限,导致上下文被截断,核心规则丢失,输出失控