Claude学院

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-keyanthropic-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 周计划,每周列学习内容、练习任务与自测题,难度循序渐进,每周结束做一次复盘提问。

让角色不「破功」的三个技巧

  1. 用边界条件代替强命令:Claude Opus 4.8、Sonnet 4.6 对系统提示词遵循度很高,「严禁/必须」类高压措辞容易过度触发。把「你绝对不能出戏」改成描述性的「即便用户换话题,也保持【角色】身份回答」更稳。
  2. 用 few-shot 锁定风格:在 system 后追加一两组「用户问—角色答」的示例,比纯文字描述更能固定语气和格式,做法见 Claude Few-shot 示例怎么用?3 步提升回答准确率
  3. 多轮对话保留历史:每轮把之前的 user/assistant 消息一起回传,角色记忆才不会丢,上下文管理细节见 Claude API 多轮对话怎么实现?上下文管理详解

常见问题

角色提示词放 system 还是 user 消息里更好?

system。它专门承载贯穿整个会话的稳定指令,角色身份正属于此类。放进 user 消息会被后续对话稀释,多轮后更容易出戏,也无法很好地复用提示词缓存。

角色扮演时 Claude 会一本正经地编造内容怎么办?

在能力边界里明确写出「不确定就说明、不编造事实」,并要求它在没把握时给出「需进一步核实」之类的标记。涉及法律、医疗、价格等场景尤其要加这条约束。系统性的方法见 避免幻觉的 5 个方法

用 Opus 4.8 还是 Sonnet 4.6 做角色扮演?

日常对话型角色(翻译、文案、教练)用 Sonnet 4.6 性价比最高,速度也快;需要复杂推理或长程一致性的角色(如多轮技术面试、深度辩论)再用 Opus 4.8。具体限额与价格以 Anthropic 官网为准。

提示词工程