Anthropic 2026 年的提示词工程指南,开篇是一小段基础技巧清单,接着做了一件不那么常见的事:点名两个大多数教程还在主推的技巧,并解释它们为什么没以前那么重要了。
对最新一代模型,指南自己的说法很简单:脚手架更少,筛选更多。
官方指南把目标定在哪
“the best prompt isn’t the longest or most complex. It’s the one that achieves your goals reliably with the minimum necessary structure.”
这是一次反转。提示词工程被当作做加法的技术教:加角色、加标签、加一步步推理的指令、加例子。指南留下真正改变输出的部分,把只多烧 token 的部分降级。产品侧的入门内容在 Claude 上手指南里。
先见效的基础技巧
要说清输出,而不是只说主题。一个仪表盘需求,应该变成「尽可能多地包含相关功能和交互」,再加一句明确要求超出基础版本。超出预期这件事,是要出来的,不是等出来的。
顺带给出理由。只说「绝对不要用项目符号」没有依据;指南的替代写法会解释读者更习惯连贯的段落。模型理解了的规则,能推广到你没预料到的情况。同一份清单还要求明确允许模型说「我不知道」,指南把它和更少的错话连在一起。
例子给几个才够
按指南的说法,例子是引导格式、语气和结构最可靠的手段之一。
“Start with one example (one-shot). Only add more examples (few-shot) if the output still doesn’t match your needs.”
默认是一个,不是五个。模型还会仔细读例子里的细节,这一点是双向的:粗糙的例子教错模式和好例子教对模式一样有效。
一个结构清楚的提示词由什么组成

长提示词读不下去的原因和长函数一样:所有内容都摊在同一层。
四个内容块
指令:要做什么,用动词开头。背景:为什么重要、答案给谁看。例子:一到两个,包起来,别让人误当成指令。输入:真正的材料,边界标清楚。
顺序建议很具体。输入很长时,把材料放在问题前面,关键细节放在开头或结尾。XML 标签是过去画边界的老办法,现在用标题、空行和明确措辞就能达到同样效果,负担还更小。
高级技巧,以及一个可以放掉的
prefill 是清单里最被冷落的技巧,chaining 成本最高也最值钱,角色设定则要轻手轻脚。一个乐于帮忙的助手,往往比只会说术语的专家好用。
大多数人漏掉的 prefill
prefill 的意思是替模型把回答的开头写出来。在聊天框里,你要求「只输出合法 JSON,不要开场白」,再让它以左花括号开头。在 API 里可以真的这么做:把消息列表的最后一条设成 assistant 回合。
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=512,
system="Extract figures from the report. Output JSON only, with no commentary.",
messages=[
{"role": "user", "content": report_text},
{"role": "assistant", "content": "{"},
],
)
print(message.content[0].text)
这个 assistant 回合就是 prefill:模型从那个花括号往后接,而不是自己决定怎么开头。思维链是指南更新得最明显的一条,它不再是默认建议,因为模型支持扩展思考时就优先用扩展思考。chaining 唯一塞不进单条提示词:它把任务拆成连续几次调用,多花一点延迟,换更准的结果。
示例:同一个提示词重建一遍
拿一条大多数人只写一行的需求,看看每改一遍加了什么。
把附件里的季度报告总结一下。
基线不算错,只是信息不够:没有读者对象、长度、格式,也没说数字缺失时怎么办。
把附件里的季度报告总结给投资委员会看。
控制在 300 字以内,用连贯段落,不要项目符号。
需要的数字如果报告里没写,就写"未提及",不要估算。
第二遍补上读者、限制、格式和那句诚实条款。四条里三条来自基础技巧;诚实条款就是「允许不确定」,指南把它和更少的编造内容连在一起。第三遍是 chaining:先抽取营收、利润率和增长这几个数字,再基于抽取结果写总结。建立在核对过的数字上的总结,和建立在猜测上的,不是同一个东西。
这些提示词在代码里怎么跑
有两个技巧在请求体里最好认:角色,属于系统提示词;chaining,就是两次调用。
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system="You are a helpful coding assistant specializing in Python.",
messages=[
{"role": "user", "content": "How do I sort a list of dictionaries by key?"}
],
)
print(message.content[0].text)
这条系统提示词只用一句话定位,没有堆形容词——「不要把角色框得太窄」这条警告,用在这里正合适。
import anthropic
client = anthropic.Anthropic()
extract = client.messages.create(
model="claude-sonnet-5",
max_tokens=512,
messages=[
{"role": "user", "content": f"List every figure in this report.\n\n{report_text}"}
],
)
summary = client.messages.create(
model="claude-sonnet-5",
max_tokens=512,
system="Summarise for an investment committee in under 300 words.",
messages=[{"role": "user", "content": extract.content[0].text}],
)
print(summary.content[0].text)
模型 ID 属于配置项,官方公布的型号清单和按 token 计的价格在套餐对比里。字段名沿用官方 SDK 随附的示例写法;本次核对所用机器打不开 API 参考页,不熟悉的字段请回去确认。
提示词失效时怎么修
回答很泛,通常是因为提示词本身要得很泛。答偏了,说明真正的目标还留在你脑子里。格式飘,是例子或 prefill 的问题;复杂任务上结果不稳,是该上 chaining 的信号,而不是加指令。
多余的开场白,直接要答案就能去掉;编出来的细节,声明「未提及」可接受就会减少。提示词变长也要计费,而提示缓存只对稳定的前缀有用,这部分见 API 入门指南。
常见问题
这些技巧对 Claude Code 也适用吗? 它们讲的是模型,所以能直接搬过去。想每个会话都生效的指令,应该放进 CLAUDE.md 文件,位置见终端指南。
还需要 XML 标签吗? 默认不需要。指南只在边界确实含混时保留它。
思维链过时了吗? 是降级,不是过时。模型支持扩展思考时优先用扩展思考。
例子给几个合适? 一个,直到一个不够用为止。
把提示词砍掉一半,再只把影响答案的区块加回来。这就是 2026 年的立场,一句话。