跳到主要内容

Anthropic Prompt Engineering Tutorial — 架构与原理

30 秒导读: 这是 Anthropic 官方的交互式提示工程课程。它不是一个库,而是一套 Jupyter notebook:每章讲一个提示技巧,配一段可运行的 Claude 调用示例,再附自动评分的练习 ——你改 prompt,代码当场判你过没过。读完你能从零写出一个生产级的复杂提示。

1. 这是什么(零基础也能懂)

一句话定义: 一套手把手教你跟 Claude 说话的官方课程,用 Jupyter notebook 承载, 每个技巧都能立刻在 notebook 里运行、验证。

解决什么问题 / 给谁用: 假设你刚拿到 Claude 的 API key,会写 messages.create(...), 但发现 Claude 答得不对、不听话、瞎编、格式乱。问题往往不在模型,而在你的提示写得不够好。 这门课就是把「怎么写提示」拆成 9 个可练习的技巧,让一个新手按顺序走完就上手。

它教你做什么(能力清单):

你学会
1Messages API 的最小结构 + system prompt
2把指令写得清楚直接
3给 Claude 分配角色(role prompting)
4XML 标签把「数据」和「指令」隔开
5让 Claude 按格式输出 + prefill 替 Claude 起头
6让 Claude 出声逐步思考(chain of thought)
7few-shot 示例教 Claude 模仿
8抑制幻觉(给台阶下、先找证据)
9把全部技巧拼成一个 10 元素复杂提示
附录链式提示 / 工具调用 / 检索(RAG)

用起来什么样: 整门课的「Hello World」就是一个叫 get_completion 的辅助函数—— 你只往 PROMPT 里填字,运行单元格,Claude 的回答就打印在下面。

# 示意,非源码 —— 课程里每个例子都长这样
import anthropic
client = anthropic.Anthropic(api_key=API_KEY)

def get_completion(prompt, system_prompt=""):
message = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=2000,
temperature=0.0, # 课程全程用 0,结果近似确定,方便对照
system=system_prompt,
messages=[{"role": "user", "content": prompt}],
)
return message.content[0].text

print(get_completion("Hi Claude, how are you?"))

真实定义见 Anthropic 1P/01_Basic_Prompt_Structure.ipynb(setup 单元格里的 get_completion)。

一句话直觉: 把 Claude 当成一个聪明但毫无背景、刚上岗第一天的新同事。 它只知道你字面上告诉它的东西。你交代得越清楚、越有结构、越给例子,它干得越好—— 这门课的所有技巧,本质都是这条直觉的展开。

本节不出现底层细节。目标:完全没用过 Claude 的人也知道「这门课是干嘛的」。

2. 顶层全景(它大概怎么转)

课程不是「库」,而是「评分闭环」

它没有运行时、没有中央循环。真正的「源码」是 notebook 单元格里的提示字符串 + 评分函数。 每个练习是一个小闭环:

你改这里


┌──────────────┐ prompt ┌──────────┐ 回答 ┌────────────────┐
│ PROMPT / │ ──────────▶ │ Claude │ ──────▶ │ grade_exercise │
│ SYSTEM_PROMPT│ │ (Haiku) │ │ (正则判过没过) │
└──────────────┘ └──────────┘ └────────┬───────┘
▲ │
└─────────────── 没过就回去改 prompt ◀────────────┘

这个闭环是这门课的核心教学法:你不是读「应该怎么写」,而是被一个正则逼着写到对为止。 例如第 1 章练习的判分函数,就是要求回答里同时含 1 2 3 (Anthropic 1P/01_Basic_Prompt_Structure.ipynbgrade_exercise)。

三个仓库目录(同一课程的三种 SDK 版本)

目录跑在哪调用方式
Anthropic 1P/Anthropic 第一方 APIanthropic.Anthropic(...)(本系列文档以此为准)
AmazonBedrock/anthropic/AWS Bedrock同上的 SDK,指向 Bedrock
AmazonBedrock/boto3/AWS Bedrock原生 boto3 调用

三者教学内容基本一致(README 声明练习/解答相同),只是换了调用样板。一处可见差异:两个 Bedrock 目录 多出一个 10_3 Empirical Performance Evaluations 附录,并把检索附录顺延编号为 10_4(共 4 个附录), 而 Anthropic 1P/ 只有 10.1/10.2/10.3 三个附录。本系列文档以 Anthropic 1P/ 为准。 见根 README.mdAmazonBedrock/README.md

难度三段式(也是本文档的三章)

初级(ch1-3)中级(ch4-7)高级(ch8-9 + 附录)
会调 API结构化输入/输出让它别瞎编
清楚直接prefill 控制起头10 元素复杂提示
分配角色让它出声思考链式 / 工具 / 检索
给示例

主线走一遍(高层): 第 1 章让你会调用;第 2-3 章教你把话说清楚 + 给角色; 第 4-7 章是工程核心——用 XML 立边界、用 prefill 卡输出、用 CoT 提准确率、用示例定格式; 第 8 章教你对付幻觉;第 9 章把这些拼成一个真实可上线的复杂提示;附录走向 多次调用编排(链式 → 工具 → 检索)。

3. 怎么读这套文档

按顺序读三章即可,每章对应一个难度段:

  • 01-basics.md —— 你从「不会调」到「会把话说清楚、会给角色」。这章最适合零基础。
  • 02-structure-and-thinking.md —— 工程核心四件套:XML 隔离、prefill、出声思考、few-shot。 想真正用好 Claude,这章是重点。
  • 03-reliability-and-complex.md —— 抑制幻觉 + 10 元素复杂提示模板 + 三个附录(链式/工具/检索)。 想上生产、想理解 agent 雏形,看这章。

每章末尾都有「代码地图」,直接告诉你该打开哪个 notebook、grep 哪个符号。

4. 巧妙之处(这门课设计上值得学的)

这门课本身的教学设计就有值得借鉴的地方:

  • 自动评分把「主观好坏」变成「客观过/不过」。 提示工程最难教的是「写得好不好」, 这门课用正则判分(如要求输出恰好等于 "Michael Jordan")把它变成一个有反馈的游戏。
  • 全程 temperature=0 让示例结果近似确定,你才能把「改了 prompt → 结果变了」 归因到你的改动,而不是随机性。这是教学严谨性的关键设计。
  • 故意留 bug 当教材。 第 4 章故意保留拼写错误和误导性连字符,让你亲眼看到 Claude 对小细节的敏感——「你写得糙,它答得糙」。

5. 边界与局限(诚实)

  • 不是 API 参考手册。 它教技巧和直觉,参数细节要看官方文档(notebook 里到处是链接)。
  • 工具调用用的是 2024 年的旧格式。 附录 10.2 教的 <function_calls> XML 格式, notebook 自己在「Tool use roadmap」一节就声明会被更流畅的格式取代——今天的官方 工具调用已经是结构化 tools 参数。把 10.2 当成「工具调用的原理拆解」读,而非当前 API 用法。
  • 模型是 Claude 3 Haiku(2024-03)。 例子里「Claude 会犯的错」很多在更新的模型上已不再出现; 技巧仍然有效,但「触发错误的反例」未必能复现。

6. 横向对比(ai-frontier-reference 同库)

这套课在「prompt-authority」区里是最入门、最动手的一支:它教人怎么对一个通用模型写提示。 库里其他更偏「系统怎么自动组装提示 / 怎么把提示工程化进 agent 循环」的项目, 可以把本课当作第一性原理读物——先在这里建立「清晰指令 + XML 边界 + prefill + CoT + 示例」 这套词汇,再去看上层系统如何把它们自动化。

7. 代码地图(导航索引)

主题文件关键符号
课程总览 / 目录README.md
API 最小调用 + system promptAnthropic 1P/01_Basic_Prompt_Structure.ipynbget_completion, SYSTEM_PROMPT
所有练习的提示/判分0N_*.ipynbPROMPT, grade_exercise
练习提示语Anthropic 1P/hints.pyexercise_*_hint, exercise_*_solution
10 元素复杂提示Anthropic 1P/09_Complex_Prompts_from_Scratch.ipynbTASK_CONTEXT, PREFILL, PROMPT 拼接段
工具调用系统提示Anthropic 1P/10.2_Appendix_Tool Use.ipynbsystem_prompt_tools_general_explanation
Bedrock 镜像版AmazonBedrock/anthropic/, AmazonBedrock/boto3/同名 notebook