Skip to content

Claude 4 提示工程最佳实践

本文翻译自 Anthropic 官方文档

本指南提供针对 Claude 4.x 模型(Sonnet 4.5、Haiku 4.5、Opus 4.5)的提示工程技巧。这些模型经过训练,具有比之前版本更精确的指令遵循能力。


通用原则

明确表达你的指令

Claude 4.x 模型对清晰、明确的指令响应良好。具体说明期望的输出可以显著提升结果质量。

效果较差:

text
创建一个分析仪表板

效果更好:

text
创建一个分析仪表板。包含尽可能多的相关功能和交互。
超越基础功能,创建一个功能齐全的实现。

提示

如果你希望获得以前 Claude 模型"超额完成"的行为,需要更明确地请求这些行为。

提供上下文以提升性能

解释指令背后的原因或动机,可以帮助 Claude 更好地理解你的目标。

效果较差:

text
永远不要使用省略号

效果更好:

text
你的回复将由文本转语音引擎朗读,所以永远不要使用省略号,
因为文本转语音引擎不知道如何发音。

Claude 足够聪明,可以从解释中进行泛化。

注意示例和细节

Claude 4.x 模型会密切关注细节和示例。确保你的示例与期望的行为一致,避免包含不希望出现的行为。


长时任务和状态跟踪

跨上下文窗口工作流

Claude 4.5 模型在长时推理任务中表现出色,具有卓越的状态跟踪能力。它通过专注于渐进式进展来保持方向感。

管理上下文限制的提示:

text
你的上下文窗口会在接近限制时自动压缩,允许你从中断处无限继续工作。
因此,不要因为 token 预算问题而提前停止任务。在接近 token 预算限制时,
在上下文窗口刷新之前将当前进度和状态保存到记忆中。始终尽可能持久和自主,
完整完成任务,即使接近预算末尾也是如此。

多上下文窗口工作流建议

  1. 第一个上下文窗口使用不同的提示:用第一个窗口建立框架(编写测试、创建设置脚本),然后用后续窗口迭代待办列表

  2. 让模型以结构化格式编写测试

json
// tests.json
{
  "tests": [
    {"id": 1, "name": "authentication_flow", "status": "passing"},
    {"id": 2, "name": "user_management", "status": "failing"}
  ],
  "total": 200,
  "passing": 150,
  "failing": 25
}
  1. 设置便利工具:鼓励 Claude 创建设置脚本(如 init.sh)来优雅地启动服务器、运行测试套件和代码检查工具

  2. 使用 Git 进行状态跟踪:Git 提供已完成工作的日志和可恢复的检查点


工具使用模式

明确指示采取行动

Claude 4.5 模型经过训练以精确遵循指令。如果你说"能否建议一些更改",它有时会只提供建议而不实施。

效果较差(Claude 只会建议):

text
能否建议一些改进这个函数的更改?

效果更好(Claude 会进行更改):

text
修改这个函数以提高其性能。

让 Claude 默认采取行动的系统提示:

text
<default_to_action>
默认实施更改而不是只建议。如果用户意图不清楚,推断最有用的可能操作并继续,
使用工具发现任何缺失的细节而不是猜测。
</default_to_action>

优化并行工具调用

Claude 4.x 模型擅长并行工具执行,Sonnet 4.5 特别积极地同时触发多个操作:

  • 在研究过程中运行多个推测性搜索
  • 同时读取多个文件以更快地建立上下文
  • 并行执行 bash 命令

最大化并行效率的提示:

text
<use_parallel_tool_calls>
如果你打算调用多个工具且工具调用之间没有依赖关系,
请并行进行所有独立的工具调用。尽可能同时调用工具而不是顺序调用。
例如,读取 3 个文件时,并行运行 3 个工具调用同时将所有 3 个文件读入上下文。
</use_parallel_tool_calls>

控制输出格式

有效的格式控制方法

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

    • 不要说:"不要在回复中使用 markdown"
    • 要说:"你的回复应该由流畅的散文段落组成"
  2. 使用 XML 格式指示器

    text
    在 <smoothly_flowing_prose_paragraphs> 标签中写散文部分。
  3. 匹配提示风格与期望输出

    • 提示中使用的格式风格可能会影响 Claude 的回复风格

减少 Markdown 使用的详细提示:

text
<avoid_excessive_markdown_and_bullet_points>
在写报告、文档、技术解释、分析或任何长篇内容时,使用清晰流畅的散文,
使用完整的段落和句子。使用标准段落分隔进行组织,markdown 主要保留用于
`内联代码`、代码块和简单标题。避免使用**粗体**和*斜体*。

不要使用有序列表或无序列表,除非:a) 你在展示真正独立的项目,
或 b) 用户明确要求列表或排名。
</avoid_excessive_markdown_and_bullet_points>

代理编码最佳实践

鼓励代码探索

text
在提出代码编辑之前始终阅读和理解相关文件。不要对未检查的代码进行推测。
如果用户引用特定文件/路径,你必须在解释或提出修复之前打开并检查它。
在搜索代码中的关键事实时要严谨和持久。

避免过度工程化

Claude Opus 4.5 倾向于过度工程化——创建额外文件、添加不必要的抽象。使用以下提示保持解决方案简洁:

text
避免过度工程化。只进行直接要求的或明显必要的更改。保持解决方案简单和专注。

不要添加功能、重构代码或进行超出要求的"改进"。bug 修复不需要清理周围代码。
简单功能不需要额外的可配置性。

不要为不可能发生的场景添加错误处理、后备或验证。信任内部代码和框架保证。
只在系统边界(用户输入、外部 API)进行验证。

不要为一次性操作创建辅助工具、实用程序或抽象。不要为假设的未来需求设计。
正确的复杂度是当前任务所需的最小复杂度。

减少幻觉

text
<investigate_before_answering>
永远不要对未打开的代码进行推测。如果用户引用特定文件,
你必须在回答之前阅读该文件。确保在回答代码库问题之前调查和阅读相关文件。
除非你确定正确答案,否则在调查之前不要对代码做任何声明——
给出基于事实、无幻觉的答案。
</investigate_before_answering>

前端设计

Claude 4.x 模型擅长构建复杂的网络应用,但可能默认使用通用模式。使用以下提示创建独特、有创意的前端:

text
<frontend_aesthetics>
专注于:
- 排版:选择美观、独特、有趣的字体。避免 Arial 和 Inter 等通用字体。
- 颜色和主题:承诺一致的美学。使用 CSS 变量保持一致性。
  主色调配以锐利的强调色效果优于胆怯的均匀分布调色板。
- 动画:为效果和微交互使用动画。优先使用纯 CSS 解决方案。
- 背景:创造氛围和深度,而不是默认使用纯色。

避免通用的 AI 生成美学:
- 过度使用的字体系列(Inter、Roboto、Arial、系统字体)
- 陈词滥调的配色方案(特别是白色背景上的紫色渐变)
- 可预测的布局和组件模式
</frontend_aesthetics>

思考能力

利用扩展思考

Claude 4.x 模型提供思考能力,对于涉及工具使用后反思或复杂多步推理的任务特别有帮助:

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

注意

当禁用扩展思考时,Claude Opus 4.5 对"think"一词及其变体特别敏感。 建议用"consider"、"believe"、"evaluate"等替代词。


相关资源


最后更新:2025年12月 | 来源:Anthropic 官方文档

Claude Code 中文文档 - 社区翻译项目