提示工程精要

提示工程精要:把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代,通过架构、轨迹和故障重放完成验收。

学习目标

  • 能解释“提示工程精要”如何把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代
  • 能区分系统指令、任务合同、少样本示例、输出合同、提示评测,并指出控制权、数据与副作用边界
  • 能固定输入与版本,沿以下证据定位首个分叉:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异
  • 能注入“把用户数据拼进系统指令区,导致数据中的命令覆盖任务合同”,完成阻断、恢复、复位和同输入重放

来源、课程编排与适用边界

“提示工程精要”以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 / 3

1. 架构与复杂度边界

在“提示工程精要”中切换简单基线、受控工作流与自主循环,先预测“把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代”在哪个阶段需要增加控制权,再比较延迟、成本、可观测性和自主性。

Architecture decision laboratory

提示工程精要

把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代

复杂度档位

不变量:提示中的优先级、数据边界和成功标准必须可读、可测试且不依赖隐藏共享背景

受控工作流:只激活能够由收益证明的阶段1任务合同2指令分区3精选示例4输出约束5评测迭代蓝色表示当前方案承担的责任;虚线阶段仍留在系统边界外。关键证据:提示版本、分区内容…
自主性46
延迟52
成本48
可观测78

最小可运行实现

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:恢复闭环。 怎样证明“把用户数据拼进系统指令区,导致数据中的命令覆盖任务合同”已经修复?

本章回顾

  • “提示工程精要”的主问题是把系统指令、任务输入、示例和输出合同分层组织,并用失败样本驱动迭代。
  • 核心不变量是提示中的优先级、数据边界和成功标准必须可读、可测试且不依赖隐藏共享背景。
  • 首要反例是把用户数据拼进系统指令区,导致数据中的命令覆盖任务合同。
  • 最小证据包包含提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。

名词解释

本章出现的专业名词,用大白话再讲一遍。

系统指令

定义角色、边界和长期行为的高优先级上下文。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。

任务合同

本次输入、期望输出、限制条件和成功标准。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。

少样本示例

用少量代表性输入输出展示期望行为。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。

输出合同

规定结果结构、字段和不允许出现内容的约束。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。

提示评测

在冻结数据集上衡量提示版本行为的过程。在“提示工程精要”中必须能按以下证据重新定位:提示版本、分区内容、测试样本、原始响应、评分维度与回归差异。

阅读导航

← 你的第一个最小 Agent · 上下文窗口:预算、压缩与裁剪 →

讨论

评论区加载中…