Anthropic 官方提示词工程指南

2025年2月1日

原文点击这里

提示工程概述

虽然这些提示适用于所有 Claude 模型,但您可以在这里找到专门针对深度思考模型的提示技巧。

开始之前

本指南假设您已经:

  1. 明确定义了您的用例的成功标准
  2. 有一些可以针对这些标准进行实证测试的方法
  3. 有一个想要改进的初稿提示

如果没有,我们强烈建议您先花时间建立这些。查看定义您的成功标准创建有力的实证评估获取提示和指导。

如何进行提示工程

本节中的提示工程页面按照从最广泛有效的技术到更专门的技术进行组织。

在解决性能问题时,我们建议您按顺序尝试这些技术,尽管每种技术的实际影响将取决于您的用例。

01 自动生成首版提示词模板

我们的提示词生成器与所有 Claude 模型兼容,包括那些具有深度思考能力的模型。关于深度思考模型的具体提示技巧,请参见这里

有时候,使用 AI 模型最困难的部分是弄清楚如何有效地进行提示。为了解决这个问题,我们创建了一个提示词生成工具,引导 Claude 生成针对您特定任务的高质量提示词模板。这些模板遵循了我们许多提示工程的最佳实践。

提示词生成器作为解决”空白页问题”的工具特别有用,为您提供进一步测试和迭代的起点。

现在就在 Console 上试用提示词生成器。

如果您对分析底层提示词和架构感兴趣,请查看我们的提示词生成器 Google Colab 笔记本。在那里,您可以轻松运行代码,让 Claude 为您构建提示词。

请注意,要运行 Colab 笔记本,您需要一个 API 密钥

02 使用提示模板和变量

在使用 Claude 部署基于 LLM 的应用程序时,您的 API 调用通常包含两种类型的内容:

  • 固定内容: 在多次交互中保持不变的静态指令或上下文
  • 变量内容: 随每个请求或对话而变化的动态元素,例如:
    • 用户输入
    • 用于检索增强生成(RAG)的检索内容
    • 对话上下文,如用户账户历史
    • 系统生成的数据,如来自其他独立 Claude 调用的工具使用结果

提示模板将这些固定和变量部分结合在一起,为动态内容使用占位符。在 Anthropic Console 中,这些占位符用 {{双括号}} 表示,使它们易于识别并允许快速测试不同的值。

何时使用提示模板和变量

当您预期提示的任何部分会在另一次调用 Claude 时重复使用时(仅通过 API 或 Anthropic Consoleclaude.ai 目前不支持提示模板或变量),您都应该使用提示模板和变量。

提示模板提供了几个好处:

  • 一致性: 确保在多次交互中保持提示的一致结构
  • 效率: 无需重写整个提示即可轻松替换变量内容
  • 可测试性: 通过仅更改变量部分来快速测试不同的输入和边缘情况
  • 可扩展性: 随着应用程序复杂度增加,简化提示管理
  • 版本控制: 通过仅跟踪提示的核心部分(与动态输入分开),轻松跟踪提示结构的变化

Anthropic Console 大量使用提示模板和变量,以支持上述所有功能和工具,例如:

  • 提示生成器:决定您的提示需要哪些变量,并将它们包含在输出的模板中
  • 提示改进器:接收您现有的模板(包括所有变量),并在输出的改进模板中保持这些变量
  • 评估工具:通过分离提示模板的变量和固定部分,让您轻松测试、扩展和跟踪提示的版本

提示模板示例

让我们考虑一个将英文文本翻译成西班牙文的简单应用程序。由于您预期这个文本会在用户之间或调用 Claude 时发生变化,因此翻译的文本是变量。这个翻译文本可以从数据库或用户输入中动态检索。

因此,对于您的翻译应用程序,您可以使用这个简单的提示模板:


把文本从英文翻译为中文: `{{text}}`

03 使用提示词优化器改进提示词

开始之前

您需要:

  • 一个要改进的提示词模板
  • 关于Claude当前输出问题的反馈(可选但建议提供)
  • 示例输入和理想输出(可选但建议提供)

提示词优化器的工作原理

提示词优化器通过4个步骤增强您的提示词:

  1. 示例识别:定位并提取提示词模板中的示例
  2. 初始草稿:创建具有清晰章节和XML标签的结构化模板
  3. 思维链精炼:添加和完善详细的推理指令
  4. 示例增强:更新示例以展示新的推理过程

您可以在改进模态框中实时观察这些步骤。

您将获得什么

提示词优化器生成的模板包含:

  • 详细的思维链指令,指导Claude的推理过程并通常提高其性能
  • 使用XML标签清晰组织不同组件
  • 标准化的示例格式,展示从输入到输出的逐步推理
  • 战略性预填充,引导Claude的初始响应

如何使用提示词优化器

  1. 提交您的提示词模板
  2. 添加关于Claude当前输出问题的任何反馈(例如,“摘要对专业受众来说过于基础”)
  3. 包含示例输入和理想输出
  4. 审查改进后的提示词

生成测试示例

还没有示例?使用我们的测试用例生成器来:

  1. 生成样本输入
  2. 获取Claude的响应
  3. 编辑响应以匹配您的理想输出
  4. 将完善后的示例添加到您的提示词中

何时使用提示词优化器

提示词优化器最适合:

  • 需要详细推理的复杂任务
  • 准确性比速度更重要的情况
  • Claude当前输出需要显著改进的问题

改进示例

以下是提示词优化器如何增强基本分类提示词:

原始提示词:


从以下维基百科文章标题列表中,识别这个句子来自哪篇文章。
只需回答文章标题,不要添加其他内容。

文章标题:
`{{titles}}`

要分类的句子:
`{{sentence}}`

改进后的提示词


您是一个智能文本分类系统,专门将句子与维基百科文章标题匹配。您的任务是根据提供的文章标题列表,确定给定句子最可能属于哪篇维基百科文章。

首先,请查看以下维基百科文章标题列表:
<article_titles>
`{{titles}}`
</article_titles>

现在,考虑需要分类的这个句子:
<sentence_to_classify>
`{{sentence}}`
</sentence_to_classify>

您的目标是确定提供的列表中哪个文章标题最匹配给定的句子。请按照以下步骤操作:

1. 列出句子中的关键概念
2. 将每个关键概念与文章标题进行比较
3. 对最相关的前3个标题进行排名并解释原因
4. 选择最适合或最相关的文章标题

在<analysis>标签中包含您的分析。包括以下内容:
- 句子中的关键概念列表
- 每个关键概念与文章标题的比较
- 最相关的前3个标题排名及解释
- 您的最终选择和理由

在分析之后,提供您的最终答案:从列表中选择单个最适合的维基百科文章标题。

仅输出所选的文章标题,不要添加任何额外的文本或解释。

注意改进后的提示词:

  • 添加清晰的逐步推理指令
  • 使用XML标签组织内容
  • 提供明确的输出格式要求
  • 引导Claude完成分析过程

故障排除

常见问题和解决方案:

  • 示例未在输出中显示:检查示例是否使用XML标签正确格式化,并出现在第一条用户消息的开头
  • 思维链过于冗长:添加关于所需输出长度和详细程度的具体指令
  • 推理步骤不符合您的需求:修改步骤部分以匹配您的具体用例

04 保持清晰、直接和详细

在与 Claude 互动时,将其视为一位才华横溢但非常新的员工(患有失忆症),需要明确的指示。像任何新员工一样,Claude 并不了解您的规范、风格、指导方针或首选的工作方式。 您越精确地解释您想要的内容,Claude 的回应就会越好。

清晰提示的黄金法则
向同事展示您的提示,最好是对任务了解最少的人,并请他们按照指示操作。如果他们感到困惑,Claude 也可能会感到困惑。

如何保持清晰、具有上下文和具体

  • 为 Claude 提供上下文信息: 就像您在了解更多上下文的情况下可能会更好地完成任务一样,Claude 在拥有更多上下文信息的情况下也会表现得更好。上下文信息的一些例子:
    • 任务结果将用于什么
    • 输出内容面向什么受众
    • 任务属于什么工作流程,以及这个任务在工作流程中的位置
    • 任务的最终目标,或成功完成任务的样子
  • 具体说明您希望 Claude 做什么: 例如,如果您只想要 Claude 输出代码而不要其他内容,请明确说明。
  • 按顺序提供指示: 使用编号列表或项目符号,以更好地确保 Claude 按照您想要的方式执行任务。

示例

注意,在不清晰的提示示例中,Claude 仍然会犯错误,比如保留了客户的姓名。

角色 不清晰的提示 清晰的提示
用户 请从这些客户反馈信息中删除所有个人身份信息: 您的任务是为我们的季度审查匿名化客户反馈。
指示:
  1. 将所有客户姓名替换为”CUSTOMER_[ID]“(例如,“Jane Doe” → “CUSTOMER_001”)
  2. 将电子邮件地址替换为”EMAIL_[ID]@example.com”
  3. 将电话号码编辑为”PHONE_[ID]“
  4. 如果消息提到特定产品(如”AcmeCloud”),保持不变
  5. 如果没有发现个人身份信息,逐字复制消息
  6. 仅输出处理后的消息,用”---“分隔

要处理的数据:

| | 助手(Claude 的回应) | 以下是匿名化的客户反馈信息:
1. 我使用你们的软件已经很多年了,一直都很好。但最近,AcmeCloud 经常崩溃。请修复它!
2. XXX,你们的客服代表非常有帮助。他指导我完成了整个过程。我的邮箱是 XXX,如果你们想发送调查。
3. 我是 John Smith,我很不高兴。我已经等待 2 小时试图联系 XXX。这是不可接受的! | CUSTOMER_001:我使用你们的软件已经很多年了,一直都很好。但最近,AcmeCloud 经常崩溃。请修复它!
---
CUSTOMER_002:CUSTOMER_SERVICE_001,你们的客服代表非常有帮助。他指导我完成了整个过程。我的邮箱是 EMAIL_002@example.com,如果你们想发送调查。
---
CUSTOMER_003:我是 CUSTOMER_003,我很不高兴。我已经等待 2 小时试图联系 PHONE_001。这是不可接受的! |

05 使用示例(多示例提示)来引导 Claude 的行为

示例是帮助您获得 Claude 精确输出的秘密武器捷径。通过在提示中提供一些精心设计的示例,您可以显著提高 Claude 输出的准确性、一致性和质量。 这种技术被称为少样本或多示例提示,对于需要结构化输出或遵循特定格式的任务特别有效。

为什么要使用示例?

  • 准确性:示例减少对指令的误解。

  • 一致性:示例确保统一的结构和风格。

  • 性能:精心选择的示例可以提升 Claude 处理复杂任务的能力。

制作有效的示例

为了获得最大效果,请确保您的示例:

  • 相关性:您的示例要与实际用例相符。

  • 多样性:您的示例要涵盖边缘情况和潜在挑战,并且要有足够的变化,以避免 Claude 无意中捕捉到不必要的模式。

  • 清晰性:您的示例要用 <example> 标签包装(如果有多个,则嵌套在 <examples> 标签中)以保持结构。

示例

分析客户反馈

注意在”无示例”版本中,尽管其书面分析表明某些反馈有多个类别,但 Claude 并未为每个类别列出多个选项。它还包含了我们可能不需要的冗长解释。

无示例


分析这个客户反馈并对问题进行分类。使用这些类别:UI/UX、性能、功能请求、集成、定价和其他。同时评估情感(积极/中性/消极)和优先级(高/中/低)。

以下是反馈:`{{FEEDBACK}}`

助手(Claude 的回应)


以下是客户反馈的分析:

问题:UI/UX
情感:消极
优先级:高
客户对新仪表板设计感到不满,认为它杂乱且加载缓慢。他们特别提到缺少”导出”按钮,这可能是一个关键功能。这个问题需要作为高优先级处理。

问题:集成
情感:积极
优先级:中
客户对现有的 Salesforce 集成感到满意,但希望看到对 Hubspot 的支持。这是一个可以考虑在未来产品更新中实现的功能请求。

问题:定价
情感:消极
优先级:高
客户认为定价不合理,特别是对于基本功能而言。他们威胁要转向竞争对手,所以这是一个需要审查的高优先级问题。

问题:性能
情感:消极
优先级:高
客户在移动应用程序中遇到严重问题,大文件上传持续导致崩溃。这是一个显著影响客户有效使用产品的问题,应该作为高优先级处理。

问题:UI/UX
情感:积极
优先级:低
客户总体上对产品满意,特别提到了直观的 UI 和出色的客户支持。这是一个不需要立即采取行动的积极反馈。

有示例:


我们的客服团队被大量非结构化反馈淹没。您的任务是为我们的产品和工程团队分析反馈并对问题进行分类。使用这些类别:UI/UX、性能、功能请求、集成、定价和其他。同时评估情感(积极/中性/消极)和优先级(高/中/低)。这里有一个示例:

<example>
输入:新仪表板一团糟!加载太慢了,而且我找不到导出按钮。请尽快修复!
类别:UI/UX、性能
情感:消极
优先级:高</example>

现在,分析这个反馈:`{{FEEDBACK}}`

助手(Claude 的回应)


以下是客户反馈的分析:

1. 新仪表板一团糟!加载太慢了,而且我找不到导出按钮。请尽快修复!
类别:UI/UX、性能
情感:消极
优先级:高

2. 喜欢 Salesforce 集成!如果能添加 Hubspot 就更好了。
类别:集成、功能请求
情感:积极
优先级:中

3. 你们的定价太离谱了!基本功能要 $99/月?我要转向竞争对手 X。
类别:定价
情感:消极
优先级:高

4. 移动应用在尝试上传大文件(>50MB)时持续崩溃。这对我们的外勤人员来说至关重要。
类别:性能
情感:消极
优先级:高

5. 总的来说,我对产品很满意。UI 很直观,客户支持一流。继续保持!
类别:UI/UX、其他(客户支持)
情感:积极
优先级:低

06 让 Claude 思考(思维链提示)以提高性能

实施 CoT 之前

为什么要让 Claude 思考?

  • 准确性: 逐步解决问题可以减少错误,特别是在数学、逻辑、分析或一般复杂任务中。
  • 连贯性: 结构化思维导致更连贯、组织更完善的回答。
  • 调试: 查看 Claude 的思维过程有助于您找出提示可能不清晰的地方。

为什么不让 Claude 思考?

  • 增加输出长度可能影响延迟。
  • 并非所有任务都需要深入思考。明智地使用 CoT 以确保性能和延迟的适当平衡。

如何提示思考

下面的思维链技术按从简单到复杂的顺序排列。较简单的方法在上下文窗口中占用较少空间,但通常功能也较弱。

  • 基本提示: 在您的提示中包含”逐步思考”。
    • 缺乏关于_如何_思考的指导(如果任务特别针对您的应用程序、用例或组织,这尤其不理想)
  • 引导提示: 为 Claude 的思维过程概述具体步骤。
    • 缺乏结构化,难以剥离和分离答案与思考过程。
  • 结构化提示: 使用像 <thinking><answer> 这样的 XML 标签来分离推理和最终答案。

06 XML标记指南

虽然这些提示广泛适用于所有Claude模型,但您可以在这里找到特定于深度思考模型的提示。

当您的提示涉及多个组件,如上下文、指令和示例时,XML标签可以成为改变游戏规则的工具。它们帮助Claude更准确地解析您的提示,从而产生更高质量的输出。

XML提示:使用<instructions><example><formatting>等标签来清晰地分隔提示的不同部分。这可以防止Claude将指令与示例或上下文混淆。

为什么使用XML标签?

  • 清晰性:清晰地分隔提示的不同部分,确保提示结构良好。
  • 准确性:减少由于Claude误解提示部分而导致的错误。
  • 灵活性:轻松查找、添加、删除或修改提示的部分,而无需重写所有内容。
  • 可解析性:让Claude在输出中使用XML标签,使得通过后处理提取响应的特定部分更加容易。

没有特定的“最佳”XML标签是Claude特别训练过的,尽管我们建议您的标签名称与它们所围绕的信息相符。

标记最佳实践

  1. 保持一致:在你的提示中使用相同的标签名称,并在谈论内容时引用这些标签名称(例如,使用<contract>标签中的合同...)。
  2. 嵌套标签:你应该为层次结构内容嵌套标签<outer><inner></inner></outer>

高级用户提示:将XML标签与其他技术结合使用,如多次提示(<examples>)或思维链(<thinking><answer>)。这将创建超级结构化、高性能的提示。

示例

示例:生成财务报告

没有XML标签时,Claude会误解任务并生成不符合所需结构或语气的报告。在替换之后,Claude也有可能误解某一部分(如Q1报告示例)在哪里结束,另一部分在哪里开始。

角色 无 XML 标签 有 XML 标签
用户 您是AcmeCorp的财务分析师。为我们的投资者生成一份第二季度财务报告。包括收入增长、利润率和现金流的部分,就像去年的这个例子:{{Q1_REPORT}}。使用这个电子表格中的数据点:{{SPREADSHEET_DATA}}。报告应非常简洁、直截了当、专业,并以列表格式呈现。它应突出优势和需要改进的领域。 您是AcmeCorp的财务分析师。为我们的投资者生成一份第二季度财务报告。

AcmeCorp是一家B2B SaaS公司。我们的投资者重视透明度和可操作的见解。

使用这些数据进行报告:{{SPREADSHEET_DATA}}


1. 包括以下部分:收入增长、利润率、现金流。
2. 突出优势和需要改进的领域。


使您的语气简洁且专业。遵循此结构:
<formatting_example>{{Q1_REPORT}}</formatting_example>
助理 AcmeCorp投资者第二季度财务报告

尊敬的投资者,

我很高兴地向您展示我们的第二季度财务报告,展示了AcmeCorp在B2B SaaS市场的持续增长和韧性。

1. 收入增长:
我们的第二季度收入达到1520万美元,同比增长22%。这种增长主要是由于企业客户群扩大了30%。
然而,我们的中小企业(SMB)部门出现了5%的小幅下降,我们计划通过在第三季度的针对性营销举措来解决这一问题。
  1. 利润率: 由于基础设施优化,毛利率提高到72%(比第一季度增长3%)。然而,由于我们在即将推出的AI驱动功能上进行了大量研发投资,EBITDA利润率下降到18%(下降2%)。

  2. 现金流: 运营现金流保持强劲,达到410万美元。我们的现金储备为2800万美元,以当前的消耗率可以维持15个月。我们确实看到客户获取成本增加了20%,我们正在通过更高效的销售策略来解决这一问题。

总之,AcmeCorp的核心财务状况依然稳健。我们在平衡增长投资与审慎的现金管理。 我们的第三季度重点将是振兴中小企业(SMB)的增长并优化销售效率。

感谢您一如既往的信任。

诚挚的问候,
首席财务官,AcmeCorp | AcmeCorp 投资者的第二季度财务报告

收入增长:

  • 第二季度收入:$1520万(同比增长22%)
  • 企业客户:增长30%
  • SMB部门:下降5%
    行动:针对第三季度的市场营销

利润率:

  • 毛利率:72%(比第一季度增长3%)
    原因:基础设施优化
  • EBITDA利润率:18%(下降2%)
    原因:在AI功能上的研发投资

现金流:

  • 经营现金流:$410万(强劲)
  • 现金储备:$2800万(15个月的运营资金)
  • 客户获取成本:增长20%
    行动:优化销售策略

展望:

  • 核心财务状况:稳健
  • 第三季度重点:振兴SMB,优化销售

管理层仍然致力于在增长投资与财务纪律之间保持平衡。

示例:法律合同分析

没有XML标签时,Claude的分析是杂乱无章的,并且遗漏了关键点。使用标签后,它提供了一个结构化的、全面的分析,法律团队可以据此采取行动。

角色 无 XML 标签 含 XML 标签
用户 分析这份软件许可协议的潜在风险和责任:{{CONTRACT}}。重点关注赔偿、责任限制和知识产权所有权条款。同时,注意任何不寻常或令人担忧的条款。以下是我们的标准合同供参考:{{STANDARD_CONTRACT}}。为我们的法律团队提供总结和建议。 分析这份软件许可协议的法律风险和责任。

我们是一家跨国企业,正在考虑将此协议用于我们的核心数据基础设施。

<agreement>
{{CONTRACT}}</agreement>

这是我们的标准合同供参考:
<standard_contract>{{STANDARD_CONTRACT}}</standard_contract>

<instructions>
1. 分析这些条款:
- 赔偿
- 责任限制
- 知识产权所有权

2. 注意不寻常或令人担忧的条款。

3. 与我们的标准合同进行比较。

4. 在<findings>标签中总结发现。

5. 在<recommendations>标签中列出可操作的建议。</instructions>

07 通过系统提示为 Claude 赋予角色

在使用 Claude 时,您可以通过使用 system 参数为其赋予角色来显著提升其表现。这种技术被称为角色提示,是使用系统提示与 Claude 交互的最强大方式。

合适的角色可以将 Claude 从一个通用助手转变为您的虚拟领域专家!

系统提示技巧:使用 system 参数来设置 Claude 的角色。将其他所有内容(如特定任务的指令)放在 user 轮次中。

为什么要使用角色提示?

  • 提高准确性: 在法律分析或财务建模等复杂场景中,角色提示可以显著提升 Claude 的表现。
  • 定制语气: 无论您需要 CFO 的简洁还是文案撰写人的文采,角色提示都可以调整 Claude 的沟通风格。
  • 提升专注度: 通过设置角色上下文,Claude 能更好地保持在您任务特定要求的范围内。

如何为 Claude 赋予角色

Messages API 中使用 system 参数来设置 Claude 的角色:

import anthropic client = anthropic.Anthropic() response = client.messages.create( model="claude-3-7-sonnet-20250219", max_tokens=2048, system="You are a seasoned data scientist at a Fortune 500 company.", # <-- 角色提示 messages=[ {"role": "user", "content": "Analyze this dataset for anomalies: <dataset>`{{DATASET}}`</dataset>"} ] ) print(response.content)

角色提示技巧:尝试不同的角色!对于相同的数据,数据科学家可能会看到与市场策略师不同的见解。而专门为世界500强公司进行客户洞察分析的数据科学家可能会产生更不同的结果!

示例:法律合同分析

没有角色时,Claude 可能会错过关键问题:

角色 内容
User 分析这份软件许可协议的潜在风险:
`{{CONTRACT}}` 重点关注赔偿、责任和知识产权所有权。

| | Assistant | 以下是软件许可协议的主要要点总结:

1. 赔偿条款(第8节):
- 我们对因我们使用而产生的索赔向供应商作出赔偿。

2. 责任限制(第9节):
- 损害赔偿上限为500美元。

3. 知识产权所有权(第12节):
- 我们保留对我们修改部分的所有权。

总的来说,该协议看起来比较标准。赔偿和责任条款都很典型,我们也保留了知识产权。

|

有了角色后,Claude 能发现可能造成数百万损失的关键问题:

角色 内容
User 您是一家世界500强科技公司的总法律顾问。我们正在考虑将这份软件许可协议用于我们的核心数据基础设施:
`{{CONTRACT}}` 分析其潜在风险,重点关注赔偿、责任和知识产权所有权。请给出您的专业意见。

| | Assistant | 我已审查了该软件许可协议,发现一些可能使我们公司面临重大风险的严重问题:

1. 赔偿条款(第8节):
- 严重问题:我们需要对”任何及所有”因使用而产生的索赔向供应商作出赔偿。
- 风险:这可能使我们对供应商的疏忽或产品缺陷承担责任。
- 建议:拒绝。将我们的赔偿责任限制在因我们违反协议而产生的索赔。

2. 责任限制(第9节):
- 严重问题:损害赔偿上限为500美元,包括直接损害。
- 风险:严重不足。数据基础设施的重大故障可能造成数百万美元的收入损失和声誉损害。
- 建议:拒绝。就直接损害协商12个月费用的上限,并为数据泄露设置例外条款。

3. 知识产权所有权(第12节):
- 严重问题:供应商获得我们的修改和集成的共同所有权。
- 风险:他们可能向竞争对手使用或出售我们的专有算法或数据洞察。
- 建议:拒绝。我们必须保留对我们工作的完全所有权。

专业意见:不要签署这份协议。这份协议极其不利,会使我们面临不可接受的风险水平。如果供应商拒绝重新协商这些条款,我强烈建议探索其他供应商或加快我们的内部解决方案。继续推进这份协议的潜在成本远超过任何短期收益。

|

08 预填充 Claude 的回复以获得更好的输出控制

预填充功能仅适用于非深度思考模式。目前不支持在深度思考模式下使用。

在使用 Claude 时,您可以通过预填充 Assistant 消息来引导其回复。这种强大的技术允许您指导 Claude 的行为,跳过前言,强制使用特定格式(如 JSON 或 XML),甚至帮助 Claude 在角色扮演场景中保持角色一致性。

在某些 Claude 表现不如预期的情况下,预填充几句话就能大大改善 Claude 的表现。一点预填充就能产生很大的影响!

如何预填充 Claude 的回复

要进行预填充,请在 Assistant 消息中包含所需的初始文本(Claude 的回复将从 Assistant 消息结束的地方继续):

import anthropic client = anthropic.Anthropic() response = client.messages.create( model="claude-3-7-sonnet-20250219", max_tokens=1024, messages=[ {"role": "user", "content": "What is your favorite color?"}, {"role": "assistant", "content": "As an AI assistant, I don't have a favorite color, But if I had to pick, it would be green because"} # Prefill here ] )

示例:控制输出格式并跳过前言

高级用户提示:预填充 { 强制 Claude 跳过前言并直接输出 JSON 对象。这样更简洁、更清晰,程序也更容易解析,无需额外处理。

角色 内容
User Extract the name, size, price, and color from this product description as a JSON object:
The SmartHome Mini is a compact smart home assistant available in black or white for only $49.99. At just 5 inches wide, it lets you control lights, thermostats, and other connected devices via voice or app—no matter where you place it in your home. This affordable little hub brings convenient hands-free control to your smart devices. | | Assistant | Here’s the extracted information in JSON format:
{  
  "name": "SmartHome Mini",  
  "size": "5 inches wide",  
  "price": "$49.99",  
  "colors": ["black", "white"]  
}  

I’ve extracted the following details from the product description:
- Name: SmartHome Mini
- Size: 5 inches wide
- Price: $49.99
- Colors: Available in black and white

The JSON object provides a structured format that’s easy for programs to parse and use. Let me know if you need any modifications or have any other questions!

|

角色 内容
User 从以下产品描述中提取名称、尺寸、价格和颜色,并以 JSON 对象形式返回:
Assistant (prefill) {
Assistant (Claude’s response) {`{
"name": "SmartHome Mini",
"size": "5 inches wide",
"price": "$49.99",
"colors": [
&quot;black&quot;,
&quot;white&quot;

] }`} |

09 链式复杂提示以获得更强的性能

在处理复杂任务时,如果您试图在单个提示中处理所有内容,Claude 有时可能会出现失误。思维链(CoT)提示很好,但如果您的任务有多个不同的步骤,每个步骤都需要深入思考怎么办?

这就需要提示链:将复杂任务分解成更小、可管理的子任务。

为什么要链接提示?

  1. 准确性:每个子任务都能得到 Claude 的充分关注,减少错误。
  2. 清晰度:更简单的子任务意味着更清晰的指令和输出。
  3. 可追溯性:轻松定位和修复提示链中的问题。

何时链接提示

对于研究综合、文档分析或迭代内容创建等多步骤任务,请使用提示链。当任务涉及多个转换、引用或指令时,链接可以防止 Claude 遗漏或处理错误步骤。

请记住:链中的每个环节都能得到 Claude 的充分关注!

如何链接提示

  1. 识别子任务:将任务分解为不同的、连续的步骤。
  2. 使用 XML 构建清晰的交接:使用 XML 标签在提示之间传递输出。
  3. 有单一任务目标:每个子任务应该有一个单一、明确的目标。
  4. 迭代:根据 Claude 的表现改进子任务。

链式工作流示例:

  • 多步骤分析:请参见下面的法律和商业示例。
  • 内容创建流程:研究 → 大纲 → 草稿 → 编辑 → 格式化。
  • 数据处理:提取 → 转换 → 分析 → 可视化。
  • 决策制定:收集信息 → 列出选项 → 分析每个选项 → 推荐。
  • 验证循环:生成内容 → 审查 → 改进 → 重新审查。

高级:自我纠正链

您可以链接提示让 Claude 审查自己的工作!这可以捕获错误并改进输出,特别是对于高风险任务。

示例


总结这篇医学研究论文。

<paper>`{{RESEARCH_PAPER}}`</paper>

重点关注方法、发现和临床意义。
Assistant
`{{SUMMARY}}`	方法:500名2型糖尿病患者的双盲随机对照试验。A组(n=250)接受新型GLP-1/GIP双激动剂;B组(n=250)接受标准GLP-1激动剂。24周试验,主要终点:HbA1c降低。

发现:
- A组:平均HbA1c降低1.8%
- B组:平均HbA1c降低1.1%
- A组68%vs B组52%达到HbA1c <7%
- A组:平均减重5.2kg
- B组:平均减重3.1kg

安全性:类似的不良事件特征,没有严重事件归因于治疗。

临床意义:双激动剂相比标准治疗显示出更优的血糖控制和减重效果。可能是一个突破性进展,特别是对肥胖糖尿病患者。

10 长文本提示技巧

Claude 的扩展上下文窗口(Claude 3 模型为 200K tokens)使其能够处理复杂的、数据丰富的任务。本指南将帮助您有效地利用这种能力。

长文本提示的基本技巧

  • 将长文本数据放在顶部:将您的长文档和输入(约20K+ tokens)放在提示的顶部,位于查询、指令和示例之上。这可以显著提高所有 Claude 模型的性能。测试表明,将查询放在末尾可以将响应质量提高多达30%,特别是在处理复杂的多文档输入时。

  • 使用 XML 标签构建文档内容和元数据:在使用多个文档时,用以下结构包装每个文档:

<document>
  <document_content>
    这里是文档内容。
  </document_content>
  <source>
    这里是文档来源或其他元数据。
  </source>
</document>

这样可以提高清晰度。

  • 用引用来支撑回答:对于长文档任务,请要求 Claude 在执行任务之前先引用文档中的相关部分。这有助于 Claude 在文档内容的”噪音”中找到重点。

示例

您是一位 AI 医生助手。您的任务是帮助医生诊断可能的患者疾病。 <documents> <document index="1"> <source>patient_symptoms.txt</source> <document_content> `{{PATIENT_SYMPTOMS}}` </document_content> </document> <document index="2"> <source>patient_records.txt</source> <document_content> `{{PATIENT_RECORDS}}` </document_content> </document> <document index="3"> <source>patient01_appt_history.txt</source> <document_content> `{{PATIENT01_APPOINTMENT_HISTORY}}` </document_content> </document> </documents> 从患者记录和就诊历史中找出与诊断患者报告症状相关的引用。将这些引用放在 <quotes> 标签中。然后,根据这些引用,列出所有能帮助医生诊断患者症状的信息。将您的诊断信息放在 <info> 标签中。
	

11 深度思考技巧

本指南提供了充分利用 Claude 深度思考功能的高级策略和技巧。深度思考使 Claude 能够逐步解决复杂问题,提高解决困难任务的表现。当您启用深度思考时,Claude 会在提供最终答案之前展示其推理过程,让您清楚地了解它是如何得出结论的。

请参阅深度思考模型,了解何时使用深度思考与标准思维模式的指导。

开始之前

本指南假定您已经决定使用深度思考模式而不是标准模式,并且已经查看了我们关于如何开始使用深度思考的基本步骤以及我们的深度思考实施指南

深度思考的技术考虑因素

  • 思维令牌的最小预算为1024个令牌。我们建议您从最小思维预算开始,并根据您的需求和任务复杂度逐步增加。
  • 对于最佳思维预算超过32K的工作负载,我们建议您使用批处理以避免网络问题。推动模型进行超过32K令牌思考的请求会导致长时间运行的请求,可能会遇到系统超时和开放连接限制。
  • 深度思考在英语中表现最佳,但最终输出可以是Claude支持的任何语言
  • 如果您需要低于最小预算的思维,我们建议使用标准模式,关闭思维功能,使用带有XML标签(如<thinking>)的传统思维链提示。请参阅思维链提示

深度思考的提示技巧

先使用一般性指令,然后用更详细的步骤指令进行故障排除

Claude 通常在高层次指令下表现更好,只需要深入思考任务,而不是逐步规定性的指导。模型在解决问题时的创造力可能超过人类规定最佳思维过程的能力。

例如,不要这样:

逐步思考这个数学问题:
1. 首先,确定变量
2. 然后,建立方程
3. 接下来,求解x

考虑这样:


请深入详细地思考这个数学问题。
考虑多种方法并展示你完整的推理过程。
如果第一种方法不行,尝试其他方法。

话虽如此,Claude 在需要时仍然可以有效地遵循复杂的结构化执行步骤。该模型可以处理比以前版本更长的列表和更复杂的指令。我们建议您从更一般化的指令开始,然后阅读 Claude 的思维输出,并通过提供更具体的指令来引导其思维。

深度思考的多示例提示

多示例提示与深度思考配合良好。当您向 Claude 提供如何思考问题的示例时,它将在其深度思考块中遵循类似的推理模式。

您可以在提示中使用像<thinking><scratchpad>这样的XML标签包含示例,Claude 会推广这种模式。但是,我们建议:

  1. 首先尝试不使用任何思维指导
  2. 只有在必要时,使用任何XML标签提供思维模式的示例

示例:


我将向你展示如何解决一个数学问题,然后我想让你解决一个类似的问题。

问题1:80的15%是多少?

<thinking>
要找到80的15%:
1. 将15%转换为小数:15% = 0.15
2. 相乘:0.15 × 80 = 12
</thinking>

答案是12。

现在解决这个问题:
问题2:240的35%是多少?

使用深度思考最大化指令遵循

启用深度思考时,Claude 在遵循指令方面表现显著提升。模型通常:

  1. 在深度思考块内推理指令
  2. 在响应中执行这些指令

要最大化指令遵循:

  • 清晰具体地说明您想要什么
  • 对于复杂的指令,考虑将其分解为 Claude 应该有条理地完成的编号步骤
  • 给 Claude 足够的预算来充分处理指令

使用深度思考调试和引导 Claude 的行为

您可以使用 Claude 的思维输出来调试 Claude 的逻辑,尽管这种方法并不总是完全可靠。

为了最好地使用这种方法,我们建议以下提示:

  • 我们不建议在用户文本块中传回 Claude 的深度思考,因为这不会改善性能,实际上可能会降低结果。
  • 明确不允许预填深度思考,手动更改模型思维块后的输出文本可能会因模型混淆而降低结果。

当深度思考关闭时,标准assistant响应文本预填仍然允许。

充分利用长输出和长形式思维

启用深度思考和扩展输出功能(测试版)的 Claude 在生成大量批量数据和长形式文本方面表现出色。

对于数据集生成用例,尝试使用”请创建一个极其详细的表格…”等提示来生成全面的数据集。

对于详细内容生成等用例,如果您想生成更长的深度思考块和更详细的响应,请尝试以下提示:

  • 增加深度思考的最大长度并明确要求更长的输出
  • 对于非常长的输出(20,000+字),请要求一个详细的大纲,包括段落级别的字数。然后要求 Claude 将其段落索引到大纲中并保持指定的字数

以下是由于较长的深度思考而使 Claude 表现出色的示例用例:

让Claude反思和检查其工作以提高一致性和错误处理

您可以使用简单的自然语言提示来提高一致性和减少错误:

  1. 在宣布任务完成之前,要求Claude用简单的测试验证其工作
  2. 指示模型分析其前一步骤是否达到了预期结果
  3. 对于编码任务,要求Claude在其深度思考中运行测试用例

示例:


编写一个计算数字阶乘的函数。
在完成之前,请用以下测试用例验证你的解决方案:
- n=0
- n=1
- n=5
- n=10
并修复你发现的任何问题。

下一步

深度思考手册

深度思考指南