你写的 Prompt 质量直接决定 AI 的输出质量。很多人用了 Claude 几个月还停留在初级水平,是因为不知道这些底层原则。本文整理了经过验证的 8 个核心技巧,从原理到实践,让你的 Prompt 一步到位。
为什么 Prompt 很重要?
同样一个问题,不同的 Prompt 写法可能得到截然不同的结果:
❌ 效果差:帮我写代码
✅ 效果好:用 Python 写一个函数,接收 CSV 文件路径,返回 DataFrame,处理编码错误(默认 UTF-8,失败时尝试 GBK),并对 salary 列做缺失值填充(用中位数)
差距不是模型能力,是提示词质量。
原则 1:具体胜于模糊
越具体,越准确。不要依赖 AI 猜测你的意图。
| 维度 | 模糊 | 具体 |
|---|---|---|
| 任务范围 | 优化这段代码 | 优化这段代码的时间复杂度,保持可读性,不要改变 API 接口 |
| 输出格式 | 给我一个列表 | 给我一个 Markdown 无序列表,每项不超过 20 字 |
| 约束条件 | 写个测试 | 用 pytest 写测试,覆盖正常输入、空输入、边界值三种情况,不用 mock |
| 参考点 | 像 X 一样 | 参考 src/utils/formatter.js 的代码风格 |
原则 2:提供验证标准
这是最被忽视、回报最高的技巧。
给 AI 一个检验自己输出的方法,它能自我纠错,你就不用每步审查:
写一个 parseDate 函数,能处理以下格式:
- "2024-01-15" → Date 对象
- "01/15/2024" → Date 对象
- "January 15, 2024" → Date 对象
- 无效输入 → 抛出 Error
写完后执行测试验证
原则 3:分步骤,不要一次性
复杂任务一次性丢给 AI 容易出错。分解成步骤:
❌ 一次性:
帮我把这个 Express 应用重构为 TypeScript,加单元测试,配置 CI/CD
✅ 分步骤:
Step 1:先分析当前代码结构,列出重构计划
Step 2:将 src/ 下的文件逐一转换为 TypeScript
Step 3:为转换后的文件写单元测试
Step 4:配置 GitHub Actions CI
原则 4:给 Claude 一个角色
System Prompt 中定义角色,会影响整个对话风格和专业深度:
你是一个有 10 年经验的 Python 后端工程师,专注于高并发系统设计。
回答时优先考虑性能和可维护性,给出具体代码示例,指出常见陷阱。
角色不只是"你是 XX 专家",更要包含:
- 专业方向(什么领域)
- 输出偏好(优先考虑什么)
- 风格要求(如何表达)
原则 5:提供上下文和背景
AI 不知道你的项目背景,要主动提供:
我在开发一个电商平台,技术栈:Next.js 14 + PostgreSQL + Redis。
目前购物车存在 Redis,用户认证用 JWT。
问题:用户登出后 JWT 还在有效期内,存在安全风险。
帮我设计一个 JWT 黑名单方案,考虑 Redis 内存限制和性能。
好的背景包含:
- 项目类型和规模
- 当前技术栈
- 已有实现方式
- 核心约束条件
原则 6:用示例驱动(Few-shot)
给几个"输入→输出"示例,比解释规则更有效:
将以下日志格式统一化。示例:
输入:[ERROR] 2024-01-15 14:30:25 user service: connection refused
输出:{"level":"error","time":"2024-01-15T14:30:25","service":"user service","message":"connection refused"}
输入:[WARN] 2024-01-15 14:31:00 auth: token expired for user 123
输出:{"level":"warn","time":"2024-01-15T14:31:00","service":"auth","message":"token expired for user 123"}
现在处理以下日志:
[INFO] 2024-01-15 14:32:00 payment: transaction completed id=456
原则 7:要求输出格式
明确指定输出结构,避免自由发挥:
分析这段代码,以如下 JSON 格式输出:
{
"issues": [{"severity": "high/medium/low", "line": 行号, "description": "问题描述", "fix": "修复建议"}],
"summary": "总体评价",
"score": 1-10
}
常用格式指令:
以 Markdown 表格输出用 JSON 格式,字段包括:xxx只输出代码,不要解释先给结论,再展开分析
原则 8:迭代而不是重写
好的 Prompt 是迭代出来的,不是一次写完的:
- 先发一个简单版本,看看方向对不对
- 指出具体问题:"这里的错误处理太简单,帮我细化"
- 追加约束:"还需要支持 IPv6 地址格式"
- 确认后固化:把成功的 Prompt 存下来复用
不要每次对结果不满意就全部重来,针对性修正效率更高。
场景速查:常见任务的 Prompt 模板
代码审查
审查以下代码,关注:
1. 潜在 Bug(特别是边界条件)
2. 安全漏洞(SQL 注入、XSS 等)
3. 性能问题
4. 可读性
按优先级列出,附修复建议。
[粘贴代码]
写文档
为以下函数写 JSDoc 注释:
- 简洁描述功能(1-2 句)
- 所有参数的类型和含义
- 返回值说明
- 至少 2 个使用示例
[粘贴函数]
调试 Bug
运行以下代码出现错误:
错误信息:[完整堆栈]
期望行为:[描述]
实际行为:[描述]
找出根本原因(不要只掩盖错误),并提供修复方案
[粘贴相关代码]
来源:Anthropic 官方最佳实践 + 社区实战经验