提示词工程入门:和 Claude 聊天的正确姿势

AI 不是神仙,得把话说明白
很多人第一次用 Claude 或者豆包、Kimi 这些大语言模型(LLM),都觉得 AI 应该什么都懂,自己随便说两句它就能完美理解。结果一用才发现不对劲,AI 给的答案经常牛头不对马嘴,要么长篇大论说不到点子上,要么三言两语敷衍了事,有时候干脆就跑偏了。
问题出在哪?不是 AI 不行,是咱们说话的方式有问题。
你想想,公司来了个新同事,能力特别强但完全不了解你们的项目。你上来就跟他说"帮我把那个弄一下",他能听懂吗?肯定不能。你得告诉他弄什么、怎么弄、弄成什么样,说得越清楚他干得越好。跟 AI 打交道也是这个道理,这就是提示词工程(Prompt Engineering)的本质——学会AI对话的正确方式。
Claude API 怎么用:三样东西必须填

用 Claude API 就跟点外卖填地址似的,有几个格子是必须填的,不填人家不给你送。
第一个是 model,就是选哪个模型干活。 Claude 家族有好几个型号,就跟请人干活得先说清楚请谁一样。claude-sonnet-4 是性价比最高的,大多数活都能干;claude-opus-4 是顶配,复杂任务首选但价格贵;claude-haiku 速度快价格低,简单任务用它最划算。一般情况下用 sonnet 就够了:
model="claude-sonnet-4-20250514"
第二个是 max_tokens,限制 AI 最多能说多少话。 注意这是上限,不是说它一定要说这么多。就跟你让同事写报告说"最多两千字"一样,他可能五百字就把事说清楚了,也可能写到两千字被强行打断,打断的时候可能话说一半句子都不完整。所以这个数别设太小:
max_tokens=2000
第三个是 messages,就是你们的聊天记录。 这是最关键的部分,你得把整个对话过程告诉 Claude,让它知道前因后果。格式很简单,就是一个列表,每条消息包含谁说的(role)和说了什么(content):
messages=[
{"role": "user", "content": "海水是什么颜色的?"}
]
聊天得有来有回

Claude API 有个规矩:用户和助手必须轮流说话,而且必须用户先开口。就跟打电话一样,你拨出去对方接了,总得你先说"喂"吧?不能你打过去干等着对方先开口。
正确的聊天顺序长这样:
messages=[
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好!有什么我可以帮你的?"},
{"role": "user", "content": "帮我解释一下什么是递归"}
]
要是两条用户消息连着发,API 直接给你报错:
# 这样写会报错!
messages=[
{"role": "user", "content": "你好"},
{"role": "user", "content": "再帮我看看这个"} # 不能连着发
]
为啥有这个限制?因为 Claude 是照着对话的模式训练出来的,它习惯了一来一回的节奏,你打破这个节奏它就懵了。
System Prompt:给 AI 立个人设

除了普通聊天,还有个好东西叫 System Prompt,翻译过来就是系统提示词。它的作用是在对话开始之前,给 Claude 立一个人设或者定一套规矩。就跟新员工入职第一天,你给他一本员工手册,告诉他公司的规矩和他的岗位职责一样。
system="你是一个专业的 Python 开发者,回答问题时请给出代码示例,并用中文解释。"
有了这个,Claude 在整个对话过程中都会记住这个设定。来看个有意思的例子:
system = "你的回答必须是一连串引导思考的问题,不要直接给答案。"
prompt = "为什么天是蓝色的?"
# Claude 可能会这样回答:
# 你知道阳光其实是由多种颜色的光组成的吗?
# 当阳光穿过大气层的时候会发生什么?
# 为什么波长短的蓝光更容易被散射?
System Prompt 特别适合用来设定输出格式(比如"用 JSON 格式回答")、设定说话风格(比如"用轻松幽默的语气")、设定专业背景(比如"你是一个十年经验的后端工程师")、或者设定一些限制规则。
完整代码:把这些拼到一块
说了这么多,来看个完整的例子:
import anthropic
client = anthropic.Anthropic(api_key="你的API密钥")
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2000,
system="你是一个耐心的编程导师,擅长用生活中的例子解释技术概念。",
messages=[
{"role": "user", "content": "什么是 API?能用大白话解释一下吗?"}
]
)
print(message.content[0].text)
就这么几行代码,你就能跟 Claude 聊上了。
动手试试
光看不练假把式,来两个小练习巩固一下。
练习一:让 Claude 从 1 数到 3。 只需要填写正确的 prompt,让 Claude 输出包含 1、2、3 的内容。提示:直接问就行,别想复杂了。
练习二:让 Claude 用三岁小孩的方式回答问题。 这次你需要写一个 System Prompt,让 Claude 扮演一个三岁的孩子,然后问它"天有多大",看看它会怎么回答。提示:想想三岁小孩说话的特点,天真、爱用叠词、经常蹦出一些让人忍俊不禁的话。
写在最后
提示词工程听着挺唬人,其实就是"怎么进行有效的 AI 对话"这门手艺。掌握了今天讲的这些基础结构,后面就是不断优化、反复尝试、慢慢总结的过程。就跟学做饭一样,先学会开火、放油、下菜这些基本步骤,后面才能琢磨火候、调味、摆盘这些讲究。
这只是第一课,后面还有更多门道:怎么让 Claude 按固定格式输出、怎么处理复杂任务、怎么让它老老实实说"我不知道"而不是胡编乱造……咱们慢慢来,一步一步往前走。
觉得有用的话点个赞,让更多人看到。如果身边有朋友天天用 AI 但老是得不到满意的回答,把这篇文章转给他,告诉他不是 AI 不行,是说话的方式可以优化。
关注梦兽编程,后续还有更多提示词工程的进阶技巧,咱们一起把 AI 这个工具用到极致。
有什么问题或者你自己琢磨出来的技巧,欢迎在评论区聊聊。