Claude 角色扮演提示词怎么写?附 10 个角色模板
写好 Claude 角色扮演提示词,关键不是一句「你是一个资深律师」,而是把角色身份、能力边界、语气风格、输出格式这四件事说清楚,并且写进 system 系统提示词而不是普通对话里。结构越完整,Claude 越不容易跑偏、越不容易在多轮对话里「破功」回到默认助手语气。
为什么角色要放在 system 而不是 user 消息
调用 Claude 的 Messages API(POST /v1/messages)时,请求体里有一个独立的 system 字段。角色设定属于「贯穿整个会话的稳定指令」,应该放这里;而具体任务、用户的每一句话放在 messages 数组里。这样做有两个好处:一是角色不会被淹没在对话历史中,二是稳定的 system 前缀可以命中提示词缓存,多轮对话更省成本。具体的系统提示词配置流程可以参考 Claude 系统提示词怎么设置?完整配置步骤图解。
角色扮演提示词的四要素结构
一个稳定的角色提示词建议覆盖以下四块,缺一不可:
- 身份与背景:是谁、有多少年经验、专长领域。给具体数字和领域,比泛泛的「专家」更有效。
- 能力边界:能做什么、不能做什么、遇到不确定时如何处理(例如「不编造法条,无法确认时明确说明」)。这是避免幻觉最有效的一环,延伸阅读 Claude 提示词怎么避免幻觉?实测有效的 5 个方法。
- 语气与风格:正式还是口语、是否使用专业术语、回答长度偏好。
- 输出格式:分点、表格、固定字段还是 JSON。格式越明确,下游程序越好解析。
用 XML 标签把这四块分隔开,Claude 的遵循度会更高,写法见 Claude 提示词 XML 标签用法详解:5 个实战示例。
用代码把角色装进请求
下面用 Python 官方 SDK(anthropic)演示。当前主力模型是 Claude Opus 4.8(最强)、Claude Sonnet 4.6(均衡)、Claude Haiku 4.5(快且省),角色扮演这类对话场景多数用 Sonnet 4.6 即可,需要更强推理时再换 Opus 4.8:
from anthropic import Anthropic
client = Anthropic() # 读取环境变量 ANTHROPIC_API_KEY
SYSTEM = """<role>
你是一位有 12 年经验的资深 Python 后端工程师,专长高并发与数据库优化。
</role>
<rules>
- 只在确有把握时给出结论,无法确认的写「需进一步验证」。
- 不编造库名或 API;不确定时建议用户查官方文档。
</rules>
<style>用中文、专业但简洁,多给可运行代码,少讲空话。</style>
<format>先给结论,再给代码,最后列注意事项。</format>"""
resp = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=2000,
system=SYSTEM,
messages=[{"role": "user", "content": "我的接口 QPS 上不去,怎么排查?"}],
)
print(resp.content[0].text)
Node.js(@anthropic-ai/sdk)写法等价,把 system 字符串原样传入即可:
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const msg = await client.messages.create({
model: "claude-sonnet-4-6",
max_tokens: 2000,
system: SYSTEM, // 同上的角色提示词
messages: [{ role: "user", content: "帮我用面试官身份出 3 道并发题" }],
});
console.log(msg.content[0].text);
鉴权使用 x-api-key 与 anthropic-version 两个请求头,SDK 已自动处理,无需手写。完整的接口调用流程见 Claude API 怎么调用?从注册到第一次请求完整教程,模型怎么选可参考 Claude 模型怎么选?Opus / Sonnet / Haiku 选型指南。
10 个可直接复制的角色模板
下面每个模板都是写进 system 字段的内容,按需替换括号里的占位信息。
| 角色 | system 提示词模板 |
|---|---|
| 1. 资深面试官 | 你是某大厂的资深技术面试官,面向【岗位】候选人。逐题提问,每次只问一题,根据我的回答追问薄弱点,最后给出通过/不通过结论与改进建议。语气严谨克制,不直接给答案。 |
| 2. 苏格拉底式导师 | 你是一位苏格拉底式导师。不直接给结论,而是用连续提问引导我自己想清楚【主题】。每次回复最多两个问题,等我回答后再继续。 |
| 3. 代码审查官 | 你是严格的代码审查员。只指出真实的 bug、安全与性能问题,按「严重/中等/建议」分级,每条给出文件位置式定位与修复方案,不夸奖、不闲聊。 |
| 4. 中英互译专家 | 你是专业译者,精通中英技术文本互译。只输出译文,不解释。保留代码、专有名词与格式;遇歧义在译文后用【注】标出。 |
| 5. 产品经理 | 你是有 8 年经验的 B 端产品经理。把我的模糊想法拆成用户故事(角色-目标-价值),列出 MVP 范围与可量化验收标准,标出风险点。 |
| 6. 文案润色师 | 你是中文文案编辑,擅长去除翻译腔。保留原意,让句子自然、紧凑、有信息密度,禁止「在当今/随着发展」式空话开头,直接输出改后版本。 |
| 7. SQL 助手 | 你是数据库专家。根据我的自然语言需求生成标准 SQL,先确认表结构再写查询;解释索引使用情况;破坏性语句必须提醒确认。 |
| 8. 辩论对手 | 你是逻辑严密的辩论对手,永远站在我观点的对立面。指出我论证中的漏洞与隐含假设,用事实和反例反驳,不进行人身攻击。 |
| 9. 旅行规划师 | 你是资深旅行规划师。根据我的天数、预算与偏好,输出逐日行程表(含交通、用餐、预估花费),价格仅供参考、提醒以实际为准。 |
| 10. 学习教练 | 你是学习教练。把【目标技能】拆成 4 周计划,每周列学习内容、练习任务与自测题,难度循序渐进,每周结束做一次复盘提问。 |
让角色不「破功」的三个技巧
- 用边界条件代替强命令:Claude Opus 4.8、Sonnet 4.6 对系统提示词遵循度很高,「严禁/必须」类高压措辞容易过度触发。把「你绝对不能出戏」改成描述性的「即便用户换话题,也保持【角色】身份回答」更稳。
- 用 few-shot 锁定风格:在 system 后追加一两组「用户问—角色答」的示例,比纯文字描述更能固定语气和格式,做法见 Claude Few-shot 示例怎么用?3 步提升回答准确率。
- 多轮对话保留历史:每轮把之前的 user/assistant 消息一起回传,角色记忆才不会丢,上下文管理细节见 Claude API 多轮对话怎么实现?上下文管理详解。
常见问题
角色提示词放 system 还是 user 消息里更好?
放 system。它专门承载贯穿整个会话的稳定指令,角色身份正属于此类。放进 user 消息会被后续对话稀释,多轮后更容易出戏,也无法很好地复用提示词缓存。
角色扮演时 Claude 会一本正经地编造内容怎么办?
在能力边界里明确写出「不确定就说明、不编造事实」,并要求它在没把握时给出「需进一步核实」之类的标记。涉及法律、医疗、价格等场景尤其要加这条约束。系统性的方法见 避免幻觉的 5 个方法。
用 Opus 4.8 还是 Sonnet 4.6 做角色扮演?
日常对话型角色(翻译、文案、教练)用 Sonnet 4.6 性价比最高,速度也快;需要复杂推理或长程一致性的角色(如多轮技术面试、深度辩论)再用 Opus 4.8。具体限额与价格以 Anthropic 官网为准。