Appearance
提示词工程
使用提示模板和变量
在使用 Claude 部署基于 LLM 的应用程序时,您的 API 调用通常包含两种类型的内容:
- 固定内容: 在多次交互中保持不变的静态指令或上下文
- 变量内容: 随每个请求或对话而变化的动态元素,例如:
- 用户输入
- 用于检索增强生成(RAG)的检索内容
- 对话上下文,如用户账户历史
- 系统生成的数据,如来自其他独立 Claude 调用的工具使用结果
提示模板将这些固定和变量部分结合在一起,为动态内容使用占位符。在 Anthropic Console 中,这些占位符用表示,使它们易于识别并允许快速测试不同的值。
何时使用提示模板和变量
当您预期提示的任何部分会在另一次调用 Claude 时重复使用时(仅通过 API 或 Anthropic Console。claude.ai 目前不支持提示模板或变量),您都应该使用提示模板和变量。
提示模板提供了几个好处:
- 一致性: 确保在多次交互中保持提示的一致结构
- 效率: 无需重写整个提示即可轻松替换变量内容
- 可测试性: 通过仅更改变量部分来快速测试不同的输入和边缘情况
- 可扩展性: 随着应用程序复杂度增加,简化提示管理
- 版本控制: 通过仅跟踪提示的核心部分(与动态输入分开),轻松跟踪提示结构的变化
Anthropic Console 大量使用提示模板和变量,以支持上述所有功能和工具,例如:
- 提示生成器: 决定您的提示需要哪些变量,并将它们包含在输出的模板中
- 提示改进器: 接收您现有的模板(包括所有变量),并在输出的改进模板中保持这些变量
- 评估工具: 通过分离提示模板的变量和固定部分,让您轻松测试、扩展和跟踪提示的版本
提示模板示例
让我们考虑一个将英文文本翻译成西班牙文的简单应用程序。由于您预期这个文本会在用户之间或调用 Claude 时发生变化,因此翻译的文本是变量。这个翻译文本可以从数据库或用户输入中动态检索。
因此,对于您的翻译应用程序,您可以使用这个简单的提示模板:
Translate this text from English to Spanish:
保持清晰、直接和详细
NOTE
虽然这些提示都可以应用在所有的 Claude 模型上,但是你可以为扩展思维模型专门优化
在与 Claude 交互时,可以将其视为一位聪明但非常新的员工(有健忘症),需要明确的指示。像任何新员工一样,Claude 并不了解你的规范、风格、准则或首选的工作方式。 你越是精确地解释你想要什么,Claude 的回应就会越好。
清晰提示的黄金法则
向同事展示你的提示,最好是对任务了解很少的人,让他们按照指示操作。如果他们感到困惑,Claude 也可能会感到困惑。
如何保持清晰、具有上下文和具体
- 为 Claude 提供上下文信息: 就像你在了解更多上下文的情况下可能会更好地完成任务一样,Claude 在有更多上下文信息的情况下也会表现得更好。上下文信息的一些例子:
- 任务结果将用于什么
- 输出内容面向什么受众
- 任务属于什么工作流程,以及这个任务在工作流程中的位置
- 任务的最终目标,或者成功完成任务是什么样子
- 具体说明你希望 Claude 做什么: 例如,如果你只想要 Claude 输出代码而不要其他内容,就要明确说明。
- 按顺序提供指示: 使用编号列表或项目符号,以更好地确保 Claude 按照你想要的方式执行任务。
示例:匿名化客户反馈
注意,在不清晰的提示示例中,Claude 仍然会犯错误,比如保留了客户的姓名。
不清晰的提示
text
用户:请从这些客户反馈信息中删除所有个人身份信息: FEEDBACK_DATA}}
助手(Claude 的回应):以下是匿名化的客户反馈信息
1. 我使用你们的软件已经多年了,一直都很好。但最近,AcmeCloud 经常崩溃。请修复它!
2. XXX,你们的客服代表非常有帮助。他指导我完成了整个过程。我的邮箱是 XXX,如果你们想发送调查。
3. 我是 John Smith,我很不高兴。我已经等了 2 小时试图联系 XXX。这是不可接受的!
清晰的提示
text
用户:你的任务是为我们的季度审查匿名化客户反馈。
指示:
1. 将所有客户姓名替换为”CUSTOMER_[ID]“(例如,“Jane Doe” → “CUSTOMER_001”)
2. 将电子邮件地址替换为”EMAIL_[ID]@example.com”
3. 将电话号码编辑为”PHONE_[ID]“
4. 如果消息提到特定产品(如”AcmeCloud”),保持不变
5. 如果没有发现个人身份信息,逐字复制消息
6. 仅输出经处理的消息,用”---“分隔
要处理的数据:{{FEEDBACK_DATA}}
助手(Claude 的回应):
CUSTOMER_001:我使用你们的软件已经多年了,一直都很好。但最近,AcmeCloud 经常崩溃。请修复它!
---
CUSTOMER_002:CUSTOMER_SERVICE_001,你们的客服代表非常有帮助。他指导我完成了整个过程。我的邮箱是 EMAIL_002@example.com,如果你们想发送调查。
---
CUSTOMER_003:我是 CUSTOMER_003,我很不高兴。我已经等了 2 小时试图联系 PHONE_001。这是不可接受的!
使用示例(多示例提示)来引导 Claude 的行为
示例是让 Claude 精确生成你所需内容的秘密武器捷径。通过在提示中提供一些精心设计的示例,你可以显著提高 Claude 输出的准确性、一致性和质量。 这种技术被称为少样本或多示例提示,对于需要结构化输出或遵循特定格式的任务特别有效。
增强你的提示: 包含 3-5 个多样化、相关的示例来向 Claude 准确展示你想要的内容。示例越多 = 表现越好,尤其是对于复杂任务。
为什么要使用示例?
- 准确性:示例减少对指令的误解。
- 一致性:示例强制执行统一的结构和风格。
- 性能:精心选择的示例可以提升 Claude 处理复杂任务的能力。
制作有效的示例
为了获得最大效果,请确保你的示例是:
- 相关的:你的示例反映了你的实际用例。
- 多样化的:你的示例涵盖边缘情况和潜在挑战,并且有足够的变化使 Claude 不会无意中捕捉到不必要的模式。
- 清晰的:你的示例用
<example>
标签包装(如果有多个,则嵌套在<examples>
标签中)以保持结构。
请 Claude 评估你的示例的相关性、多样性或清晰度。或者让 Claude 基于你的初始集合生成更多示例。
示例:分析客户反馈 注意在”无示例”版本中,尽管其书面分析表明某些反馈有多个类别,但 Claude 并没有为每个类别列出多个选项。它还包含了一个我们可能不需要的长篇解释。
无示例
text
用户:分析这个客户反馈并对问题进行分类。使用这些类别:UI/UX、性能、功能请求、集成、定价和其他。同时评估情感(积极/中性/消极)和优先级(高/中/低)。
以下是反馈:{{FEEDBACK}}
助手(Claude 的回应):
问题:UI/UX
情感:消极
优先级:高
客户对新仪表板设计感到沮丧,认为它杂乱且加载缓慢。他们特别提到缺少”导出”按钮,这可能是一个关键功能。这个问题需要作为高优先级来解决。
问题:集成
情感:积极
优先级:中
客户对现有的 Salesforce 集成感到满意,但希望看到对 Hubspot 的支持。这是一个可以考虑在未来产品更新中实现的功能请求。
问题:定价
情感:消极
优先级:高
客户认为定价不合理,特别是对于基本功能而言。他们威胁要转向竞争对手,所以这是一个需要审查的高优先级问题。
问题:性能
情感:消极
优先级:高
客户在移动应用程序中遇到关键问题,大文件上传持续导致崩溃。这是一个显著影响客户有效使用产品的问题,应该作为高优先级来解决。
问题:UI/UX
情感:积极
优先级:低
客户总体上对产品满意,特别提到了直观的 UI 和出色的客户支持。这是一个不需要任何即时行动的积极反馈。
有示例
text
用户:我们的客服团队被非结构化反馈淹没了。你的任务是为我们的产品和工程团队分析反馈并对问题进行分类。使用这些类别:UI/UX、性能、功能请求、集成、定价和其他。同时评估情感(积极/中性/消极)和优先级(高/中/低)。这里有一个示例:
<example>
输入:新仪表板一团糟!加载需要很长时间,而且我找不到导出按钮。请尽快修复这个问题!
类别:UI/UX、性能
情感:消极
优先级:高
</example>
现在,分析这个反馈:{{FEEDBACK}}
助手(Claude 的回应):
以下是客户反馈的分析:
1. 新仪表板一团糟!加载需要很长时间,而且我找不到导出按钮。请尽快修复这个问题!
类别:UI/UX、性能
情感:消极
优先级:高
2. 喜欢 Salesforce 集成!但如果你们能添加 Hubspot 就更好了。
类别:集成、功能请求
情感:积极
优先级:中
3. 你们的定价太荒谬了!基本功能要 $99/月?我要转向竞争对手 X。
类别:定价
情感:消极
优先级:高
4. 移动应用程序在我尝试上传大文件(>50MB)时持续崩溃。这对我们的外勤人员来说至关重要。
类别:性能
情感:消极
优先级:高
5. 总的来说,我对产品很满意。UI 很直观,客户支持一流。继续保持!
类别:UI/UX、其他(客户支持)
情感:积极
优先级:低
让 Claude 思考(思维链提示)以提高性能
在面对研究、分析或问题解决等复杂任务时,给 Claude 思考的空间可以显著提高其表现。这种被称为思维链(CoT)提示的技术,鼓励 Claude 逐步分解问题,从而产生更准确和细致的输出。
实施思维链之前
为什么要让 Claude 思考?
- 准确性: 逐步解决问题可以减少错误,尤其是在数学、逻辑、分析或一般复杂任务中。
- 连贯性: 结构化思维可以产生更连贯、组织更完善的回答。
- 调试: 查看 Claude 的思维过程有助于你找出提示可能不清晰的地方。
为什么不让 Claude 思考?
- 增加输出长度可能影响延迟。
- 并非所有任务都需要深入思考。明智地使用思维链以确保性能和延迟的适当平衡。
TIP
对于人类需要思考的任务,如复杂数学、多步骤分析、编写复杂文档或涉及多个因素的决策,请使用思维链。
如何提示思考
下面的思维链技术按从简单到复杂的顺序排列。较简单的方法在上下文窗口中占用较少空间,但通常功能也较弱。
TIP
思维链提示: 始终让 Claude 输出其思考过程。如果不输出思维过程,就不会发生思考!
- 基本提示: 在提示中包含”逐步思考”。
- 缺乏关于如何思考的指导(如果任务特别针对你的应用、用例或组织,这尤其不理想)
- 示例:撰写捐赠者邮件(基本思维链)
- 引导式提示: 概述 Claude 在思考过程中要遵循的具体步骤。
- 缺乏结构化,难以剥离和分离答案与思考过程。
- 示例:撰写捐赠者邮件(引导式思维链)
- 结构化提示: 使用像
<thinking>
和<answer>
这样的 XML 标签来分离推理和最终答案。- 示例:撰写捐赠者邮件(结构化引导思维链)
使用 XML 标签构建你的提示词
当你的提示词包含多个组件(如上下文、指令和示例)时,XML 标签可以成为改变游戏规则的工具。它们可以帮助 Claude 更准确地解析你的提示词,从而产生更高质量的输出。
TIP
XML 提示: 使用像<instructions>
、<example>
和<formatting>
这样的标签来清晰地分隔提示词的不同部分。这可以防止 Claude 混淆指令与示例或上下文。
为什么要使用 XML 标签?
- 清晰度: 清晰地分隔提示词的不同部分,确保提示词结构良好。
- 准确性: 减少因 Claude 误解提示词部分而导致的错误。
- 灵活性: 无需重写所有内容即可轻松查找、添加、删除或修改提示词的部分内容。
- 可解析性: 让 Claude 在输出中使用 XML 标签,可以通过后处理更容易提取其响应的特定部分。
NOTE
Claude 并没有经过特定的”最佳”XML 标签训练,尽管我们建议你的标签名称要与它们所包含的信息相符。
标签使用最佳实践
- 保持一致性: 在整个提示词中使用相同的标签名称,并在谈论内容时引用这些标签名称(例如,使用
<contract>
标签中的合同...)。 - 嵌套标签: 对于层次结构内容,你应该嵌套标签
<outer><inner></inner></outer>
。 - 高级用户提示: 将 XML 标签与其他技术结合使用,如多示例提示(
<examples>
)或思维链(<thinking>
、<answer>
)。这将创建超结构化、高性能的提示词。
通过系统提示给 Claude 赋予角色
在使用 Claude 时,您可以通过使用 system 参数来赋予它一个角色,从而显著提升其表现。这种被称为角色提示的技术,是使用系统提示与 Claude 交互的最强大方式。
合适的角色可以将 Claude 从一个通用助手转变为您的虚拟领域专家!
TIP
系统提示技巧:使用 system 参数来设置 Claude 的角色。将其他所有内容(如特定任务的指令)放在 user 轮次中。
为什么要使用角色提示?
- 提高准确性: 在复杂场景中(如法律分析或财务建模),角色提示可以显著提升 Claude 的表现。
- 定制语气: 无论您需要 CFO 的简洁还是文案撰写人的文采,角色提示都可以调整 Claude 的沟通风格。
- 提升专注度: 通过设置角色背景,Claude 能更好地保持在您任务特定要求的范围内。
如何给 Claude 赋予角色
在 Messages API 中使用 system 参数来设置 Claude 的角色:
python
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)
TIP
角色提示技巧:尝试不同的角色!对于相同的数据,数据科学家可能会看到与营销策略师不同的见解。而专门为世界 500 强公司进行客户洞察分析的数据科学家可能会产生又一种不同的结果!
示例 1:法律合同分析
- 没有角色时,Claude 可能会错过关键问题
- 有了角色后,Claude 能发现可能造成数百万损失的关键问题
示例 2:财务分析
- 没有角色时,Claude 的分析缺乏深度:
- 有了角色后,Claude 提供了可行的见解:
预填充 Claude 的回复以获得更好的输出控制
NOTE
预填充功能仅适用于非扩展思维模式。目前不支持在扩展思维模式下使用。
在使用 Claude 时,您可以通过预填充 Assistant 消息来引导其回复。这种强大的技术允许您指导 Claude 的行为,跳过前言,强制使用特定格式(如 JSON 或 XML),甚至帮助 Claude 在角色扮演场景中保持角色一致性。
在某些 Claude 表现不如预期的情况下,几句预填充的句子就能大大改善 Claude 的表现。一点预填充就能产生很大的影响!
如何预填充 Claude 的回复
要进行预填充,请在 Assistant 消息中包含所需的初始文本(Claude 的回复将从 Assistant 消息结束的地方继续):
python
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
]
)
WARNING
预填充内容不能以空格结尾。像 "As an AI assistant, I " 这样的预填充(末尾有空格)会导致错误。
示例 1:控制输出格式并跳过前言
TIP
高级用户提示:预填充 {
强制 Claude 跳过前言并直接输出 JSON 对象。这样更简洁、更清晰,程序也更容易解析,无需额外处理。
示例:不使用预填充的结构化数据提取
text
User:Extract the name, size, price, and color from this product description as a JSON object:
<description>
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.
</description>
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!
示例:使用预填充的结构化数据提取
text
User: Extract the name, size, price, and color from this product description as a JSON object:
<description>
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.
</description>
Assistant (prefill) {
Assistant (Claude’s response): “name”: “SmartHome Mini”,
“size”: “5 inches wide”,
“price”: “$49.99”,
“colors”: [
“black”,
“white”
]
}
示例 2:在角色扮演场景中保持角色
角色扮演提示:预填充带方括号的 [ROLE_NAME] 可以提醒 Claude 保持角色,即使在更长和更复杂的对话中也是如此。当与 system 参数中的角色提示结合使用时,这种方法特别有效。
示例:不使用角色提示保持角色
text
User (与”夏洛克·福尔摩斯” Claude 进行了50轮对话): What do you deduce about the owner of this shoe? <image>muddy_shoe.jpg</image>
Assistant: As an AI assistant, I would be happy to analyze the image of a muddy shoe as if you had provided it. Here’s my deduction…
示例:使用角色提示保持角色
text
User (与”夏洛克·福尔摩斯” Claude 进行了50轮对话): What do you deduce about the owner of this shoe?
<image>muddy_shoe.jpg</image>
Assistant (prefill) [Sherlock Holmes]
Assistant (Claude’s response):啊,这里有什么?华生,这是一个最为奇特的样本!让我们用敏锐的眼光来检查这只鞋子。你看,这泥土不是普通的伦敦粘土,而是具有汉普斯特德荒地特有的富含铁的土壤那种独特的红褐色。然而,鞋底的磨损痕迹更适合白教堂的鹅卵石路面,而不是荒地的缓坡。
现在,观察鞋带!它们打的是医疗专业人士常用的特殊结——无疑是多年系手术服养成的习惯。但鞋尖的擦痕讲述了另一个故事:这些痕迹与武术中的踢腿动作一致,特别是巴里兹术。
因此,我们可以得出结论,这只鞋的主人是一位医生,可能是外科医生,住在白教堂但经常去汉普斯特德荒地——也许是为了秘密练习巴里兹术,远离窥探的目光。华生,这是一个最有趣的案件!我们必须赶快行动;游戏开始了!
链式复杂提示以获得更强的性能
在处理复杂任务时,如果你试图在单个提示中处理所有内容,Claude 有时可能会出错。思维链(CoT)提示很好,但如果你的任务有多个不同的步骤,每个步骤都需要深入思考怎么办?
这就需要提示链:将复杂任务分解成更小、可管理的子任务。
为什么要链式提示?
- 准确性:每个子任务都能得到 Claude 的充分关注,减少错误。
- 清晰度:更简单的子任务意味着更清晰的指令和输出。
- 可追溯性:轻松定位和修复提示链中的问题。
何时使用链式提示
对于多步骤任务如研究综合、文档分析或迭代内容创作,使用链式提示。当任务涉及多个转换、引用或指令时,链式提示可以防止 Claude 遗漏或处理错误步骤。
记住: 链条中的每个环节都能得到 Claude 的充分关注!
TIP
调试提示:如果 Claude 遗漏了某个步骤或表现不佳,将该步骤单独放在一个提示中。这样你可以微调有问题的步骤,而无需重做整个任务。
如何链式提示
- 识别子任务:将任务分解为不同的、连续的步骤。
- 使用 XML 构建清晰的交接:使用 XML 标签在提示之间传递输出。
- 设定单一任务目标:每个子任务应该有一个明确的单一目标。
- 迭代:根据 Claude 的表现改进子任务。
链式工作流示例:
- 多步骤分析:参见下面的法律和商业示例。
- 内容创作流程:研究 → 大纲 → 草稿 → 编辑 → 格式化。
- 数据处理:提取 → 转换 → 分析 → 可视化。
- 决策制定:收集信息 → 列出选项 → 分析每个选项 → 推荐。
- 验证循环:生成内容 → 审查 → 改进 → 重新审查。
TIP
优化提示:对于具有独立子任务的任务(如分析多个文档),创建单独的提示并并行运行以提高速度。
高级:自我纠正链
你可以链式提示让 Claude 审查自己的工作!这可以捕获错误并改进输出,特别是对于高风险任务。
示例:分析法律合同
分析法律合同(不使用链式提示)
注意 Claude 在其电子邮件草稿中遗漏了提供建议修改的指令。
text
User: 你是我们的首席法务官。审查这份SaaS合同的风险,重点关注数据隐私、SLA和责任上限。
<contract>
{{CONTRACT}}
</contract>
然后起草一封给供应商的电子邮件,说明你的担忧和建议修改。
Assistant: 审查SaaS合同后,我发现几个问题:
1. 数据隐私(第7节):
- 问题:供应商对客户数据有广泛的”服务改进”使用权。
- 风险:可能导致未经授权的数据共享或变现。
1. SLA(第5节):
- 问题:99.5%的正常运行时间保证低于行业标准。
- 风险:过多的停机时间可能影响我们的运营。
1. 责任(第9节):
- 问题:上限设为3个月的费用。
- 风险:对潜在的数据泄露或服务故障不足。
电子邮件草稿:
尊敬的{{VENDOR}},
审查SaaS协议后,我们有以下担忧:
1. 数据隐私:我们要求我们的数据仅用于直接服务提供,而不是广泛的”服务改进”。请修改第7节。
2. SLA:99.5%的正常运行时间不足。我们需要99.99%并有明确定义的处罚。请修改第5节。
3. 责任:目前3个月费用的上限不足。我们建议12个月费用的上限,对数据泄露或故意不当行为没有上限。
我们重视我们的潜在合作关系,相信这些变更将为我们带来成功。请发送修改后的协议。
此致,
{{CLO_NAME}}
示例:分析法律合同(使用链式提示)
text
User: 你是我们的首席法务官。审查这份SaaS合同的风险,重点关注数据隐私、SLA和责任上限。
<contract>
{{CONTRACT}}
</contract>
在 `<risks>` 标签中输出你的发现。
Assistant({{CONCERNS}}):
1. 数据隐私(第7节):
- 问题:供应商对客户数据有广泛的”服务改进”使用权。
- 风险:可能导致未经授权的数据共享或客户数据变现。
- 影响:潜在的客户信任破坏,监管罚款(GDPR、CCPA)。
2. SLA(第5节):
- 问题:99.5%的正常运行时间保证低于行业标准(通常为99.99%)。
- 风险:每年最多43.8小时停机时间vs 99.99%时的52.6分钟。
- 影响:运营中断、收入损失、客户不满。
3. 责任(第9节):
- 问题:责任上限设为3个月的费用。
- 风险:对潜在的数据泄露、知识产权盗窃或长期服务故障不足。
- 影响:对可能远超上限的损害赔偿不足,如集体诉讼或监管罚款。
---
User: 起草一封给SaaS产品供应商的电子邮件,概述以下担忧并提出修改建议。以下是担忧:
<concerns>
{{CONCERNS}}
</concerns>
Assistant({{EMAIL}}):尊敬的{{VENDOR}},
经过对拟议SaaS协议的深入审查,我们的法务团队发现了几个必须解决的高优先级问题:
1. 数据隐私(第7节):
- 当前:对客户数据有广泛的”服务改进”使用权。
- 担忧:潜在的未经授权数据共享或变现。
- 建议修改:限制数据使用于直接服务提供。任何用于改进、分析或营销的使用必须选择加入、可撤销且匿名化。
2. SLA(第5节):
- 当前:99.5%正常运行时间保证。
- 担忧:每年最多43.8小时停机时间,威胁运营。
- 建议修改:99.99%正常运行时间,分级服务补偿。例如,<99.99%补偿10%,<99.9%补偿25%,<99.5%补偿50%。
3. 责任(第9节):
- 当前:上限为3个月费用。
- 担忧:对数据泄露、知识产权盗窃或长期停机严重不足。
- 建议修改:一般责任为12个月费用。数据泄露、故意不当行为、知识产权侵权无上限。
这些变更对我们来说是不可协商的。它们符合行业标准和我们对数据安全、运营卓越和信托责任的承诺。我们重视潜在的合作关系,解决这些问题将奠定坚实的基础。
请让您的法务团队审查并纳入这些变更。我们很乐意进一步讨论以确保相互理解和达成一致。
此致,
{{CLO_NAME}}
---
User: 你的任务是审查一封电子邮件并提供反馈。这是电子邮件:
<email>
{{EMAIL}}
</email>
就语气、清晰度和专业性给出反馈。
Assistant:
1. 语气:
- 专业且坚定但不对抗。
- 使用”不可协商”措辞强硬但考虑到问题的重要性是合理的。
- 合作性语言(“我们重视”,“乐意讨论”)平衡了坚定性,保持建设性语气。
2. 清晰度:
- 优秀的结构:每个问题都列出当前状态、担忧和建议修改。
- 技术术语(如”EBITDA”,“分级服务补偿”)适合B2B SaaS环境。
- 行动项目明确:供应商法务团队审查并纳入变更。
3. 专业性:
- 关注互惠和行业标准,而不仅是我们的要求。
- 提到更广泛的责任(数据安全、运营卓越、信托责任),提升了讨论层次。
- 提供进一步讨论,显示对理解和解决问题的承诺。
总的来说,电子邮件在坚定性和合作性之间取得了正确的平衡。它清晰地阐述了我们的担忧,提出具体解决方案,并保持专业、面向合作伙伴的语气。无需修改;可以发送。
长文本提示技巧
Claude 的扩展上下文窗口(Claude 3 模型为 200K tokens)使其能够处理复杂的、数据丰富的任务。本指南将帮助您有效地利用这一能力。
长文本提示的基本技巧
- 将长文本数据放在顶部:将您的长文档和输入(约 20K+ tokens)放在提示的顶部,位于查询、指令和示例之上。这可以显著提高 Claude 在所有模型中的表现。
NOTE
测试表明,将查询放在末尾可以将响应质量提高多达 30%,特别是在处理复杂的多文档输入时。
- 使用 XML 标签构建文档内容和元数据:在使用多个文档时,用
<document>
标签包装每个文档,并使用<document_content>
和<source>
(以及其他元数据)子标签以提高清晰度。
xml
多文档结构示例
<documents>
<document index="1">
<source>annual_report_2023.pdf</source>
<document_content>
{{ANNUAL_REPORT}}
</document_content>
</document>
<document index="2">
<source>competitor_analysis_q2.xlsx</source>
<document_content>
{{COMPETITOR_ANALYSIS}}
</document_content>
</document>
</documents>
分析年度报告和竞争对手分析。识别战略优势并推荐第三季度重点关注领域。
- 用引用支持响应:对于长文档任务,请先让 Claude 引用文档中的相关部分,然后再执行任务。这有助于 Claude 从文档内容的”噪音”中筛选出重要信息。
xml
引用提取示例
您是一位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>`标签中。
扩展思维技巧
本指南提供了充分利用 Claude 扩展思维功能的高级策略和技巧。扩展思维使 Claude 能够逐步解决复杂问题,提高在困难任务上的表现。当您启用扩展思维时,Claude 会在提供最终答案之前展示其推理过程,让您清楚地了解它是如何得出结论的。
请参阅扩展思维模型以了解何时使用扩展思维与标准思维模式的指导。
开始之前
本指南假定您已经决定使用扩展思维模式而不是标准模式,并且已经查看了我们关于如何开始使用扩展思维的基本步骤以及我们的扩展思维实施指南。
扩展思维的技术考虑因素
- 思维令牌的最小预算为 1024 个令牌。我们建议您从最小思维预算开始,并根据您的需求和任务复杂性逐步增加。
- 对于最佳思维预算超过 32K 的工作负载,我们建议您使用批处理以避免网络问题。推动模型进行超过 32K 令牌思考的请求会导致长时间运行的请求,可能会遇到系统超时和开放连接限制。
- 扩展思维在英语中表现最佳,但最终输出可以是 Claude 支持的任何语言。
- 如果您需要低于最小预算的思维,我们建议使用标准模式,关闭思维功能,使用带有 XML 标签(如
<thinking>
)的传统思维链提示。请参阅思维链提示。
扩展思维的提示技巧
先使用一般性指令,然后用更详细的步骤指令进行故障排除
Claude 通常在高层次指令下表现更好,让它深入思考任务,而不是给出规范性的逐步指导。模型在解决问题时的创造力可能超过人类规定最佳思维过程的能力。
例如,不要这样:
text
逐步思考这个数学问题:
1. 首先,确定变量
2. 然后,建立方程
3. 接下来,求解x
...
考虑这样:
text
请深入且详细地思考这个数学问题。
考虑多种方法并展示你完整的推理过程。
如果第一种方法不行,尝试其他方法。
话虽如此,Claude 在需要时仍然可以有效地遵循复杂的结构化执行步骤。该模型可以处理比以前版本更长的列表和更复杂的指令。我们建议您从更一般化的指令开始,然后阅读 Claude 的思维输出,并通过迭代提供更具体的指令来引导其思维。
扩展思维的多示例提示
多示例提示与扩展思维配合良好。当您为 Claude 提供如何思考问题的示例时,它将在其扩展思维块中遵循类似的推理模式。
您可以在扩展思维场景中使用 XML 标签(如<thinking>
或<scratchpad>
)在这些示例中包含少量示例,以指示扩展思维的规范模式。
Claude 会将模式推广到正式的扩展思维过程。但是,让 Claude 自由地以它认为最好的方式思考可能会得到更好的结果。
示例:
text
我将向你展示如何解决一个数学问题,然后我希望你解决一个类似的问题。
问题1:80的15%是多少?
<thinking>
要找到80的15%:
1. 将15%转换为小数:15% = 0.15
2. 相乘:0.15 × 80 = 12
</thinking>
答案是12。
现在解决这个问题:
问题2:240的35%是多少?
使用扩展思维最大化指令遵循
启用扩展思维时,Claude 在遵循指令方面表现显著提升。模型通常:
- 在扩展思维块内推理指令
- 在响应中执行这些指令
要最大化指令遵循:
- 清晰明确地表达您的需求
- 对于复杂的指令,考虑将其分解为 Claude 应该有条理地完成的编号步骤
- 给予 Claude 足够的预算来充分处理指令
使用扩展思维调试和引导 Claude 的行为
您可以使用 Claude 的思维输出来调试 Claude 的逻辑,尽管这种方法并不总是完全可靠。
为了最好地使用这种方法,我们建议以下技巧:
- 我们不建议在用户文本块中传递 Claude 的扩展思维,因为这不会提高性能,实际上可能会降低结果质量。
- 明确不允许预填扩展思维,手动更改模型思维块之后的输出文本可能会由于模型混淆而降低结果质量。
当扩展思维关闭时,标准的 assistant 响应文本预填仍然是允许的。
NOTE
有时 Claude 可能会在助手输出文本中重复其扩展思维。如果您想要一个干净的响应,请指示 Claude 不要重复其扩展思维,只输出答案。
充分利用长输出和长篇思维
启用扩展思维和扩展输出功能(测试版)的 Claude 在生成大量批量数据和长篇文本方面表现出色。
对于数据集生成用例,尝试使用”请创建一个极其详细的表格…”等提示来生成全面的数据集。
对于详细内容生成等用例,如果您想生成更长的扩展思维块和更详细的响应,请尝试以下技巧:
- 同时增加最大扩展思维长度并明确要求更长的输出
- 对于非常长的输出(20,000+字),请要求一个详细的大纲,包括段落级别的字数。然后要求 Claude 将其段落索引到大纲中并保持指定的字数
WARNING
我们不建议您为了输出令牌而推动 Claude 输出更多令牌。相反,我们建议您从小的思维预算开始,根据需要增加以找到适合您用例的最佳设置。
以下是由于较长扩展思维而使 Claude 表现出色的示例用例:
复杂的 STEM 问题
复杂的 STEM 问题需要 Claude 建立心智模型、应用专业知识并逐步完成逻辑步骤—这些过程都受益于更长的推理时间。
text
编写一个在超立方体内弹跳的黄色球的 Python 脚本,
确保正确处理碰撞检测。
让超立方体缓慢旋转。
确保球始终保持在超立方体内。
TIP
这个复杂的 4D 可视化挑战最能充分利用长时间的扩展思维,因为 Claude 需要处理数学和编程的复杂性。
约束优化问题
约束优化挑战 Claude 同时满足多个相互竞争的要求,这在允许长时间扩展思维时效果最好,这样模型可以有条理地处理每个约束。
标准提示
text
规划一个为期一周的日本旅行。
增强提示
text
规划一个7天的日本旅行,需满足以下约束:
- 预算2,500美元
- 必须包括东京和京都
- 需要适应素食饮食
- 偏好文化体验而非购物
- 必须包含一天徒步
- 每天地点之间的交通时间不超过2小时
- 每天下午需要空闲时间打电话回家
- 必须尽可能避开人群
TIP
在需要平衡多个约束的情况下,给予 Claude 更多空间来思考如何最优地满足所有要求时,它自然会表现得最好。
思维框架
结构化思维框架为 Claude 提供了明确的方法论来遵循,当给予 Claude 长时间的扩展思维空间来遵循每个步骤时,可能会效果最好。
标准提示
text
为微软在2027年前进入个性化医疗市场制定全面战略。
增强提示
text
为微软在2027年前进入个性化医疗市场制定全面战略。
首先进行:
1. 蓝海战略画布分析
2. 应用波特五力模型识别竞争压力
接下来,基于监管和技术变量进行四个不同未来场景的规划练习。
对于每个场景:
- 使用安索夫矩阵制定战略响应
最后,应用三个视界框架来:
- 绘制转型路径
- 识别每个阶段的潜在颠覆性创新
TIP
通过指定必须按顺序应用的多个分析框架,思考时间自然会增加,因为 Claude 需要有条理地完成每个框架。
让 Claude 反思和检查其工作以提高一致性和错误处理
您可以使用简单的自然语言提示来提高一致性和减少错误:
- 在宣布任务完成之前,要求 Claude 用简单的测试验证其工作
- 指示模型分析其前一步骤是否达到了预期结果
- 对于编码任务,要求 Claude 在其扩展思维中运行测试用例
示例:
text
编写一个计算数字阶乘的函数。
在完成之前,请使用以下测试用例验证你的解决方案:
- n=0
- n=1
- n=5
- n=10
并修复你发现的任何问题。