返回

01-现代提示词工程总论.md

9.2 KB · MD · 2026-06-18 10:07

现代提示词工程总论

日期:2026-06-10

一、直觉

提示词工程不是“写一句神奇的话让 AI 变聪明”。

更准确地说,提示词工程是在给模型写一份任务说明书。模型越强,越不需要复杂咒语;但它仍然需要知道你要什么、基于什么材料回答、用什么格式输出、什么算合格、遇到不确定信息时如何处理。

一句成熟的判断是:

好提示词不是更长,而是更明确、更可验证、更少歧义。

本讲常见术语先按下面理解,详细定义和更多例子见 00.5-术语词典与最小用例

术语 直觉解释 最小例子
任务规格 把“想让 AI 做什么”写成可执行说明 目标、输入、约束、输出格式、验收标准
zero-shot 不给示例,直接提要求 “请把下面文章总结成 5 条”
few-shot 给少量示例让模型模仿 给 2 个“原文 -> 合格摘要”的例子
分隔符 / XML 标签 把材料和指令隔开,减少混淆 <原文>...</原文>
JSON Schema 程序能检查的 JSON 结构规则 字段必须有 titlerisk_level
思维链 模型内部推理细节 不要求完整展示,改要“结论、依据、核查点”

二、结构化概念

现代提示词工程可以拆成六层。

1. 任务目标

先说明你要模型完成的最终任务。

差的写法:

帮我看看这个判决书。

好的写法:

请对以下民事判决书做结构化总结,重点提取案号、当事人、诉讼请求、法院查明事实、争议焦点、裁判理由和判决结果。

2. 角色与专业标准

角色不是越夸张越好。成熟写法是让角色服务于任务标准。

差的写法:

你是全世界最厉害的律师。

好的写法:

你是一名严谨的法律文书分析助手。只基于原文归纳,不补充案外事实,不提供未经原文支持的结论。

3. 上下文与输入边界

模型不知道哪些内容是材料,哪些内容是指令。要用明显边界隔开。

<判决书全文>
这里粘贴原文
</判决书全文>

长文档任务尤其要注意:材料、问题、输出格式要分区。不要把要求和正文混在一起。

4. 约束条件

约束要具体,避免空泛。

- 只基于原文。
- 原文未载明的信息写“原文未载明”。
- 金额、日期、案号、法院名称必须尽量按原文摘录。
- 不要把“原告诉称”“法院查明”“法院认为”混为一谈。

5. 输出格式

输出格式越稳定,后续越容易复用。总结类任务适合用标题和条目;程序处理类任务适合 JSON Schema 或表格;法律分析类任务适合按文书结构输出。

请按以下结构输出:
一、案件基本信息
二、案件背景
三、诉讼请求
四、被告答辩
五、法院查明事实
六、争议焦点
七、法院裁判理由
八、判决结果
九、后续注意事项

6. 质量标准与自检

不要只说“写得好一点”。要告诉模型怎么检查。

输出前请自检:
- 是否遗漏判决主文。
- 是否遗漏金额、日期、履行期限。
- 是否把一方主张误写成法院认定。
- 是否出现原文没有支持的推断。

三、先进但成熟的核心方法

1. 先定义成功标准,再改提示词

成熟提示词工程的第一步不是写提示词,而是定义“什么叫好”。例如判决书总结任务,可以设置这些检查项:

  • 案件基本信息完整。
  • 诉讼请求逐项列出。
  • 裁判理由和判决结果分开。
  • 金额、日期没有错。
  • 没有原文外推断。

没有成功标准,就无法判断提示词是否变好。

2. 先试 zero-shot,再加 few-shot

现代强模型通常不需要一开始就塞很多例子。先用清晰直接的任务说明测试。如果输出格式不稳定、风格不稳定、分类边界不清,再加入 2-5 个高质量示例。

示例要覆盖真实边界情况,而不是只给最简单的样例。

3. 对推理模型少用“逐步思考”

新一代推理模型会在内部完成推理。很多官方实践都建议:不要机械要求模型展示完整思维链。更好的写法是要求它给出“结论、依据、检查过程、关键不确定点”。

推荐:

请给出结论,并列出支持结论的关键依据。不要展开无关推理过程。

不推荐:

请一步一步展示你的全部思考过程。

4. 用分隔符管理复杂上下文

当提示词里同时有任务、规则、材料、样例、输出格式时,使用 Markdown 标题或 XML 标签能显著减少误解。

# 任务
...

# 规则
...

<输入材料>
...
</输入材料>

# 输出格式
...

5. 长文档任务要做“上下文工程”

长文档总结的关键不是让模型“认真读”,而是明确让它如何处理材料。

成熟做法:

  • 把原文放入明确标签。
  • 问题和输出要求放在材料之后。
  • 要求模型区分“原文事实”和“分析归纳”。
  • 对关键结论要求给出原文位置或原文依据。
  • 文档特别长时,先分段提取,再合并总结。

6. 需要稳定结构时,不只靠自然语言

如果结果要进入程序、表格、数据库或自动流程,优先使用结构化输出、JSON Schema、函数调用或表单字段。自然语言提示词可以提高质量,但不能替代机器可校验的输出约束。

7. Agent 类任务要写工作流

让 AI 操作文件、写代码、查资料、调用工具时,只说“帮我完成”不够。要写清楚:

  • 先读哪些信息。
  • 什么时候计划。
  • 什么时候执行。
  • 什么时候验证。
  • 什么时候停下来问用户。
  • 如何汇报结果。

例如:

你是一个代码助手。请先阅读相关文件,确认现有模式,再实现最小必要改动。修改后运行相关测试。如果测试无法运行,说明原因和剩余风险。不要改动无关文件。

8. 提示词也要版本管理

生产环境或长期使用的提示词,应该像代码一样管理:

  • 记录版本。
  • 记录修改原因。
  • 保存失败样例。
  • 建立小型测试集。
  • 每次改提示词后跑同一组样例对比。

四、小例子:把普通请求升级成成熟提示词

普通请求:

帮我总结这份判决书。

成熟版本:

你是一名严谨的法律文书分析助手。请只基于我提供的民事判决书原文进行结构化总结,不补充案外事实,不给出未经原文支持的法律结论。

要求:
1. 原文未载明的信息写“原文未载明”。
2. 金额、日期、案号、法院名称、当事人名称必须尽量按原文摘录。
3. 区分原告诉称、被告辩称、法院查明、法院认为、判决结果。
4. 如果存在多个请求或多个被告,请分别列出。
5. 输出前检查是否遗漏判决主文、履行期限和费用承担。

请按以下结构输出:
一、案件基本信息
二、案件背景
三、原告诉讼请求
四、被告答辩意见
五、法院查明事实
六、争议焦点
七、法院裁判理由
八、判决结果
九、对当事人的影响
十、后续注意事项
十一、150 字以内极简摘要

<判决书全文>
在这里粘贴原文
</判决书全文>

这份提示词好在哪里:

  • 任务清楚:结构化总结民事判决书。
  • 边界清楚:只基于原文。
  • 风险控制清楚:未载明就写未载明。
  • 输出结构清楚:按判决书关键部分拆分。
  • 自检标准清楚:检查主文、期限、费用。

五、常见误区

误区 1:提示词越长越好

不是。长提示词如果充满重复、冲突和空话,反而会降低效果。好的提示词应该信息密度高。

误区 2:角色越厉害越好

不是。“世界顶级专家”通常不如“按什么标准完成任务”有效。

误区 3:所有任务都要让模型一步一步思考

不是。对推理模型,过度要求展示思维过程可能无效甚至干扰。应该要求它输出结论、依据和核查点。

误区 4:靠提示词解决所有问题

不能。资料缺失要补资料,实时信息要联网或检索,稳定 JSON 要用结构化输出,复杂流程要用工具和评估。

误区 5:只写禁止项

“不要乱写、不要啰嗦、不要遗漏”不够。要告诉模型应该怎么写、按什么结构写、怎么判断完整。

六、理解检查

请你下次可以回答这 5 个问题:

  1. 为什么说提示词工程不是“咒语”,而是“任务规格设计”?
  2. 一个成熟提示词通常包含哪六个部分?
  3. 为什么长文档任务要使用分隔符或 XML 标签?
  4. 为什么不建议机械要求推理模型展示完整思维链?
  5. 如果 AI 总是输出格式不稳定,你会优先改提示词的哪个部分?

七、下一步

下一讲建议学习:01.5-AI辅助Prompt开发工作流.md。先学习怎样让 AI 帮你把模糊需求变成可测试 Prompt,再进入 02-从提示词到上下文工程.md,把单条 Prompt 升级为完整上下文设计。