提示工程精要
提示工程精要:把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代,通过架构、轨迹和故障重放完成验收。
学习目标
- 能解释“提示工程精要”如何把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代
- 能区分系统指令、任务合同、少样本示例、输出合同、提示评测,并指出控制权、数据与副作用边界
- 能固定输入与版本,沿以下证据定位首个分叉:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异
- 能注入“把用户数据拼进系统指令区,导致数据中的命令覆盖任务合同”,完成阻断、恢复、复位和同输入重放
来源、课程编排与适用边界
“提示工程精要”以Anthropic 公开全文《Building effective agents》为总纲,并用Anthropic《Effective context engineering for AI agents》核对本单元机制;涉及 MCP 的控制权边界再由MCP 2025-06-18 官方规范交叉检查。
这不是 Anthropic 出版的“19 章教材”。平台把公开文章、官方工具文档与协议规范重组为 19 个应用单元;下列 152 个节点是站内课程地图,不冒充原文目录。正文、代码、图表、实验和练习均为独立教学重写;产品接口、模型行为或协议版本变化时必须重新验证。
本单元的八个课程坐标
- 提示工程精要:这是“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”的第 1 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 先打个比方:这是“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”的第 2 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 第一个概念:提示工程,调的是「喂给模型的那段话」:这是“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”的第 3 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 第二个概念:清晰具体——同样一句话,模糊和具体差到天上:这是“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”的第 4 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 第三个概念:少样本——与其费劲描述,不如直接给个范例:这是“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”的第 5 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 第四个概念:思维链——让它先一步步想,再给答案:这是“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”的第 6 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 把四招连起来:系统提示 vs 单次任务提示:这是“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”的第 7 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
- 动手看:一个提示怎么一步步「精化」到能用:这是“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”的第 8 个课程坐标;必须进入机制解释、实验观察或练习证据,不能只停在目录。
术语与运行合同
↡系统指令:定义角色、边界和长期行为的高优先级上下文;在“提示工程精要”中按以下证据核对:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。、↡任务合同:本次输入、期望输出、限制条件和成功标准;在“提示工程精要”中按以下证据核对:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。、↡少样本示例:用少量代表性输入输出展示期望行为;在“提示工程精要”中按以下证据核对:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。、↡输出合同:规定结果结构、字段和不允许出现内容的约束;在“提示工程精要”中按以下证据核对:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。、↡提示评测:在冻结数据集上衡量提示版本行为的过程;在“提示工程精要”中按以下证据核对:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。。
本页不变量是:提示中的优先级、数据边界和成功标准必须可读、可测试且不依赖隐藏共享背景。任何“成功”结论都要保存以下证据:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异,模型生成的计划或自信不能替代环境事实。
关键机制与可推翻实验
正确高度介于僵硬与含糊之间
逐条硬编码所有路径会脆弱,只有口号又无法指导模型;应给清晰启发式和边界。
动手验证:让同一任务分别使用过细、过宽和适中指令,比较边界失败。
上下文分区表达信任边界
背景、指令、工具说明和用户数据应有明确分隔,避免内容角色混淆。
动手验证:在用户数据中放置伪指令,验证它不会改变系统合同。
示例要少而有代表性
堆满边角案例会挤压注意预算;应覆盖正常、边界与拒绝三类典型行为。
动手验证:删除冗余示例后重跑冻结集,比较正确率与 token 成本。
失败样本决定下一次改动
不要凭单次漂亮回答继续加句子;每次改动应绑定一个已观测失败簇。
动手验证:保存版本 A/B 的逐样本评分,确认改善没有制造新回归。
先预测,再操作三类证据
1. 架构与复杂度边界
在“提示工程精要”中切换简单基线、受控工作流与自主循环,先预测“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”在哪个阶段需要增加控制权,再比较延迟、成本、可观测性和自主性。
Architecture decision laboratory
提示工程精要
把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代
不变量:提示中的优先级、数据边界和成功标准必须可读、可测试且不依赖隐藏共享背景
最小可运行实现
const prompt = [
section("background", trustedBackground),
section("instructions", taskContract),
section("tool_guidance", toolRules),
section("examples", canonicalExamples),
section("user_data", untrustedInput),
].join("\n\n");
const result = await evaluatePrompt(prompt, frozenDataset);这段切片只暴露“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”的最小运行合同。交付版本还要补齐超时、密钥隔离、结构化日志、幂等和批量评测;缺少提示版本、分区内容、测试样本、原始响应、评分维度与回归差异时,代码能运行也不代表本章结论成立。
练习与答案
练习
问题 1:最小证明。 怎样用最少样本证明“提示中的优先级、数据边界和成功标准必须可读、可测试且不依赖隐藏共享背景”?
问题 2:课程覆盖。 提示工程精要、先打个比方、第一个概念:提示工程,调的是「喂给模型的那段话」、第二个概念:清晰具体——同样一句话,模糊和具体差到天上、第三个概念:少样本——与其费劲描述,不如直接给个范例、第四个概念:思维链——让它先一步步想,再给答案、把四招连起来:系统提示 vs 单次任务提示、动手看:一个提示怎么一步步「精化」到能用如何进入可操作验证?
问题 3:恢复闭环。 怎样证明“把用户数据拼进系统指令区,导致数据中的命令覆盖任务合同”已经修复?
本章回顾
- “提示工程精要”的主问题是把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代。
- 核心不变量是提示中的优先级、数据边界和成功标准必须可读、可测试且不依赖隐藏共享背景。
- 首要反例是把用户数据拼进系统指令区,导致数据中的命令覆盖任务合同。
- 最小证据包包含提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 系统指令
定义角色、边界和长期行为的高优先级上下文。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。
- 任务合同
本次输入、期望输出、限制条件和成功标准。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。
- 少样本示例
用少量代表性输入输出展示期望行为。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。
- 输出合同
规定结果结构、字段和不允许出现内容的约束。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。
- 提示评测
在冻结数据集上衡量提示版本行为的过程。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。