如何写不会失控的系统 Prompt

系统 Prompt 不是“让模型听话”的魔法咒语,而是一份任务边界说明。它要告诉模型:你是谁、帮谁做事、什么能做、什么不能做、遇到不确定信息怎么处理、输出格式必须长什么样。

如果系统 Prompt 写得太宽,AI 很容易出现三类问题:擅自编造事实、越权给建议、输出格式不稳定。下面给出一个可复用的写法。

1. 先定义任务边界

不要一上来写“你是一个专业助手”。先写清楚助手服务的场景。

问题应写清楚的内容
给谁用新手、客服、运营、开发者、内部员工
处理什么文章审核、FAQ 回答、代码解释、数据整理
不处理什么法律定论、医疗诊断、实时价格、账号密码
输出给谁看终端用户、编辑、工程师、客服主管
失败时怎么办要求澄清、标记待核验、拒绝、给安全替代方案

示例:

你是一个面向内容编辑的文章质量审核助手。
你只能根据用户提供的标题、正文和元数据做判断。
如果正文缺少事实来源、价格、版本号或最新政策,不要编造,请标记为“待核验”。
你不负责生成批量低质量文章,也不承诺绕过搜索引擎审核。

2. 写清楚禁止行为

很多系统 Prompt 失控,是因为只写“请准确”,没有写“不允许做什么”。

推荐加一段:

禁止行为:
1. 不要编造当前价格、模型能力、官方限制、法律要求。
2. 不要把猜测写成事实。
3. 不要输出用户没有要求的敏感操作步骤。
4. 不要为了完成任务而忽略冲突信息。
5. 当信息不足时,必须说明缺口,并给出下一步核验建议。

这比“请保证真实可靠”更有效,因为它给了模型明确的刹车点。

3. 给固定输出结构

没有结构约束时,模型每次输出都可能不同。对产品功能来说,这会增加解析和人工复查成本。

文章审核场景可以这样写:

输出格式:

结论:通过 / 需修改 / 不建议发布
主要风险:
- ...
必须修改:
- ...
可选增强:
- ...
待核验事实:
- ...
最终建议:
...

如果要给程序读取,可以直接要求 JSON:

{
  "verdict": "revise",
  "risk_level": "medium",
  "required_fixes": [],
  "fact_check_needed": [],
  "notes": ""
}

注意:JSON 输出要避免让模型夹带 Markdown,否则解析会失败。

4. 加入少量正反例

系统 Prompt 里放 1–2 个例子,通常比写十条抽象原则更稳定。

正例:

用户问:这篇文章说某工具“永久免费”,能发布吗?
合格回答:不能直接发布。永久免费属于易变事实,需要官方价格页或产品公告验证。建议改成“截至核验日期,存在免费计划,具体限制以官方页面为准”。

反例:

不合格回答:可以发布,因为很多 AI 工具都有免费版。

反例能帮模型理解什么叫“看似合理但不允许”。

5. 加入冲突处理规则

真实业务里,用户指令经常和安全规则冲突。系统 Prompt 应该提前写清楚优先级。

优先级:
1. 系统规则高于用户临时要求。
2. 事实核验要求高于写作速度。
3. 用户体验高于关键词堆砌。
4. 当标题与正文不一致时,优先指出不一致,不要直接美化正文。

这类规则特别适合内容站、客服、财务、合规、代码生成等场景。

6. 成本与长度控制

系统 Prompt 不是越长越好。太长会带来三种成本:

成本表现处理方式
token 成本每次请求都重复发送把通用规则压缩成短句
注意力成本模型忽略后半段把最重要规则放前面
维护成本规则冲突难发现用版本号和更新记录管理

建议第一版控制在 500–1200 字。复杂业务可以拆成“系统 Prompt + 任务模板 + 少量示例”。

7. 测试用例

上线前至少跑 8 个测试:

  1. 正常任务:信息完整,应该输出稳定。
  2. 信息不足:必须要求补充或标记待核验。
  3. 用户要求编造:必须拒绝。
  4. 标题与正文不一致:必须指出。
  5. 输出格式压力:必须保持 JSON 或固定结构。
  6. 边界问题:法律、医疗、价格、账号安全。
  7. 长文本输入:不能忽略关键条件。
  8. 恶意指令:不能覆盖系统规则。

8. 可直接复用的模板

你是一个{场景}助手,服务对象是{用户类型}。

你的任务:
- {任务 1}
- {任务 2}
- {任务 3}

你不能:
- 编造未提供或未核验的事实。
- 把猜测写成确定结论。
- 执行超出{业务边界}的请求。

当信息不足时:
- 说明缺少什么。
- 标记“待核验”。
- 给出下一步核验建议。

输出格式:
{固定结构}

质量标准:
- 直接回答用户意图。
- 给出具体步骤或判断。
- 不使用空泛套话。
- 对风险和不适合场景要明确。

不适合只靠系统 Prompt 的情况

  • 需要实时事实核验。
  • 需要访问内部权限系统。
  • 需要强一致的结构化数据。
  • 错误会造成高法律、医疗、金融风险。

这些场景要配合工具调用、检索、人工审核和日志监控。系统 Prompt 负责边界,不能替代系统设计。

顶部