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.”

默认是一个,不是五个。模型还会仔细读例子里的细节,这一点是双向的:粗糙的例子教错模式和好例子教对模式一样有效。

一个结构清楚的提示词由什么组成

本站自绘示意图:一份提示词文档中叠放着四个内容区块,箭头指向一个聊天回复气泡
本站自绘示意图,非官方示例 AI Tool Blog

长提示词读不下去的原因和长函数一样:所有内容都摊在同一层。

四个内容块

指令:要做什么,用动词开头。背景:为什么重要、答案给谁看。例子:一到两个,包起来,别让人误当成指令。输入:真正的材料,边界标清楚。

顺序建议很具体。输入很长时,把材料放在问题前面,关键细节放在开头或结尾。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 年的立场,一句话。