本指南提供了针对 Claude 4 模型(Opus 4.1、Opus 4 和 Sonnet 4)的特定提示工程技术,帮助您在应用程序中获得最佳结果。这些模型经过训练,比之前几代 Claude 模型具有更精确的指令遵循能力。

一般原则

明确您的指令

Claude 4 模型对清晰、明确的指令响应良好。对您期望的输出具体说明可以帮助提升结果。希望获得之前 Claude 模型”超越期望”行为的客户可能需要在 Claude 4 中更明确地请求这些行为。

添加上下文以提高性能

提供指令背后的上下文或动机,例如向 Claude 解释为什么这种行为很重要,可以帮助 Claude 4 模型更好地理解您的目标并提供更有针对性的响应。

Claude 足够聪明,能够从解释中进行概括。

对示例和细节保持警惕

Claude 4 模型关注细节和示例作为指令遵循的一部分。确保您的示例与您想要鼓励的行为一致,并最小化您想要避免的行为。

特定情况的指导

控制响应格式

我们发现以下几种方法在引导 Claude 4 模型输出格式方面特别有效:

  1. 告诉 Claude 该做什么,而不是不该做什么

    • 不要说:“不要在您的响应中使用 markdown”
    • 尝试:“您的响应应该由流畅的散文段落组成。”
  2. 使用 XML 格式指示符

    • 尝试:“在 <smoothly_flowing_prose_paragraphs> 标签中编写您响应的散文部分。”
  3. 使您的提示风格与期望的输出匹配

    您在提示中使用的格式风格可能会影响 Claude 的响应风格。如果您在输出格式的可控性方面仍然遇到问题,我们建议您尽可能地使您的提示风格与您期望的输出风格匹配。例如,从您的提示中删除 markdown 可以减少输出中 markdown 的数量。

利用思考和交错思考能力

Claude 4 提供思考能力,这对于涉及工具使用后反思或复杂多步推理的任务特别有帮助。您可以引导其初始或交错思考以获得更好的结果。

示例提示
收到工具结果后,仔细反思其质量并确定最佳下一步,然后再继续。使用您的思考来基于这些新信息进行规划和迭代,然后采取最佳的下一步行动。

有关思考能力的更多信息,请参阅扩展思考

优化并行工具调用

Claude 4 模型在并行工具执行方面表现出色。它们在使用并行工具调用方面有很高的成功率,无需任何提示即可做到这一点,但一些轻微的提示可以将这种行为提升到约 100% 的并行工具使用成功率。我们发现这个提示最有效:

代理的示例提示
为了最大效率,每当您需要执行多个独立操作时,请同时调用所有相关工具,而不是按顺序调用。

减少代理编码中的文件创建

Claude 4 模型有时可能会为测试和迭代目的创建新文件,特别是在处理代码时。这种方法允许 Claude 使用文件,特别是 python 脚本,作为”临时草稿本”,然后保存其最终输出。使用临时文件可以改善结果,特别是对于代理编码用例。

如果您希望最小化新文件的创建,您可以指示 Claude 在完成后清理:

示例提示
如果您创建任何临时新文件、脚本或辅助文件进行迭代,请在任务结束时通过删除这些文件来清理它们。

增强视觉和前端代码生成

对于前端代码生成,您可以通过提供明确的鼓励来引导 Claude 4 模型创建复杂、详细和交互式的设计:

示例提示
不要保留。全力以赴。

您还可以通过提供关于重点关注内容的额外修饰符和细节来改善 Claude 在特定领域的前端性能:

  • “包含尽可能多的相关功能和交互”
  • “添加周到的细节,如悬停状态、过渡和微交互”
  • “创建一个展示 Web 开发能力的令人印象深刻的演示”
  • “应用设计原则:层次结构、对比、平衡和动态”

避免专注于通过测试和硬编码

前沿语言模型有时可能过于专注于使测试通过,而牺牲更通用的解决方案。为了防止这种行为并确保稳健、可概括的解决方案:

示例提示
请编写一个高质量、通用的解决方案。实现一个对所有有效输入都能正确工作的解决方案,而不仅仅是测试用例。不要硬编码值或创建仅适用于特定测试输入的解决方案。相反,实现真正解决问题的实际逻辑。

专注于理解问题要求并实现正确的算法。测试是为了验证正确性,而不是定义解决方案。提供遵循最佳实践和软件设计原则的原则性实现。

如果任务不合理或不可行,或者任何测试不正确,请告诉我。解决方案应该是稳健、可维护和可扩展的。

迁移考虑

从 Sonnet 3.7 迁移到 Claude 4 时:

  1. 对期望的行为要具体:考虑准确描述您希望在输出中看到的内容。

  2. 用修饰符来框定您的指令:添加鼓励 Claude 提高其输出质量和细节的修饰符可以帮助更好地塑造 Claude 的性能。例如,不要说”创建一个分析仪表板”,而要使用”创建一个分析仪表板。包含尽可能多的相关功能和交互。超越基础功能,创建一个功能齐全的实现。”

  3. 明确请求特定功能:当需要动画和交互元素时,应该明确请求。