目录
[思维链(Chain-of -Thought,CoT)](#思维链(Chain-of -Thought,CoT))
什么是Prompt?
Prompt:是提供给大语言模型(LLM)的输入指令,可以包含任务、背景、约束和输出格式. LLM 会根据当前上下文生成后续 Token,输入没有说明任务边界、所需信息和结果形式时,模型会自行补全条件,输出易偏离。
Prompt如何写?
一个Prompt包括Role、Task、Context、Format. (代码评审、方案设计、复杂分析)应用场景

| 要素 | 作用 | 常见表述 |
|---|---|---|
| Role(角色) | 告诉模型该用哪个领域的知识和语气 | "你是一位 10 年经验的 Java 架构师" |
| Task(任务) | 说明要完成什么动作 | "请评审以下代码的性能问题" |
| Context(上下文) | 补充和任务相关的背景 | "当前线上 QPS 2000,响应时间超 500ms" |
| Format(格式) | 规定输出长什么样 | "输出 JSON,包含 bottleneck、solution 两个字段" |
举例:
java
差 Prompt:
分析这段代码的性能问题,给出优化建议。
好 Prompt:
你是一位有 10 年经验的 Java 架构师(Role),擅长性能优化与代码评审。
请评审以下 Java 接口代码的性能问题(Task):
- 代码功能:用户订单查询
- 当前状况:线上 QPS 2000,响应时间超 500ms(Context)
输出需包含:
1. 性能瓶颈点(标注代码行号 + 问题描述)
2. 优化方案(附具体修改代码片段)
3. 优化后预期性能指标(输出 Format)
注:角色定义和格式要求分别放在输入两端,可以减少关键约束落在长上下文中部的风险。
常用提示技巧
角色扮演
角色设定用于约束模型采用的专业视角和表达方式。例如,"你是一位专注于性能优化的 Java 架构师"比"你是 AI"多出了领域和任务倾向。
思维链(Chain-of -Thought,CoT)
CoT 适用于数学计算、逻辑推理和多步骤分析等需要显式检查过程的任务
如:
ero-shot CoT 最简单,直接加一句"请给出关键步骤后再回答"。
请分析这道数学题。80 的 15% 是多少?
请给出关键步骤后再回答。
复杂一点,可以用引导式 CoT,让模型在回答前先检查几个问题。
在回答之前,先检查以下三个问题:
1. 这个问题涉及哪些关键变量?
2. 这些变量之间是什么关系?
3. 最终答案如何验证?
如果格式要求更严格,可以用 XML 标签把检查过程和最终答案分开。
在 <checks> 标签中列出关键检查点:
<checks>
1. 关键变量:80 和 15%
2. 计算关系:80 × 0.15
3. 校验方式:结果 / 80 应等于 0.15
</checks>
在 <answer> 标签中给出最终答案:
<answer>12</answer>
小样本学习
当复杂任务或者格式严格的任务时,给 1-3 个示例,示例会告诉模型"输出应该长什么样"。
例如:
java
请从文本中提取人名、年龄、职业,输出 JSON 格式。
示例:
输入:张三今年 25 岁,是一名软件工程师。
输出:{"name": "张三", "age": 25, "occupation": "软件工程师"}
现在处理:
输入:王芳 28 岁,是一名数据分析师。
输出:
任务分解
复杂任务可以拆成多个输入、输出都能单独检查的子任务。这样某一步出错时,可以定位到对应步骤,而不必重写整条任务链。

流程固定时,在任务开始前确定步骤即可;探索性任务则要根据当前结果决定后续动作。这两种方式分别对应静态分解和动态分解。
Prompt分类
| 对比维度 | System Prompt | User Prompt |
|---|---|---|
| 用途 | 设定模型的长期行为规则、角色和输出边界 | 提交本轮要完成的具体任务和输入内容 |
| 内容 | 角色定义、语气风格、禁止事项、通用约束 | 任务目标、背景信息、待处理数据、输出要求 |
| 示例 | "你是一位专注于性能优化的 Java 架构师,回答要简洁、给出可落地的建议。" | "请评审以下代码的性能问题,输出 JSON,包含 bottleneck 和 solution 两个字段。" |
| 注意事项 | 只放长期稳定的规则,避免把临时任务塞进来 | 只放本轮任务输入,避免把行为约束写进这里 |
简单来说,System Prompt 像"规矩",User Prompt 像"活儿"。把两者边界分清楚,模型才能既稳定地遵守规则,又准确地完成本轮任务。