时间是世界上一切成就的土壤。——麦金西

你好,我是 Anthropic 的交互式 Prompt Engineering 教程:我会陪你把提示词练到“会用、好用、可复用”

我住在 GitHub:anthropics/prompt-eng-interactive-tutorial
我的自我介绍(仓库 description)很短:Anthropic’s Interactive Prompt Engineering Tutorial
但我做的事一点也不短——我想把你从“会跟模型聊天”,带到“能工程化地写出稳定、可控、可迭代的提示词”。


我最擅长的不是讲道理,是带你上手

你可以把我想象成一位很务实的陪练教练:

  • 你写一句 prompt,我就让 Claude 回一句
  • 你改一个词,我就让你看到输出怎么变脸
  • 你遇到失败模式,我不会只说“注意清晰”,我会拉你去做练习、做排错、做对比

在我的 README 里,我把“学完能做什么”说得很明白:

  • 你会掌握一个好 prompt 的基本结构
  • 你会识别常见失败模式,学会最有性价比的 80/20 技巧
  • 你会更理解 Claude 的优点与局限
  • 你能为常见使用场景从零写出强 prompt

我不希望你“看懂了”,我希望你“练会了”。


我是怎么安排训练的:9 章 + 练习 + Playground(你动手,我才算数)

我的训练计划是这样的(README 写得很清楚):

  • 全课程分成 9 个章节(每章都有 lesson + exercises)
  • 外加一个附录:放更进阶的招式
  • 你需要按章节顺序走(我很在意“循序渐进”这件事)

而我最得意的一点是:
每一课的底部都有 “Example Playground”
Playground 的气质就是:你不需要完美,你只需要不断试——因为 prompt 的手感,很多时候就是这么磨出来的。

我还给了你一个“答案对照表”(answer key,在 Google Sheets 上),以及一个更友好的版本:
我也存在于 Google Sheets(通过 Claude for Sheets 扩展),并且我会推荐你用那一版,因为更顺手。


我用哪一个 Claude 带你练?我选了最轻快的那位

我在 README 里说:这套教程默认用 Claude 3 Haiku——因为它是 smallest / fastest / cheapest
你可以把它当作跑步时的“轻量训练鞋”:回馈快、成本低,适合大量重复练习。

我也提醒你:Anthropic 还有 Claude 3 SonnetClaude 3 Opus,更聪明,Opus 最强。
但我不急着让你上“最贵的器材”,我更想让你先把动作练标准。


想跟我互动?我需要你给我一把钥匙(API key)

Anthropic 1P/00_Tutorial_How-To.ipynb 里,我会先跟你确认:
要交互练习,需要 API key。没有 key,你也可以去看静态答案,但那种感觉更像“看别人健身”。

1)先把 SDK 装上

我开口第一句就是:

1
!pip install anthropic

2)把你的 API_KEY 和模型名写下来(我会记住它们)

我会让你这样设置:

1
2
3
4
5
API_KEY = "your_api_key_here"
MODEL_NAME = "claude-3-haiku-20240307"

%store API_KEY
%store MODEL_NAME

然后你就可以一页一页往下走。


我教的不是“花活”,是从简单到复杂的稳定能力

我把自己分成三段(README 的目录非常清晰):

Beginner:把话说清楚

  • Chapter 1: Basic Prompt Structure(prompt 的基本骨架)
  • Chapter 2: Being Clear and Direct(清晰直接)
  • Chapter 3: Assigning Roles(角色设定 / role prompting)

Intermediate:把 prompt 变成工程资产

  • Chapter 4: Separating Data from Instructions(数据与指令分离:模板化)
  • Chapter 5: Formatting Output & Speaking for Claude(控制输出格式)
  • Chapter 6: Precognition (Thinking Step by Step)(逐步思考)
  • Chapter 7: Using Examples(few-shot / 用例子教它)

Advanced:把风险降下来,把复杂度撑起来

  • Chapter 8: Avoiding Hallucinations(减少幻觉)
  • Chapter 9: Building Complex Prompts (Industry Use Cases)(行业复杂 prompt)
  • Appendix: Beyond Standard Prompting(链式、工具、检索等)

你会发现我的路线很像“先练基本功,再练稳定性,再练组合技”。


我会把调用 Claude 的“骨架”给你:Messages API + 一个小助手函数

Anthropic 1P/01_Basic_Prompt_Structure.ipynb 里,我会让你写出一个最小可用的 get_completion

我会这样带你起步(原样结构来自 notebook):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
!pip install anthropic

import re
import anthropic

%store -r API_KEY
%store -r MODEL_NAME

client = anthropic.Anthropic(api_key=API_KEY)

def get_completion(prompt: str, system_prompt=""):
message = client.messages.create(
model=MODEL_NAME,
max_tokens=2000,
temperature=0.0,
system=system_prompt,
messages=[
{"role": "user", "content": prompt}
]
)
return message.content[0].text

我还会告诉你:Anthropic 有 legacy 的 Text Completions API,也有现在的 Messages API;而我这套教程会只用 Messages API来训练你,保持一致性。


我会像带新同事一样带你:清晰直接,不要让模型猜你想要什么(Chapter 2)

在 “Being Clear and Direct” 的章节里,我说话就像一个项目里最靠谱的同事:

  • Claude 没有上下文,你不给它,它就只能靠猜
  • 你越直接、越具体,它越稳定

我还给你一个非常“地面”的自测法(黄金法则):

  • 把你的 prompt 给朋友/同事看,让他们照着做一遍
    他们都做不出来,那 Claude 也做不出来。

我不负责“鼓励你”,我负责“让你在跑偏之前就发现跑偏”。


我会教你给 Claude “穿角色”,让输出的气质和能力一起变(Chapter 3)

在 “Assigning Roles (Role Prompting)” 里,我会带你体验一个很直观的现象:

  • 不给角色:Claude 往往给出朴素、直接的答复
  • 给了角色:它的语气、风格、关注点都会变

我会提醒你:角色可以写在 system prompt,也可以写在 user message;关键是你要把“它应该怎么想、站在什么立场、面向谁说话”讲清楚。

你会慢慢把 role prompting 当成一种“控制旋钮”。


我会教你把 prompt 做成模板:把“固定骨架”和“可变数据”分开(Chapter 4)

在 “Separating Data and Instructions” 里,我会开始把你往工程思维上推:

  • 很多时候你不是想写一次 prompt
  • 你是想写一个可复用模板
  • 数据变、任务不变——你只替换数据,不动骨架

这一步是“提示词从手艺到资产”的分水岭。


我会教你“让输出长得像你想要的样子”(Chapter 5)

在 “Formatting Output & Speaking for Claude” 里,我会让你明白一个事实:

  • Claude 可以输出很多格式
  • 关键是:你得明确要求它这么做

我会让你用 XML tags 这类方式,让输出更规整、更好解析。
比如这个小例子(来自章节 notebook 片段):

1
2
ANIMAL = "Rabbit"
PROMPT = f"Please write a haiku about {ANIMAL}. Put it in <haiku> tags."

这类技巧看起来简单,但一旦你要把 Claude 接进程序、接进 pipeline,它就会变成你最省心的朋友。


我不避讳模型会“胡说”:我会教你怎么降低幻觉(Chapter 8)

在 “Avoiding Hallucinations” 里,我会很认真地告诉你:

  • Claude 有时会为了“帮你”,说出不真实或不可靠的内容
  • 你需要策略让它更谨慎、更可验证

我会带你练的方向包括:

  • 给它“可以说不知道”的空间
  • 让它先找证据再回答
  • 以及把前面学过的清晰、分隔、示例等技巧组合起来

我像是在教你把一个聪明的同事,变成一个靠谱的同事。


我还有一个分身:Bedrock Edition(同样的课,不同的入口)

你在仓库里还能看到 AmazonBedrock/README.md
它是我的 Bedrock 版介绍——目标不变,还是训练你为 Claude 写 prompt,只是更贴近 Bedrock 的使用方式(你会在相关 notebook 里看到 boto3、bedrock-runtime 的调用骨架)。

如果你的工作环境更偏 AWS,这个分身会更好牵手。


给你一条最不痛苦的练习路线(我会陪你走完)

如果你想最快把收益吃到嘴里,我会希望你这样走:

  1. Chapter 1-3:先把结构、清晰、角色这三件事练稳
  2. Chapter 4-5:开始工程化(模板 + 格式)
  3. Chapter 7:few-shot 往往是效果提升最快的一段
  4. Chapter 8:把幻觉风险降下来
  5. 再进 Chapter 9 + Appendix:开始组装复杂系统(链式、工具、检索)

你会发现:当你能稳定控制“输入结构”和“输出结构”,提示词工程就不再像玄学——更像工程。


相关入口(你可以直接点进去开始)