一、提示词设计四大黄金原则
1. 明确性法则
❌ 错误示范:
“写一个登录验证的代码”
✅ 正确示范:
“用 Python 编写 FastAPI 接口,实现 JWT 令牌校验,要求:
- 使用 HS256 算法
- 携带用户角色信息
- 过期时间 30 分钟”
2. 结构化法则
1 | [角色] 你是一位资深系统架构师 |
3. 渐进法则
1 | # 分阶段提问示例 |
4. 反馈修正法则
1 | # 对话式修正流程 |
核心区别:
- 渐进法则:基于预设规则的分阶段递进优化(主动规划)
- 反馈修正法则:基于实时反馈的动态偏差修正(被动调整)
实战示例:需求是实现登录验证功能
1 | # 渐进式提问 |
二、六大核心方法论
1. 角色设定法
1 | [角色] 你是有 10 年经验的 AWS 解决方案架构师 |
2. 思维链(Chain-of-Thought)
1 | # 数学问题示例 |
3. 示例引导法
1 | // 代码生成案例 |
4. 约束条件法
1 | 代码要求: |
5. 对抗训练法
1 | 请生成 3 种不同的 SQL 注入攻击示例,然后为每种攻击编写对应的防御方案,要求: |
6. 元提示法
1 | """ |
三、跨领域案例库
场景1:代码生成
1 | // 优化前: |
场景2:数据分析
1 | -- 优化前: |
场景3:技术文档
1 | 优化前: |
四、常见错误及修正
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. 分层提示策略
对于复杂任务,采用自上而下的分层设计:
1 | # 第一层:架构设计 |
3. 迭代优化循环
1 | 初始提示 → 评估结果 → 识别问题 → 优化提示 → 重新生成 |
优化维度检查清单:
- 角色定义是否恰当
- 任务描述是否具体
- 约束条件是否完整
- 输出格式是否明确
- 是否需要示例引导
- 是否考虑边界情况
六、工具推荐
Prompt 工程平台
| 工具 | 特点 | 适用场景 |
|---|---|---|
| LangSmith | 提示词版本管理、A/B测试 | 生产环境 |
| PromptLayer | 提示词库、协作功能 | 团队使用 |
| FlowGPT | 社区提示词分享 | 学习参考 |
| OpenAI Playground | 快速测试调试 | 原型验证 |
本地开发工具
1 | # Python - Prompt 工具库 |
七、最佳实践总结
DO - 应该做的
✅ 明确角色定位
- 设定具体的专业背景
- 匹配任务复杂度
✅ 提供充分上下文
- 背景信息、技术环境、业务场景
✅ 使用结构化格式
- 分点列举、表格对比、代码示例
✅ 设定明确约束
- 技术限制、性能指标、安全要求
✅ 迭代优化
- 记录有效提示词
- 建立模板库
- 分享团队经验
DON’T - 避免做的
❌ 模糊不清
- “帮我写个代码”
- “优化一下”
❌ 过度复杂
- 单次提示包含太多要求
- 缺乏层次结构
❌ 缺少验证
- 不测试直接使用
- 忽略安全性检查
❌ 重复造轮子
- 忽略已有模板
- 不记录有效经验
八、Vibecoding 提示词进阶
在使用 Vibecoding(依赖自然语言直觉驱动的编程方式)时,提示词过于口语化容易让 AI 产生”理解漂移”。AI 虽然能听懂人话,但它更擅长处理结构化、有上下文边界的指令。
要把”氛围感”转化为”生产力”,可以尝试以下进阶技巧:
1. 从”描述意图”转向”定义状态”
口语化提示词往往只描述想做什么(Action),而优秀的提示词描述任务完成后的最终状态(State)。
| 风格 | 提示词内容 |
|---|---|
| ❌ 口语化 | “帮我写个 Redis 缓存逻辑,快一点。” |
| ✅ 结构化 | “在 UserService 中实现一个基于 Redis 的缓存层。要求:使用 StringRedisTemplate,设置 30 分钟过期时间,并在更新数据库后执行缓存双删策略。” |
2. 注入”技术上下文”
Vibecoding 工具(如 Claude Code 或 Cursor)虽然能读代码,但它们不知道你的工程规范。需要把隐含的规则显性化。
技巧:建立 .cursorrules 文件或在对话开始时设定”契约”:
1 | 接下来的代码请遵循: |
3. 任务拆解(Atomic Prompts)
不要试图在一个提示词里解决整个功能模块。Vibecoding 的精髓在于快速反馈循环。
1 | 步骤 A:先帮我定义这个用户注册接口的 DTO,包含字段校验注解。 |
4. Java 开发场景对比示例
场景一:重构代码
| 风格 | 提示词内容 |
|---|---|
| ❌ 口语化 | “这段代码太乱了,帮我整理一下,看起来舒服点。” |
| ✅ 专业化 | “重构 OrderService.java 中的 processOrder 方法。目标:1. 提取冗长的 if-else 逻辑到策略模式中;2. 增加必要的日志记录;3. 确保符合开闭原则。” |
场景二:处理 Bug
| 风格 | 提示词内容 |
|---|---|
| ❌ 口语化 | “我的 Redis 连接好像报错了,你看一下是怎么回事?” |
| ✅ 专业化 | “分析以下报错堆栈。当前环境是 Spring Boot + Jedis,Redis 部署在 Docker 中。请检查是否是连接池溢出或网络超时配置问题,并给出 application.yml 的优化建议。” |
5. 万能”Vibe 模板”
当拿不准怎么写时,套用此公式:
1 | [角色] 你是一个资深的 Java 架构师。 |
Vibecoding 的快乐在于”对齐”,而非单纯的”下旨”。
更新记录
| 版本 | 日期 | 说明 |
|---|---|---|
| v1.0 | 2024-06-01 | 初始版本 |
| v2.0 | 2026-01-12 | 完整重构文章,修复错误,添加进阶技巧、工具推荐和最佳实践章节 |
| v2.1 | 2026-03-24 | 新增第八节:Vibecoding 提示词进阶,包含状态定义、上下文注入、原子任务拆解和万能模板 |