Claude Prompt Engineering 指南
Prompt Engineering(提示词工程)是高效使用 Claude 的关键技能。一个精心设计的 Prompt 能显著提升输出质量、准确性和一致性。本文介绍 Claude 特有的提示词技巧和最佳实践。
基础原则
- 清晰具体:明确告诉 Claude 你想要什么,避免模糊的指令
- 提供上下文:给出必要的背景信息和约束条件
- 指定格式:描述期望的输出格式(列表、表格、代码、JSON 等)
- 分步指令:复杂任务拆解为有序的步骤
System Prompt 设计
System Prompt 定义了 Claude 的角色、行为和限制。合理的 System Prompt 可以确保一致性的回复质量。
基本结构
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
system="你是一个资深的 Python 后端工程师,专注于 Django 框架。\n"
"回答问题时:\n"
"1. 使用 Python 3.12+ 的最新语法\n"
"2. 遵循 PEP 8 代码规范\n"
"3. 考虑性能和安全性\n"
"4. 提供可运行的代码示例",
messages=[{"role": "user", "content": "如何实现一个安全的用户认证系统?"}]
)
System Prompt 最佳实践
- 定义角色身份和专业领域
- 明确输出的风格和格式要求
- 列出约束条件和注意事项
- 保持简洁,避免过长导致干扰
Few-Shot 提示(示例学习)
通过提供几个输入-输出示例,让 Claude 理解你期望的模式:
messages = [
{"role": "user", "content": "将以下内容转换为 JSON:\n姓名:张三,年龄:25,城市:北京"},
{"role": "assistant", "content": '{"name": "张三", "age": 25, "city": "北京"}'},
{"role": "user", "content": "将以下内容转换为 JSON:\n姓名:李四,年龄:30,城市:上海"},
{"role": "assistant", "content": '{"name": "李四", "age": 30, "city": "上海"}'},
{"role": "user", "content": "将以下内容转换为 JSON:\n姓名:王五,年龄:28,城市:广州"}
]
Few-Shot 特别适用于格式转换、分类标注、风格统一等任务。
Chain-of-Thought(思维链)
让 Claude 逐步推理,而不是直接给出答案,可以大幅提升复杂任务的准确性。
方法一:在 Prompt 中要求
"请分析这段代码的性能瓶颈。先逐步分析每个函数的时间复杂度,然后给出优化建议。"
方法二:使用 Extended Thinking
Claude 支持 Extended Thinking 模式,让模型在回答之前进行深度内部推理:
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=16384,
thinking={
"type": "enabled",
"budget_tokens": 10000 # 分配给思考过程的 Token
},
messages=[{"role": "user", "content": "设计一个高并发的订单处理系统架构"}]
)
XML 标签结构化
Claude 对 XML 标签的理解非常好,使用 XML 标签来组织复杂的 Prompt 结构:
prompt = """
<context>
你正在审查一个 Node.js Express 项目的安全性。
项目使用 JWT 认证,MongoDB 数据库。
</context>
<code>
app.post('/login', async (req, res) => {
const { username, password } = req.body;
const user = await User.findOne({ username });
if (user.password === password) {
const token = jwt.sign({ id: user._id }, 'secret123');
res.json({ token });
}
});
</code>
<task>
1. 列出这段代码中的所有安全漏洞
2. 对每个漏洞评估严重级别(高/中/低)
3. 提供修复后的完整代码
</task>
"""
常用 XML 标签
<context>:提供背景信息<instructions>:具体指令<examples>:示例<constraints>:限制和约束<output_format>:输出格式要求
高级技巧
1. 角色扮演增强
"作为一名有 10 年经验的安全审计专家,审查以下代码..."
2. 负面约束
"不要使用 any 类型,不要省略错误处理,不要使用 var"
3. 输出长度控制
"用 3-5 句话简洁总结" # 控制简短
"详细解释每一步,包括原理和示例" # 要求详尽
4. 多轮对话优化
在多轮对话中,及时总结之前的讨论要点,避免上下文漂移:
"基于我们之前讨论的方案(使用 Redis 做缓存 + PostgreSQL 做持久化),现在开始实现缓存层..."
5. 置信度要求
"如果你不确定某个答案,请明确指出并说明原因,而不是猜测。"
注意:过于复杂的 Prompt 有时反而会降低效果。如果一个 Prompt 超过 500 字,考虑拆分成多个步骤或使用 System Prompt + User Message 的组合方式。
提示:通过轻舟 AI(claude4u.com)使用 Claude API,支持 System Prompt、Extended Thinking、Prompt Caching 等所有高级功能,让你的 Prompt Engineering 实践不受限制。
轻舟 AI