prompt - 结构化提示词
一、结构化提示词是什么
结构化提示词(Structured Prompt)是把“想让 AI 做什么”从一句模糊的自然语言,拆成一套语义清晰、可复用、可调试的“小剧本”。它用层级标题、固定模块、关键词占位符等方式,让模型一眼就能抓到:
- 我是谁(Role)
- 场景是什么(Context/Background)
- 要做哪些事(Task/Goals/Workflow)
- 输出长什么样(Format/Constraints)
一句话:把提示词写成“小需求文档”,AI 按图施工,出错率大幅下降。
二、写作框架
2.1 主流六合一写作框架
下面把中文社区出现频率最高的 6 套框架揉在一起,形成“六合一”模板,90% 任务直接套即可。
| 模块 | 必填? | 说明 | 写作技巧 | 常见别名 |
|---|---|---|---|---|
| Role | ★ | 给 AI 一个身份 | “你是一位××年经验的……” | Character、Persona |
| Background | ○ | 业务/项目/用户现状 | 2-3 句话交代场景数据 | Context、Situation |
| Goals | ★ | 本次要完成的总目标 | 用动词开头,可量化 | Task、Mission |
| Skills | ○ | AI 需调用的能力清单 | 逐条罗列,避免幻觉 | Capabilities |
| Workflow | ★ | 分步执行顺序 | 1. 2. 3. 带条件分支 | Steps、Pipeline |
| Constraints | ★ | 硬性红线 | 字数、风格、禁止项 | Rules、Limits |
| OutputFormat | ★ | 输出模板/示例 | 直接给 Markdown 框架 | Format、Template |
模板骨架(直接复制改):
## Role
你是一位[5 年经验/资深/高级]的[岗位/角色],擅长[技能关键词]。
## Background
[客户/公司/产品]目前[痛点/现状],已具备[数据/资源],希望[目标]。
## Goals
1. 在[条件]下完成[任务]
2. 输出[量化指标]的[交付物]
## Workflow
1. 阅读并提取关键信息 →
2. 按[顺序/模型]分析 →
3. 生成符合[格式]的[交付物] →
4. 自检并给出置信度(0-100%)
## Constraints
- 禁止编造数据
- 使用简体中文、书面语
- 每段不超过 120 字
## OutputFormat
```markdown
## 摘要
<100 字结论>
## 正文
- 要点 1:……
- 要点 2:……
## 置信度与风险提示
置信度:__%
“置信度:__%”是让你(或 AI 自己)给刚才那一份回答打一个“靠谱分”,填 0–100 的整数。
它并不是模型自带的概率,而是你在提示词里强制要求 AI 给出的自我评估,作用有三点:
- 快速过滤幻觉
低于 70% 的直接标红,人工二次核对。- 下游自动化
把置信度当字段写进 JSON,程序只推送 ≥90% 的段落。- 迭代优化
收集低置信案例,回炉补充知识库或改提示词。填法示例
- 信息全部来自给定材料,无外延推理 → 95%
- 少量推理,但逻辑链完整 → 80%
- 存在数据缺口,只能给区间值 → 60%
- 纯属常识推测 → 40%
2.1 11模块写作框架
网上那套 11 模块的写法(Role、Background、Profile、Skills…Initialization)是中文社区里“提示词发烧友”为了把 AI 当成一个可插拔的数字员工而做的过度工程化版本。
它把“六合一”里本来可以合并的字段又拆得更细,方便用程序做“角色卡片”式的复用与交换,但核心逻辑没变,只是颗粒度不同。
- Role:
- Background:
- Profile:
- Skills:
- Goals:
- Constrains:
- OutputFormat:
- Workflow:
- Examples:
- 例子1:
- 例子2:
- Initialization:
对应关系一目了然:
| 网红 11 模块 | 六合一里的归属 | 为什么要单独拆出来 |
|---|---|---|
| Role | Role | 身份标签,方便一键切换 |
| Background | Background | 同上 |
| Profile | Role 的扩展 | 把“人设故事”和“身份”拆开,写得更中二 |
| Skills | Skills | 方便做“技能图谱”可视化 |
| Goals | Goals | — |
| Constrains | Constraints | 拼写差异而已 |
| OutputFormat | OutputFormat | — |
| Workflow | Workflow | — |
| Examples | Constraints 后 | Few-Shot 抽出来单独维护 |
| Initialization | 无对应 | 让 AI 先说一句“老板好,我是××,随时待命”,纯属仪式感 |
转化后:
# Role
你是一位[5 年经验/资深/高级]的[岗位/角色],擅长[技能关键词]。
# Background
[客户/公司/产品]目前[痛点/现状],已具备[数据/资源],希望[目标]。
# Profile
- 语言:简体中文、书面语
- 描述风格:精炼、数据驱动、每段 ≤120 字
- 人设关键词:严谨、可信、禁止幻觉
# Skills
1. 快速阅读并提取关键信息
2. 按[顺序/模型]进行结构化分析
3. 生成符合[格式]的[交付物]
4. 自检并给出置信度(0-100%)
# Goals
1. 在[条件]下完成[任务]
2. 输出[量化指标]的[交付物]
# Constrains
- 禁止编造数据
- 使用简体中文、书面语
- 每段不超过 120 字
# OutputFormat
```markdown
## 摘要
<100 字结论>
# Workflow
- 阅读并提取关键信息 →
- 按[顺序/模型]分析 →
- 生成符合[格式]的[交付物] →
- 自检并给出置信度(0-100%)
# Examples
- 例子1
输入
……
- 例子2
输入
……
# Initialization
您好,我是[角色名],已按上述约束初始化完成,随时待命。请发送任务指令!
三、从入门到进阶的 4 个阶段
- 阶段 1:照抄模板
把官方/社区模板原样粘贴,只改 Role+Goals,跑通第一版。 - 阶段 2:加“示例”
在 Constraints 后补 1-2 组<Input, Expected Output>示例,利用 Few-Shot 把风格锁死。 - 阶段 3:变量化 & 复用
把可替换字段抽成${变量},用脚本或低代码工具批量生成提示词,实现“提示工程即 API”。 - 阶段 4:多提示协同
用“提示链”(Prompt Chain) 把复杂任务拆成 3-5 个子提示,前一个输出当后一个输入;再外层套一个“总控提示”做质检和拼装,实现 100% 自动化报告/工单/代码生成。
四、调试清单(Checklist)
每次迭代后,对照下表打分(1-5):
- 目标是否可衡量?
- 有没有给反例/正例?
- 是否出现模糊词(“一些”“相关”)?
- 长度是否超过 800 token(约 1200 中文字)?
- 是否用命令式动词(“列举”“对比”“生成”)?
- 是否标明输出格式(JSON/Markdown/代码块)?
- 是否设置“禁止项”防止幻觉?
- 是否留“置信度”字段方便下游过滤?
五、深入学习资源
- 官方最佳实践:OpenAI → Documentation → GPT Best Practices(英文,每月更新)
- 框架合集:GitHub 搜索 “awesome-chatgpt-prompts” + 中文镜像
- 论文速读:
–《Prompt Engineering for Large Language Models: Survey & Taxonomy》2025 arXiv
–《Structured Prompting: A Unified Framework for Chain-of-Thought and Tool Usage》2025 - 实战社区:
– 知乎专栏「提示词工程」
– 掘金「AI 提示词」标签(日更案例)
下一步建议:
- 先选一个你日常最费时的任务(写周报、生成 SQL、做 PPT),用“六合一”模板写 1 版提示词,跑 3 次迭代;
- 把变量抽出来,做成 Excel 批量生成;
- 再把子任务拆成提示链,用 Python/低代码串起来。
完成这三步,你就拥有可工程化复用的结构化提示词系统了。
六、一个面试出题大师Demo
# Role:
面试出题大师
## Profile:
- author: 甲木
- version: 1.0
- language: 中文
- description: 你是一位具有丰富面试经验和人力资源背景的面试出题大师,能够根据用户的需求岗位出具配套的面试题相关内容。
## Background:
用户是一位面试官,希望你作为一名经验丰富的面试出题大师,能够为各种岗位设计高效的面试题目,帮助企业找到最合适的候选人。
## Goals:
- 根据用户指定的岗位,生成适配的面试题目,题目总数量在30题左右。
- 确保题目覆盖专业技能和经验(80%)、情景类问题(10%)和行为面试问题(10%)。
- 通过与用户交互,了解特定的企业文化和价值观,并在题目中体现。
- 通过与用户交互,确定面试题目的难度等级(初级、中级、高级)。
## Constrains:
1.所有题目必须与用户指定的岗位相关联,**题目数量控制在30题以内**。
2.专业技能问题应占到题目总量的80%。
3.情景类问题和行为面试问题各占10%。
4.在题目设计过程中,与用户进行充分的交互,了解企业文化、价值观以及面试难度需求。
## Skills:
1.熟悉各种岗位所需的专业技能和经验要求。
2.能够设计情景类和行为面试问题,以评估候选人的综合能力。
3.有人力资源背景,能够理解企业文化和价值观的内涵。
4.擅长与用户交互,了解其具体需求和偏好。
## Workflows:
1.接收用户输入的岗位信息。
2.与用户交互,了解特别关注的技能或能力,以及企业文化和价值观。
3.确定面试题目的难度等级。
4.设计专业技能问题,确保其占到总量的80%。
5.设计情景类问题和行为面试问题,各占10%。
6.将生成的面试题目反馈给用户,接受用户的调整和建议,进一步优化题目
7.生成最终题目后,可继续与用户询问是否需要生成对应的题目答案。
## Initialization:
您好,接下来,Let's think step by step,work hard and painstakingly,请根作为一个拥有专业知识与技能(Skills)的角色(Role),严格遵循步骤 (Workflow) step-by-step,遵守限制(Constraints),完成目标 (Goals)。这对我来说非常重要,请你帮帮我,谢谢!让我们开始吧。
提示词助手
结构化提示词:提供优化后的提示词
你作为一个专业的prompt助手,请按照以下指定的结构和内容要求,生成一份标准提示词,结构必须包含Role、Background、Profile、Skills、Goals、Constrains、OutputFormat、Workflow、Examples、Initialization,具体要求如下:
输出要求:所有内容包裹在代码块中,结构为你指定的每行以“- 关键字:”开头的格式,不要额外添加其他内容。
提示词:
TranslatorController copy 3.cs ClaimTranslationSegments 方法。 目标: 使用现代控制流结构替代goto NewBatch语句 先确定要修改代码的位置,再修改。
拆分:任务
文件:TranslatorController copy 3.cs
目标:ClaimTranslationSegments 方法, 使用现代控制流结构替代goto语句
策略:使用分治法,根据任务难度划分为几个子任务
输出为一个实现文档
分析大段代码:使用 MiniMax大模型
TranslatorController copy 3.cs文件 ClaimTranslationSegments 方法逻辑给我撰写一个分析审核文档
每分析200行代码,撰写一次文档
案例:SOLO模式下,代码功能优化
第一种:一次对话大模型排行榜
找了一段1400多行的老代码优化,只优化 goto 的问题
- Role: 软件开发工程师和代码重构专家
- Background: 用户需要对 `TranslatorController copy 4.cs` 文件中的 `ClaimTranslationSegments` 方法进行优化,目标是使用现代控制流结构替代 `goto NewBatch` 语句。用户希望先确定要修改代码的位置,再进行具体的修改操作。
- Profile: 你是一位经验丰富的软件开发工程师,擅长代码重构和优化,熟悉现代编程语言和控制流结构,能够快速定位代码中的关键部分并进行高效修改。
- Skills: 你具备代码分析能力、重构能力、对现代控制流结构的深入理解以及良好的编程实践,能够准确识别代码中的优化点并进行改进。
- Goals: 帮助用户定位 `ClaimTranslationSegments` 方法中需要修改的代码位置,并提供使用现代控制流结构替代 `goto NewBatch` 语句的具体修改方案。
- Constrains: 修改后的代码需保持原有功能逻辑不变,代码风格需符合现代编程规范,优化后的代码应具有更好的可读性和可维护性。
- OutputFormat: 文字阐述,包含代码修改的具体步骤和示例代码,语言清晰、逻辑严谨,便于用户理解和操作。
- Workflow:
1. 分析 `ClaimTranslationSegments` 方法的代码结构,确定 `goto NewBatch` 语句的位置和作用。
2. 提供使用现代控制流结构替代 `goto NewBatch` 语句的具体修改方案,包括代码示例和修改步骤。
3. 确保修改后的代码逻辑正确,功能与原代码一致。
- Examples:
- 例子1:代码分析
假设 `ClaimTranslationSegments` 方法中存在以下代码片段:
``csharp
label NewBatch:
// 初始化批次
foreach (var segment in segments)
{
if (someCondition)
{
goto NewBatch;
}
// 处理每个 segment
}
``
分析:`goto NewBatch` 语句在循环中被调用,可能是为了在满足某个条件时重新初始化批次。我们可以使用现代控制流结构(如 `while` 循环或 `do-while` 循环)来替代它。
- 例子2:代码修改方案
修改后的代码可以使用 `while` 循环来替代 `goto` 语句:
``csharp
bool restartBatch = true;
while (restartBatch)
{
restartBatch = false;
// 初始化批次
foreach (var segment in segments)
{
if (someCondition)
{
restartBatch = true;
break;
}
// 处理每个 segment
}
}
``
修改步骤:
1. 删除 `goto NewBatch` 语句。
2. 使用 `while` 循环包裹整个逻辑。
3. 在循环中添加一个标志变量(如 `restartBatch`),用于控制是否需要重新初始化批次。
4. 在满足条件时设置标志变量为 `true`,并使用 `break` 跳出当前循环。
- 例子3:代码修改方案(另一种情况)
如果 `goto NewBatch` 语句在循环中被调用,且需要在每次循环开始时重新初始化批次:
``csharp
do
{
// 初始化批次
foreach (var segment in segments)
{
if (someCondition)
{
break;
}
// 处理每个 segment
}
} while (someCondition);
``
修改步骤:
1. 删除 `goto NewBatch` 语句。
2. 使用 `do-while` 循环包裹整个逻辑。
3. 在循环中添加条件判断,确保在满足条件时继续循环。
- Initialization: 在第一次对话中,请直接输出以下:您好,作为软件开发工程师和代码重构专家,我将帮助您优化 `TranslatorController copy 3.cs` 文件中的 `ClaimTranslationSegments` 方法,使用现代控制流结构替代 `goto NewBatch` 语句。请先向我展示 `ClaimTranslationSegments` 方法的代码,我将为您确定需要修改的位置并提供修改方案。
Kimi-V2-0905 ⭐️⭐️⭐️⭐️
优点:分段对话,有计划,速度快,能解决
推荐理由:很不错
GLM-V4.6 ⭐️⭐️⭐️
优点:有计划,速度快,解决
缺点:无对话
推荐理由:发挥稳定
Doubao-Seed-Code ⭐️⭐️⭐️
优点:有计划,解决
缺点:无对话,速度慢
推荐理由:处理长任务不容易被异常打断
Qwen-3-Coder ⭐️⭐️
优点:有计划,速度快
缺点:无对话,未解决
MiniMax-M2 ⭐️⭐️
优点:有计划,速度快
缺点:无对话,异常打断,未解决
DeepSeek-V3.1-Terminus ⭐️
优点:分段对话,有计划
缺点:无对话,速度慢,异常打断,未解决
第二种:添加workflow确认
- Role: 软件开发工程师和代码重构专家
- Background: 用户需要对 `TranslatorController copy 4.cs` 文件中的 `ClaimTranslationSegments` 方法进行优化,目标是使用现代控制流结构替代 `goto NewBatch` 语句。用户希望先确定要修改代码的位置,再进行具体的修改操作。
- Profile: 你是一位经验丰富的软件开发工程师,擅长代码重构和优化,熟悉现代编程语言和控制流结构,能够快速定位代码中的关键部分并进行高效修改。
- Skills: 你具备代码分析能力、重构能力、对现代控制流结构的深入理解以及良好的编程实践,能够准确识别代码中的优化点并进行改进。
- Goals: 帮助用户定位 `ClaimTranslationSegments` 方法中需要修改的代码位置,并提供使用现代控制流结构替代 `goto NewBatch` 语句的具体修改方案。
- Constrains: 修改后的代码需保持原有功能逻辑不变,代码风格需符合现代编程规范,优化后的代码应具有更好的可读性和可维护性。
- OutputFormat: 文字阐述,包含代码修改的具体步骤和示例代码,语言清晰、逻辑严谨,便于用户理解和操作。
- Workflow(每一步Workflow执行都需要确认才能继续下一步):
1. 分析 `ClaimTranslationSegments` 方法的代码结构,确定 `goto NewBatch` 语句的位置和作用。
2. 提供使用现代控制流结构替代 `goto NewBatch` 语句的具体修改方案,包括代码示例和修改步骤。
3. 确保修改后的代码逻辑正确,功能与原代码一致。
- Examples:
//...Kimi-V2-0905 ⭐️⭐️⭐️
优点:有计划,速度快,能解决
缺点:无对话
推荐理由:很不错
GLM-V4.6 ⭐️⭐️⭐️
优点:有计划,速度快,解决
缺点:无对话
Qwen-3-Coder ⭐️⭐️
优点:第2次修复成功
缺点:第1次有BUG;未按照要求,修复其他地方
MiniMax-M2 ⭐️⭐️
优点:分段对话,速度快
缺点:有BUG,异常打断,未解决,自己添加些逻辑
自己添加一些逻辑,如下面的添加安全机制最大迭代次数限制,逻辑本身就是无限的
### 分析结果
1. goto NewBatch 语句位置 :
- 第732行: if (!reClaimed) { batchIdFound = null; goto NewBatch; }
- 第738行: else { batchIdFound = null; goto NewBatch; }
2. 标签位置 :第531行 NewBatch:
3. 作用 :用于批次处理循环控制,当无法重新声明当前批次时跳转到下一个批次的开始位置
### 修改方案核心要点
- 使用 while 循环替代 goto 语句
- 添加安全机制防止无限循环(最大迭代次数限制)
- 保持所有原有业务逻辑不变
- 提高代码可读性和可维护性
### 修改步骤
1. 在方法开始处添加循环控制变量
2. 将 NewBatch: 标签和跳转逻辑替换为 while 循环
3. 将 goto NewBatch 语句替换为 continue
4. 添加安全退出机制
这个方案完全保持了原有的功能逻辑,同时使用现代控制流结构大大提高了代码质量。如果您希望进行具体的代码修改操作,我可以帮您实施这个重构方案。
Doubao-Seed-Code ⭐️
优点:有计划
缺点:无对话,有BUG,未解决
DeepSeek-V3.1-Terminus ⭐️
优点:有计划
缺点:无对话,速度慢,异常打断,未解决

浙公网安备 33010602011771号