Skip to content

提示词的基本结构

一个完整的高质量 Prompt 通常包含 4 个部分:

角色 + 背景 + 任务 + 输出格式

你是一名资深 DevOps 架构师。

背景:
公司使用 GitLab + AWS + Kubernetes。

任务:
设计一套 GitLab CI/CD pipeline,实现:
1. build
2. security scan
3. deploy

要求:
给出 YAML 示例。

输出格式:
1. 架构说明
2. pipeline 示例
3. 注意事项

技巧

1. 技巧:固定模板(强约束输入结构)

角色:
背景:
任务:
约束:
输出格式:

举例

角色:你是资深 DevOps 工程师

背景:GitLab + AWS EKS

任务:生成 CI/CD pipeline

约束:
- 必须包含 build / scan / deploy
- 使用 helm

输出格式:
1. 架构说明
2. gitlab-ci.yml
3. 风险点

2. 技巧:强制结构化输出

请严格按 JSON 输出:
{
  "steps": [],
  "risk": [],
  "yaml": ""
}

为什么有效

  • 模型本质是“补全文本”,不限制就会发散
  • 结构化可以直接接 API / 自动化

3. 技巧:显式步骤分解

请按以下步骤执行:

  1. 分析需求
  2. 设计方案
  3. 输出代码

为什么有效

  • 强化中间推理链(降低错误传播)
  • 对复杂问题显著提升正确率

4. 技巧:用例驱动

示例:

输入:部署 nginx
输出:<yaml>

输入:部署 redis
输出:<yaml>

现在输入:部署 mysql

为什么有效

  • 模型是“模式匹配器”
  • 示例 > 抽象规则

5. 技巧:显式边界

如果不确定,请回答“不知道” 不要编造

为什么有效

  • 默认模型倾向“编合理答案”
  • 明确允许“不知道”可降低幻觉

6. 技巧:角色 + 经验年限 + 场景

你是一名拥有10年经验的 Kubernetes 架构师

为什么有效

  • 激活更专业的语料分布
  • 输出更偏“专家风格”

7. 技巧:把杂乱输入转结构

❌ 原始:

帮我看看这个系统有问题,AWS EC2 CPU很高然后服务不稳定

✅ 优化:

问题:
- EC2 CPU 持续 90%+
- 服务间歇性超时

环境:
- AWS
- Kubernetes

目标:
定位原因并给解决方案

为什么有效

  • 减少模型“理解成本”
  • 提升分析质量

8. 技巧:限制范围

只回答与 Kubernetes 相关内容 不要扩展到其他领域

  • 请给出最标准答案(不要发散)
  • 请提供多个不同方案 (想要更发散)

为什么有效

  • Transformer 容易“联想扩散”
  • 约束能提高聚焦度

9. 技巧:让模型自己 review

请检查你的答案:

  1. 是否有错误
  2. 是否遗漏步骤

为什么有效

  • 相当于“二次推理”
  • 实测能减少低级错误

10. 分层 Prompt(工程级最佳实践)

  • System Prompt(全局规则)
  • Developer Prompt(业务逻辑)
  • User Prompt(用户输入)
System
你必须输出结构化 YAML,不允许解释性废话

Developer
生成 Kubernetes deployment

User
部署 nginx,2副本

总结

Prompt 工程本质是:把“模糊问题”变成“结构化指令”

可以记住这 4 个关键词:

结构化 + 约束 + 分步 + 示例

常见问题

为什么很多模型将提示词分为系统提示词(system prompt)和用户提示词(user prompt)

类型作用优先级
System Prompt定义行为规则最高
User Prompt当前任务
历史对话上下文

区分 system 和 user,本质是把“模型控制权”从用户手里拿回来,交给系统。

高级技巧

11. 链式思考(Chain of Thought)

请一步步思考:
1. 首先分析问题
2. 然后列出可能的方案
3. 最后给出推荐方案和理由

为什么有效

  • 强制模型展示推理过程
  • 提高复杂问题的准确率
  • 便于发现逻辑错误

12. 负面提示(Negative Prompting)

请设计 CI/CD 方案

不要:
- 使用已废弃的工具
- 包含硬编码密钥
- 忽略安全扫描

为什么有效

  • 明确禁止项比隐含要求更有效
  • 避免常见错误

13. 温度控制建议

不同任务适合不同温度参数:

任务类型推荐温度说明
代码生成0.2-0.3需要精确性
架构设计0.5-0.7需要创造性
文档翻译0.1-0.2需要准确性
头脑风暴0.8-1.0需要多样性

14. 上下文窗口管理

当对话过长时:

总结前面的讨论:
- 已确定使用 GitLab CI
- 目标环境是 AWS EKS
- 需要集成 Trivy 安全扫描

现在继续:设计 deployment 策略

为什么有效

  • 避免上下文丢失
  • 保持对话聚焦

实战案例

案例1:生成 Kubernetes 配置

❌ 低质量提示:

帮我写个 k8s 配置

✅ 高质量提示:

角色:Kubernetes 配置专家

任务:生成 production 级别的 nginx deployment

要求:
- 3个副本,资源限制 CPU 200m,内存 256Mi
- 健康检查:HTTP /health,端口 80
- 滚动更新策略:maxSurge 1,maxUnavailable 0
- 添加必要的 labels 和 annotations

输出:完整的 YAML,包含注释

案例2:故障排查

❌ 低质量提示:

pod 起不来怎么办

✅ 高质量提示:

问题:Pod 一直处于 CrashLoopBackOff

环境:
- Kubernetes 1.28
- AWS EKS
- 应用:Java Spring Boot

现象:
- kubectl logs 显示 OOMKilled
- 当前资源限制:memory 512Mi

请提供:
1. 可能的原因分析
2. 排查步骤
3. 解决方案(包含 YAML 配置调整)

案例3:代码审查

角色:资深 DevOps 代码审查员

任务:审查以下 Dockerfile

审查维度:
1. 安全性(基础镜像、用户权限)
2. 性能(层缓存、镜像大小)
3. 最佳实践(多阶段构建、.dockerignore)

输出格式:
- 问题列表(严重程度:高/中/低)
- 优化建议
- 改进后的 Dockerfile

Dockerfile:
[粘贴代码]

常见陷阱

陷阱1:过度依赖模型

❌ 错误做法:

直接把生成的 YAML 用于生产环境

✅ 正确做法:

1. 生成配置
2. 人工审查
3. 在测试环境验证
4. 逐步推广到生产

陷阱2:提示词过于复杂

保持简洁:

  • 一次只问一个核心问题
  • 避免嵌套多层条件
  • 复杂任务拆分为多轮对话

陷阱3:忽略版本差异

请明确版本:
- Kubernetes 1.28(不是 1.20)
- Helm 3.x(不是 Helm 2)
- GitLab CI 最新语法

提示词模板库

模板1:技术方案设计

角色:[技术领域]架构师,[X]年经验

背景:
- 技术栈:[列出关键技术]
- 规模:[用户量/数据量/并发]
- 约束:[成本/时间/合规要求]

目标:设计[具体系统/功能]

必须包含:
1. 架构图(文字描述)
2. 技术选型及理由
3. 关键风险点
4. 实施步骤

输出格式:Markdown,包含代码示例

模板2:故障诊断

问题:[一句话描述]

环境:
- 基础设施:[云平台/版本]
- 应用栈:[语言/框架/版本]
- 监控数据:[CPU/内存/日志关键信息]

已尝试:
- [操作1]:[结果]
- [操作2]:[结果]

请提供:
1. 根因分析(按可能性排序)
2. 验证步骤(可执行的命令)
3. 解决方案(临时 + 长期)

模板3:代码生成

语言/框架:[Python/Go/Shell/YAML]

功能:[具体描述]

输入:[数据格式/参数]
输出:[期望结果]

约束:
- 必须包含错误处理
- 添加必要注释
- 遵循[PEP8/Go规范]风格

请提供:
1. 完整代码
2. 使用示例
3. 测试用例(如适用)

工具推荐

Prompt 管理工具

  • LangChain:Prompt 模板管理和链式调用
  • PromptLayer:Prompt 版本控制和 A/B 测试
  • OpenPrompt:开源 Prompt 工程框架

测试和优化

bash
# 使用不同 Prompt 对比效果
for prompt in prompt_v1.txt prompt_v2.txt; do
  echo "Testing: $prompt"
  cat $prompt | llm-cli --model gpt-4 --temperature 0.3
done

其他

提示词市场

https://promptbase.com/

https://prompthero.com/

  • 提供图像和视频的提示词

学习资源

  • OpenAI Prompt Engineering Guide:官方最佳实践
  • Anthropic Prompt Library:Claude 优化提示词集合
  • Learn Prompting:系统化教程网站

持续改进

建立 Prompt 知识库:

project/
├── prompts/
│   ├── k8s-deployment.md
│   ├── ci-cd-pipeline.md
│   └── troubleshooting.md
└── README.md  # 记录哪个 Prompt 效果最好