系统提示是自定义 Claude 如何响应用户输入的强大方式。您可以塑造 Claude 的语气、风格和处理方式以匹配您的特定用例,而不是得到通用的答案。

为什么系统提示很重要
考虑构建一个数学辅导聊天机器人。当学生问"我该如何求解 5x + 2 = 3 中的 x?"时,您希望 Claude 表现得像一个真正的辅导老师,而不仅仅是给出答案。一个好的数学辅导老师应该:
- 最初给出提示而不是完整的解答
- 耐心地逐步引导学生解决问题
- 展示类似问题的解答作为示例
您绝对不希望 Claude:
- 立即给出直接答案
- 告诉学生直接用计算器
系统提示如何工作

系统提示为 Claude 提供关于如何响应的指导。您将它们定义为纯字符串,并将其传递到 create 函数调用中。主要优势包括:
- 系统提示为 Claude 提供关于如何响应的指导
- Claude 会尝试以指定角色中的人会做出响应的方式来响应
- 有助于让 Claude 专注于任务
以下是基本结构:
python
system_prompt = """
You are a patient math tutor.
Do not directly answer a student's questions.
Guide them to a solution step by step.
"""
client.messages.create(
model=model,
messages=messages,
max_tokens=1000,
system=system_prompt
)看出差异
没有系统提示时,Claude 会立即给出完整的逐步解答。这可能有帮助,但它不会鼓励学生自己思考问题。
使用数学辅导系统提示后,Claude 的响应发生了显著变化。Claude 不再提供完整的解答,而是提出引导性问题,例如"您认为隔离 x 的好的第一步是什么?考虑一下我们可能需要对两边执行什么操作来开始移动项。"
构建灵活的聊天函数
与硬编码系统提示不同,您可以通过接受系统提示作为参数,使您的聊天函数更具可重用性:
python
def chat(messages, system=None):
params = {
"model": model,
"max_tokens": 1000,
"messages": messages,
}
if system:
params["system"] = system
message = client.messages.create(**params)
return message.content[0].text这种方法处理了一个重要细节:Claude 的 API 不接受 system=None,因此您需要仅在提供了系统参数时才有条件地包含它。
现在您可以调用您的聊天函数,无论是否带有系统提示:
python
# 没有系统提示
answer = chat(messages)
# 有系统提示
system = """
You are a patient math tutor.
Do not directly answer a student's questions.
Guide them to a solution step by step.
"""
answer = chat(messages, system=system)系统提示对于创建行为一致且适合其预期用途的 AI 应用程序至关重要。它们将通用的 AI 响应转变为专业化、符合角色的交互。