一、提示词设计四大黄金原则
1. 明确性法则
❌ 错误示范:
“写一个登录验证的代码”
✅ 正确示范:
“用 Python 编写 FastAPI 接口,实现 JWT 令牌校验,要求:
- 使用 HS256 算法
- 携带用户角色信息
- 过期时间 30 分钟”
2. 结构化法则
1 2 3 4 5 6 7
| [角色] 你是一位资深系统架构师 [任务] 设计高可用 Redis 集群方案 [要求] 1. 跨 3 个可用区部署 2. 读写分离架构 3. 内存占用率超过 70% 自动告警 [输出格式] Markdown 列表
|
3. 渐进法则
1 2 3 4
| # 分阶段提问示例 prompt1 = "解释什么是数据库连接池" prompt2 = "比较 HikariCP vs Druid 的特点" prompt3 = "给出 Spring Boot 集成 HikariCP 的配置示例,要求最大连接数 50,超时时间 5 秒"
|
4. 反馈修正法则
1 2 3 4
| # 对话式修正流程 用户:生成的 Kafka 消费者代码无法处理反序列化异常 AI:建议添加 try-catch 块处理 DeserializationException 用户:请具体展示异常处理部分的代码
|
核心区别:
- 渐进法则:基于预设规则的分阶段递进优化(主动规划)
- 反馈修正法则:基于实时反馈的动态偏差修正(被动调整)
实战示例:需求是实现登录验证功能
1 2 3 4 5 6 7
| # 渐进式提问 User:描述一下登录验证的功能 AI:[基础功能说明] User:描述一下登录验证流程 AI:[流程详细说明] User:给出 JWT 登录验证流程的具体示例和代码 AI:[完整代码实现]
|
二、六大核心方法论
1. 角色设定法
1 2 3 4 5 6
| [角色] 你是有 10 年经验的 AWS 解决方案架构师 [任务] 设计支持百万并发的视频流系统 [约束] - 使用 MediaLive+MediaPackage 架构 - CDN 成本控制在 $0.05/GB 以下 - 支持 ABR 自适应码率
|
2. 思维链(Chain-of-Thought)
1 2 3 4 5 6 7
| # 数学问题示例 问题:会议室有 8 排座位,前 7 排每排 12 个座位,最后一排少 3 个,总共有多少座位? 思考过程: 1. 计算前 7 排总数:7×12=84 2. 最后一排座位数:12-3=9 3. 总数相加:84+9=93 答案:93
|
3. 示例引导法
1 2 3 4 5 6 7 8 9 10 11
| // 代码生成案例 用户示例: 输入:生成 Java 方法,计算两个 LocalDate 之间的工作日 输出: public int calculateWorkDays(LocalDate start, LocalDate end) { // 实现逻辑(排除周末) }
新需求: 请增加对法定节假日的支持,传入 Set<LocalDate> holiday 参数
|
4. 约束条件法
1 2 3 4 5
| 代码要求: - 使用 Python 3.8+ - 禁止使用全局变量 - 函数参数必须类型注解 - 包含 pytest 单元测试
|
5. 对抗训练法
1 2 3 4
| 请生成 3 种不同的 SQL 注入攻击示例,然后为每种攻击编写对应的防御方案,要求: 1. 攻击手段不同 2. 防御措施具体到 PreparedStatement 参数设置 3. 给出 MyBatis 中的防范配置示例
|
6. 元提示法
1 2 3 4 5 6 7 8 9
| """ 你是一位提示词优化专家,请帮我改进以下提示: 原始提示:帮我写个排序算法 优化方向: 1. 明确排序类型(快排/归并/等) 2. 添加边界条件处理要求 3. 指定输出语言和性能指标 请输出优化后的提示模板 """
|
三、跨领域案例库
场景1:代码生成
1 2 3 4 5 6 7 8 9 10 11 12
| // 优化前: "写个 Rust 函数处理字符串"
// 优化后: """ 作为 Rust 专家,实现一个高效反转字符串中单词顺序的函数,要求: 1. 处理 unicode 字符 2. 时间复杂度 O(n) 3. 避免分配额外内存 示例输入:"hello 世界" → 输出:"世界 hello" 给出性能测试方案 """
|
场景2:数据分析
1 2 3 4 5 6 7 8 9 10 11
| -- 优化前: "分析销售数据"
-- 优化后: """ 作为数据分析师,针对 sales 表(字段:order_id, region, product, amount, date): 1. 计算每个区域 Q3 的同比增长率 2. 找出复购率最高的前 3 个产品 3. 输出 DataFrame 包含:区域、增长率、top3 产品 使用 PySpark 实现,并给出避免数据倾斜的优化建议 """
|
场景3:技术文档
1 2 3 4 5 6 7 8 9 10 11
| 优化前: "写 Nginx 配置教程"
优化后: """ 面向初级运维工程师的 Nginx 配置指南,包含: 1. 负载均衡配置对比:轮询 vs IP 哈希 2. 静态资源缓存策略(带 etag 配置示例) 3. 常见错误排查清单(502/504 错误处理) 用 Docker 环境演示,要求命令可复制 """
|
四、常见错误及修正
1. 模糊请求
🙅 “解释一下微服务”
🙆 “用医院科室的类比方式解释微服务架构,重点说明服务发现和熔断机制”
2. 过度开放
🙅 “给些优化建议”
🙆 “针对 Tps 低于 100 的 Spring Boot 应用,给出 5 个 JVM 参数调优建议,要求基于 G1 垃圾回收器”
3. 缺少约束
🙅 “写个Dockerfile”
🙆 “编写用于 Node.js 18 应用的 Dockerfile,要求:
- 使用多阶段构建
- 处理 pm2 日志轮转
- 镜像体积小于 200MB”
4. 忽略上下文
🙅 错误:”继续优化”(未说明优化什么)
🙆 正确:”针对上一步生成的 Kafka 消费者代码,优化反序列化异常处理,要求:
- 添加重试机制(最多 3 次)
- 记录失败消息到 Dead Letter Queue
- 给出完整的异常处理代码”
五、进阶技巧
1. 提示词模板化
将常用模式抽象为可复用模板:
1 2 3 4 5 6 7 8 9
| # 代码生成通用模板 [角色] 你是 {语言}{领域} 专家 [任务] 实现 {功能描述} [技术要求] - 语言版本:{version} - 核心依赖:{dependencies} - 性能要求:{performance} [输出格式] {format_spec}
|
2. 分层提示策略
对于复杂任务,采用自上而下的分层设计:
1 2 3 4 5 6 7 8
| # 第一层:架构设计 "设计一个微服务架构的电商系统,包含用户、商品、订单服务"
# 第二层:接口设计 "基于上述架构,设计订单服务的RESTful API"
# 第三层:实现细节 "实现订单创建接口,要求幂等性、分布式事务处理"
|
3. 迭代优化循环
1 2 3
| 初始提示 → 评估结果 → 识别问题 → 优化提示 → 重新生成 ↑ ↓ └──────────────── 循环直到满意 ←─────────────────┘
|
优化维度检查清单:
六、工具推荐
Prompt 工程平台
| 工具 |
特点 |
适用场景 |
| LangSmith |
提示词版本管理、A/B测试 |
生产环境 |
| PromptLayer |
提示词库、协作功能 |
团队使用 |
| FlowGPT |
社区提示词分享 |
学习参考 |
| OpenAI Playground |
快速测试调试 |
原型验证 |
本地开发工具
1 2 3 4 5 6
| pip install promptulate pip install guidance
npm install @langchain/core
|
七、最佳实践总结
DO - 应该做的
✅ 明确角色定位
✅ 提供充分上下文
✅ 使用结构化格式
✅ 设定明确约束
✅ 迭代优化
DON’T - 避免做的
❌ 模糊不清
❌ 过度复杂
❌ 缺少验证
❌ 重复造轮子
更新记录
- 2026-01-12:完整重构文章,修复错误,添加进阶技巧、工具推荐和最佳实践章节
- 2024-06-01:初始版本