Prompt Engineering
在使用 Generative AI 时,如何提问往往比模型本身更重要。本文系统介绍 Prompt Engineering 的核心技巧,帮助你更有效地与 AI 模型交互。
1. 什么是 Prompt Engineering?
Prompt Engineering(提示词工程)是设计和优化输入提示的过程,目的是引导 AI 模型生成更准确、更有用的输出。
类比理解:就像与外国人交流时,不仅要用对语言,还要考虑表达方式和文化背景。
2. 为什么 Prompt 如此重要?
- 同样的模型,不同的提示词可能产生天壤之别的结果
- 好的 Prompt 能充分发挥模型潜力,弥补模型短板
- Prompt 是用户控制 AI 输出的主要手段
3. Prompt Engineering 的核心技巧
以下是从简单到复杂的 Prompt 技巧体系:
3.1 Zero-Shot Prompting(零样本提示)
定义
直接给模型一个明确的问题或任务指令,不提供任何示例。
核心思路
依靠模型的预训练知识和泛化能力,在没有示例指导的情况下推理并完成任务。
适用场景
- 任务简单明确
- 想快速得到初步结果
- 不知道怎样示范才好
方法详解
- 问题必须清晰、具体,避免模糊措辞。
- 可以在指令中补充角色扮演、格式要求,提升准确性,比如:假设你是一个数学家,帮助我解决以下数学问题并提供详细步骤。
示例
1 | 请用中文总结下面一段英文文本,要求字数不超过 100 字: |
小结
Zero-Shot 是最简单、最基础的 Prompt 技巧,但对 Prompt 表述清晰度要求高。
3.2 Few-Shot Prompting(少量示例提示)
定义
在任务指令中加入几个示例,帮助模型学习任务模式。
核心思路
通过 示范样例 让模型理解问题要求,减少歧义,提高准确率。
适用场景
- 任务结构固定,但稍复杂
- 想引导模型遵循特定格式或风格
方法详解
标签空间和输入分布的重要性
即使单个标签是错误的,只要整体标签空间(label space)和输入文本的分布与真实任务相似,就能显著提升模型表现。
就像教小孩识别动物,即使你偶尔把狐狸错认为狗,但只要展示的动物种类和特征分布是合理的,小孩最终仍能学会正确分类。例子:教 AI 分辨水果和蔬菜
我们要教 AI 分类「番茄」和「香蕉」,但手头的标签可能有错误。
🚫 方式 1:标签全对但分布奇怪1
2
31. 红红的、圆的 → 水果 ❌(番茄实际是蔬菜)
1. 黄色的、弯的 → 水果 ✔
1. 红色的、小的 → 水果 ❌(小番茄也是蔬菜)🔍 问题:
虽然每个标签”看似正确”(人们常误认番茄是水果)
但所有样本都被标为「水果」,AI 根本不知道「蔬菜」类存在!✅ 方式 2:标签有错但结构合理
1
2
31. 红红的、圆的 → 蔬菜 ✔(番茄)
2. 黄色的、弯的 → 水果 ✔(香蕉)
3. 绿色的、圆的 → 水果 ❌(其实是青椒蔬菜)✨ 优势:
- 标签空间完整:展示了「水果」「蔬菜」两个类别
- 分布合理:2 蔬菜 vs 1 水果(接近真实厨房情况)
- 特征覆盖:有颜色/形状等关键特征
🤖 AI 学习效果对比
当遇到新的「草莓」时:
方式 1 的 AI:
100%认为是水果(虽然对,但只是因为没见过蔬菜类)
方式 2 的 AI:
水果:70%(因为红色像番茄但更甜)
蔬菜:30%当遇到「胡萝卜」时:
方式 1 的 AI:崩溃(不知道蔬菜是什么)
方式 2 的 AI:能猜「蔬菜」(因为见过圆形蔬菜)格式的关键作用
使用结构化的输入-输出格式,即使标签是随机的,也比完全没有标签要好得多。
实验依据:在研究中,使用随机标签但保持正确格式的 prompt,性能比无标签的 prompt 高出约 20-30%。
1 | 任务描述:[简要说明任务] |
标签分布的影响
从真实标签分布中随机采样标签(如正负样本 7:3),比均匀采样(如正负样本各 50%)效果更好。这帮助模型更好地捕捉任务中的类别先验概率。假设你要 AI 帮忙判断邮件重要性:
1 | [均匀分布] 重要:不重要 = 50%:50% → AI会过度预警 |
示例
1 | 将英文句子翻译成简体中文: |
小结
Few-Shot 是提高任务一致性的有效方法,但示例质量至关重要。
3.3 Chain-of-Thought Prompting(思维链提示)
定义
引导模型逐步推理,而不是直接输出答案。
核心思路
要求模型在得出最终结论前,列出详细推理步骤,提升复杂推理任务的准确率。
适用场景
- 数学推理
- 多步逻辑推理
方法详解
- 明确要求请一步步推理,不要直接给答案。
- 可适当设置问题分块提示
1 | 问题:小明有 3 支铅笔,小红给了他 2 支,他又买了 5 支。现在小明有几支铅笔?请一步步推理。 |
推理过程:
1 | - 小明原来有 3 支铅笔。 |
小结
Chain-of-Thought 让模型的推理过程更透明,也通常能显著提升复杂任务的正确率。
3.4 Self-Consistency(自洽推理)
定义
核心目标是改进传统思维链(Chain-of-Thought, CoT)提示中的贪婪解码策略。该技术通过生成多个多样化推理路径,然后选择最一致的答案,显著提升了复杂推理任务的表现。
核心思路
用多样化推理抵消随机噪声,提高整体准确性。
适用场景
- 推理容易波动的任务
- 需要更高可靠性的场景
方法详解
- 通过设置
temperature > 0
的多次采样 - 汇总不同推理链的最终答案,投票决定最优输出
示例
1 | 同一个数学问题,让模型推理5次,选出现次数最多的答案作为最终结果。 |
小结
Self-Consistency 是提升推理鲁棒性的强力技巧,但计算开销较大。
3.5 Meta Prompting(元提示)
定义
Meta Prompting = 教大模型怎么理解任务模式,而不是单次去堆内容。
你不是每次喂给它不同的内容,而是喂任务格式、输入输出规律,让它自己能泛化。
为什么 Meta Prompting 很强?
- 提高泛化性:同一个 Meta Prompt,可以适应各种主题,不用每次重写。
- 减少 Hallucination(幻觉):结构清晰,模型更容易按套路输出,少出偏差。
- 方便系统化构建:比如做批量内容生成、自动化对话时,Meta Prompt 是必须掌握的技能。
核心思路
让模型参与到Prompt 设计过程中,以适应任务的特殊需求。
适用场景
- 任务边界模糊
- 希望模型自行探索最佳询问方式
方法详解
明确目标任务类型,比如你要让它写小红书爆款文案,那么任务类型就是「短内容写作」。
梳理输入信息,比如写爆款文案需要用户提供【产品名】【产品特点】这类基本信息。
设计输出结构,比如:
爆款文案可能需要:- 中段描绘使用场景
- 结尾呼吁行动
- 使用生成的 Prompt 执行实际任务
添加约束规范,比如:要求字数 100 字以内,风格轻松活泼,面向 18-25 岁女性群体。
标准模板
1 | 任务说明 |
示例
1. 产品分析类 Meta Prompt
1 | 任务描述: |
2. 用户评论总结类 Meta Prompt
1 | 任务描述: |
3. 会议纪要生成类 Meta Prompt
1 | 任务描述: |
小结
Meta Prompting 是在教 AI 学做事的方法,而不是每次告诉它要做哪件事。
Meta Prompt 往往+模板化输入,最终就可以形成自动化管道(比如批量生成文案、总结成报告、分类处理信息),这是工程化应用中很常见的做法!
3.6 Prompt Chaining(提示链)
定义
Prompt Chaining 是一种高级提示词工程技术,它将一个复杂任务拆解成多个子任务,每个子任务单独交给 LLM 处理,并且把前一步的输出作为下一步的输入,最终形成一条任务执行链(Chain of Prompts)。
👉 本质上,它是:用小步骤连起来完成大任务。
核心思路
分治复杂任务,通过中间步骤输出,提升整体流程准确率与可控性。
适用场景
- 多阶段任务(如:提取 → 总结 → 翻译)
- 需要中间推理或格式变化的任务
方法详解
定义最终目标
🔹 举例:
比如我要「生成一篇关于可持续能源的完整长文」。拆解成子任务
这个任务可以拆成哪些简单步骤?🔹 举例:
- 确定具体主题角度(比如风能、太阳能哪个?)
- 搜集主要论点和事实数据
- 写出段落提纲
- 逐段展开成文
设计每个子 Prompt
每个子任务独立设计 prompt,比如:
- 子 Prompt 1:根据领域确定具体写作角度
- 子 Prompt 2:围绕角度,搜索 3 条关键事实
- 子 Prompt 3:根据角度和事实,生成提纲
- 子 Prompt 4:根据提纲,分段写正文
定义链式传递方式
明确:- 哪些信息要从一个 prompt 传递到下一个?
- 需要对中间结果加工(如提炼、清洗)吗?
🔹 举例:
从第二步出来的事实,要被总结成要点,才能喂给第三步。
示例
1 | 1. Prompt 1: |
小结
Prompt Chaining = 把大任务拆小,一步步接力执行,最终拿到高质量输出。
3.7 Tree of Thoughts(ToT)
定义
Tree of Thoughts (ToT) 是一种为了解决复杂推理问题而提出的高级 Prompting 方法。不同于 Chain-of-Thought(CoT)的一条推理链,ToT 允许模型在每一步生成多个「思路(Thoughts)」,并在搜索树中进行扩展、评估和选择,从而更系统地探索问题解法。
它的核心思想是:
👉 不只是线性推理,而是分支式推理,在思考过程中不断探索、比较、选择最优路径。
具体来说:
- 每个中间步骤叫做一个 Thought(思路/想法)
- 所有的 Thought 组成一个探索树(Tree)
- 通过搜索算法(如广度优先、深度优先)在树上探索最优解
- 允许模型回头修正错误路径,而不是一条路走到黑
ToT = 多思路并发探索 + 动态评估选择最佳思路。
核心思路
不仅展开单线推理,而是多路径并行探索,通过回溯/筛选找到最佳答案。
适用场景
应用领域 | 典型任务 |
---|---|
数学推理 | 解复杂计算题、代数推导 |
战略规划 | 商业战略设计、产品路线图制定 |
游戏对弈 | 博弈推演、下一步决策选择 |
系统设计 | 软件架构规划、复杂流程建模 |
多步推理 | 案例推断、逻辑推演、推理小说创作 |
方法详解
明确目标任务
首先问自己:
我要解决的问题是什么?需要探索哪些思路?
🔹 举例:
- 解一道复杂数学应用题
- 做商业决策分析
定义思路生成规则
继续问自己:
让 LLM 在每一步,生成哪些类型的中间思路?
🔹 举例:
- 对问题进行子问题拆解
- 为每个子问题列出多种解法思路
设定评估标准
明确:
如何判断一个 Thought 是好的还是差的?
🔹 举例:
- 是否贴合题目目标?
- 是否逻辑严密?
- 是否覆盖了所有关键条件?
选择搜索策略
指定探索方法:
- 广度优先(BFS):广泛探索多种思路,适合开放性问题
- 深度优先(DFS):快速深入一个方向,适合路径依赖性强的问题
- 混合策略:如先浅后深,自定义组合探索
执行探索与回溯
每次模型生成 thought 后:
- 进行评估:如果好,继续拓展。
- 回退重试:如果差,回到上一步,换别的分支探索。
直到找到满意的完整解决方案。
一个标准 Tree of Thoughts Prompt 长什么样?
1 | 任务说明: |
示例
1. 解一道复杂的数学应用题
1 | 1. Prompt:阅读题目后,列出3个不同的求解思路 |
2. 设计一款新型智能健身设备。
ToT 应用方式:
1 | Thoughts生成:提出多个核心创新点(如个性化训练算法、沉浸式体验、社交功能) |
3. 推理小说创作
场景:创作一部复杂反转的推理小说。
1 | ToT应用方式: |
结果:创作出一部逻辑自洽、高潮迭起的推理故事
小结
Tree of Thoughts = 多思路并行探索 + 动态筛选 + 搜索最优解决路径。
3.8 Retrieval-Augmented Generation(RAG)
定义
RAG(检索增强生成)是一种将 信息检索(Retrieval)与文本生成(Generation) 结合起来的系统设计,用于解决知识密集型任务。
传统大模型(如 GPT)在推理时只依赖模型内部训练时学到的「参数知识」(parametric knowledge),
而 RAG 系统引入了外部知识源(如文档库、数据库、网页等),让模型可以实时检索信息,并在生成文本时融合检索到的材料。
这样可以解决几个关键问题:
- 🧠 模型知识过时(因为训练时的信息静态)
- 🔥 事实错误、幻觉(hallucination)
- 🛠️ 需要动态更新知识的应用场景(如金融、医疗、教育)
核心思路
结合检索(Retrieval)+ 生成(Generation) 两种模式,让模型基于真实知识作答,而非凭空想象。
适用场景
- 企业知识问答
- 文档助手、内部数据问答系统
方法详解
输入问题 ➔ 检索相关文档 ➔ 将文档+问题一起喂给生成模型 ➔ 输出答案
- 检索阶段:
将输入问题用 Embedding 编码,去向量数据库(如 FAISS、Milvus)中检索相关文档。
- 生成阶段:
把「问题 + 检索到的文档」拼接在一起作为新的 Prompt,输入到生成模型(如 T5、Flan-T5、GPT)中,生成最终回答。
示例
1 | 你是一名企业规章制度解读助手,请基于以下资料回答用户的问题: |
小结
RAG 解决了传统大模型“胡诌”问题,极大提升了可信度与可控性。
之后,我将写一篇详细教程,深入介绍 RAG 的实现方法,感兴趣的朋友可以关注。在教程中,我会分享:
- 完整的代码实现步骤
- 向量数据库的选择与配置
- 文档预处理与嵌入技术
- 实际应用案例分析
- 常见问题及解决方案
如果你对构建自己的 RAG 系统感兴趣,这篇教程将为你提供从理论到实践的全面指导。
3.9 Automatic Reasoning and Tool-use(ART)
定义
Automatic Reasoning and Tool-use (ART) 是一种将 思考推理(Chain of Thought, CoT)与工具调用(Tool-use) 自动结合的高级 Prompt 技巧。
它的核心目标是:
👉 让大模型能够自动完成推理步骤,并在需要时调用合适的工具,形成闭环解决复杂问题。
不同于传统需要手动脚本化提示,ART 让模型可以在零样本(zero-shot)条件下,依据演示案例,自主判断:
- 什么时候自己推理
- 什么时候调用外部工具(比如搜索、计算器、API)
而且可以动态暂停、调用工具、拿到结果后继续推理!
一句话总结:
ART = 自动化推理 + 动态工具调用 + 连续完成复杂任务。
核心思路
让模型像人类一样根据需要借助工具,而不是单靠语言推理。
适用场景
应用领域 | 典型任务 |
---|---|
数学计算与推理 | 复杂应用题、金融建模 |
知识检索 | 文献查询、事实核验 |
数据处理 | SQL 查询、数据清洗 |
自动问答系统 | 基于外部知识库的智能问答 |
多步任务代理 | 智能助手结合多工具完成复杂指令 |
方法详解
准备任务示范(Task Demonstrations)
- 每个示范都包括推理步骤+工具调用示例。
- 示例数量不需要太多,但需要覆盖典型情况。
构建任务与工具库(Task and Tool Library)
- 收集常见任务模板
- 定义可以调用的工具,描述工具接口(输入/输出格式)
推理执行(Test-Time Reasoning)
当面对新任务时:
- 模型从任务库中选取最相关的示范
- 开始推理
- 遇到需要工具协助时自动暂停生成
- 调用相应工具,接收结果
- 拿到工具返回后继续生成后续推理
- 整个过程可以自动进行,无需人工干预
扩展与修正
- 人类可以随时增加新的示范
- 新增新的外部工具
- 修正模型推理中的失误 -只需更新任务/工具库,不需要微调模型!
一个标准 ART Prompt 长什么样?
1 | 任务描述: |
示例
智能推理助手
1 |
|
小结
ART = 让 LLM 自动学会:什么时候思考?什么时候用工具?怎么合起来完成任务。
3.10 Automatic Prompt Engineer(APE)
APE(Automatic Prompt Engineer) 是一种用于 自动生成和选择任务指令(instruction prompt) 的框架。它将提示生成问题视为一个自然语言的黑盒优化问题,利用大型语言模型(LLMs)自己生成、测试和选择出性能最优的提示。
核心思路
将 Prompt 工程变成一个机器可以自我优化的过程,减少人工试错。
适用场景
- 自动调优 Prompt
- 提升少样本学习性能
方法详解
其核心思想是:用语言模型来搜索最好的提示语句。
方法详解
- Instruction Generation(指令生成)
给模型一组 「输入 ➜ 输出」 示例,让它尝试自己合成 「instruction prompt」。
示例输入:
1 | Input: 23 + 19 |
模型可能自动生成:
1 | 指令:让我们一步一步地解决这个问题,以确保我们得到正确的答案。 |
Candidate Execution(候选执行)
用这些自动生成的 instruction prompt,结合输入数据,让目标模型去执行任务并输出结果。
Evaluation & Selection(评估选择)
比较每个 candidate prompt 的输出质量,选择性能最优的那一个。
示例
1 | 任务:提升文本摘要质量。 |
小结
- APE 成功发现比人类常用的提示(如 “让我们一步一步地解决这个问题”)更有效的 zero-shot CoT 提示。
- 自动化程度高、无需人工调试 prompt。
- 对任务适应性强,能针对具体任务生成最佳提示。
3.11 Active-Prompt
定义
Active-Prompt 是一种基于主动学习的提示优化方法,用于挑选最有信息量的示例(exemplars)来适配任务,从而增强语言模型的推理能力。
传统 Chain-of-Thought (CoT) 依赖静态的人工例子(prompt exemplars),但这些例子对不同任务不一定有效。Active-Prompt 通过引入不确定性评估和人类标注反馈,不断改进 exemplar 选择,使 prompt 更具适应性和效果。
核心思路
模拟真实对话中的澄清提问,提高任务准确率。
适用场景
- 用户需求容易模糊或变化的场景
- 复杂问题梳理
方法详解
初步示例推理(Warm Start)
使用一些 CoT 示例(或不使用)对一批训练问题进行推理,生成多个(k 个)答案。
不确定性评估(Uncertainty Estimation)
对每个问题的 k 个回答进行分歧度分析,衡量 LLM 对该问题的不确定性程度。
方法:如用回答之间的互不一致性(例如投票分布)衡量。
- 主动选择标注样本(Active Selection)
选择最不确定的那些问题,让人类来提供 CoT 标注答案(即高质量 reasoning 示例)。
- 更新 Prompt 示例(Prompt Update)
将新标注的 CoT 示例加入 prompt 示例集中,重新用于推理 ➜ 性能逐步提高。
示例
第一步:初始 Prompt(含少量示例)
1 | 请判断两个句子之间的关系,并说明理由。可能的关系包括: |
第二步:手动生成多个答案,用于观察不确定样本
1 | 请尝试输出多个不同角度的分析,每个角度给出结论与解释: |
🌟 你发现答案分歧大,说明该问题是高不确定样本。
✍️ 第三步:你手动写出“好解释”,变成新示例加进 Prompt 中
1 | 示例 3: |
🔁 第四步:加到下一轮 Prompt 中,增强模型判断能力
1 | 下面我补充了一个更复杂示例,请继续根据这些推理判断新的样本关系。 |
这时模型会倾向输出中性 并给出更合理的解释,因为你强化了它的思维边界。
小结
Active-Prompt 将 Prompt 从一次性输入,升级为交互式、动态调整的过程。
3.12 Directional Stimulus Prompting(方向性刺激提示)
定义
传统的 Prompt 通常直接给出任务描述,让 LLM 执行。但在实际操作中,我们发现 LLM 对于任务描述的理解存在不确定性,尤其是在摘要、改写等任务中可能输出偏离预期方向的结果。
Directional Stimulus Prompting(定向刺激提示),是 Li 等人在 2023 年提出的一种新方法。它的关键思想是:
引入一个小型可调节的模型(policy LLM)生成刺激词(stimulus) 或提示性引导内容,以更明确地引导目标 LLM(大模型)生成符合预期方向的输出。
这种方法就像给主模型喂一段启发式暗示,起到指路的作用。
核心思路
有意识地引导模型思考路径,减少偏离,提高推理质量。
适用场景
- 复杂推理需要控制方向时
- 避免模型走入无关推理分支
方法详解
- 训练一个 policy LM(可以是小模型)
- 输入:原始文本 + 任务目标
- 输出:刺激提示语(例如:“请强调正面影响” 或 “聚焦技术方面”)
- 构造最终 prompt:
- 原文 + policy LLM 生成的 stimulus(刺激)+ 标准任务指令(如“请生成摘要”)
- 然后一起送入一个固定的大语言模型中(如 GPT-4)
示例
1 | 刺激提示语(由 policy LLM 自动生成): |
小结
Directional Stimulus Prompting 通过明确提示,帮助模型沿着更符合预期的逻辑方向前进。
3.13 Program-Aided Language Models(程序辅助语言模型)
定义
Program-Aided Language Models(PAL) 是 Gao 等人在 2022 年提出的一种提示方法,其核心思想是:
利用 LLM 生成程序代码,将问题转化为程序执行的任务,通过调用外部解释器运行程序来获得最终答案。
这与传统的 Chain-of-Thought(CoT) 方法有一个关键区别:
- CoT:LLM 以自然语言推理出中间步骤。
- PAL:LLM 将中间步骤用程序表示,并由代码执行得到结果。
PAL 的优势在于更高的精度、可解释性 和对复杂逻辑的处理能力。
核心思路
语言推理结合程序执行,提升数学、逻辑类任务的正确率。
适用场景
- 需要精确计算的复杂推理
- 数学题、数据处理任务
方法详解
输入任务描述(自然语言)
用户提出问题,如:“班上有 5 个男生和 7 个女生,一共有多少人?”生成程序(由 LLM 完成)
由外部程序运行该代码,返回最终结果
示例
- 自然语言输入
1 | 一个农场里有 14 只羊、6 只牛和 10 只马。一共有多少只动物? |
- PAL 提示模板
1 | 请根据下列问题生成一段 Typescript 程序来解决它,并输出结果: |
小结
PAL 让语言模型拥有程序执行力,把复杂推理从脑算变为编程+执行,大幅提升准确性。
3.14 ReAct(Reasoning + Acting)
定义
ReAct(Yao et al., 2022)提出了一种融合推理(Reasoning) 与行动(Acting) 的大型语言模型提示框架。与传统 Chain-of-Thought(CoT) 仅进行语言内部推理不同,ReAct 让 LLM 在思考过程中可以调用外部工具,例如搜索引擎、计算器或数据库。
这种交替式的思考 → 行动 → 反馈 → 再思考流程,模拟了人类解决复杂任务的方式,有效缓解了 LLM 的幻觉、闭门造车等问题。
核心思路
思考与执行交替进行,动态适应环境变化。
适用场景
- 多轮推理与信息检索交织的问题
- 复杂任务执行,如智能体(Agent)
方法详解
ReAct 的核心机制是交替生成两类内容:
- Reasoning(推理):以自然语言进行分析、假设、分步推理
- Action(行动):调用外部工具(如搜索、API、数据库等)
这两类内容不断交替,形成如下循环:
1 | [任务输入] |
示例
记账分类示例
1 | 你是一个记账分类专家,正在帮助用户建立一套适合其个人家庭情况的记账分类体系。你可以多轮尝试,评估方案效果,并在每次尝试后进行反思和调整。 |
小结
ReAct 框架让模型在不确定环境中也能灵活决策,提高任务完成的成功率与效率。
项目 | 内容 |
---|---|
🧠 核心思想 | 推理(Reasoning)+ 工具调用(Acting)交替前进 |
🔄 运行流程 | Thought → Action → Observation → Thought → … |
📦 可集成工具 | 搜索引擎、API、数据库、天气、计算器等 |
🎯 目标优势 | 解决幻觉问题、提升事实一致性和任务可靠性 |
🧪 适用任务 | 问答、推荐、策略规划、对话管理 |
之后,我将写一篇详细教程,深入介绍 ReAct 的实现方法,感兴趣的朋友可以关注。在教程中,我会分享:
- 完整的代码实现步骤
- 实际应用案例分析
- 常见问题及解决方案
- 与其他提示技术的结合使用
如果你对构建自己的 ReAct 系统感兴趣,这篇教程将为你提供从理论到实践的全面指导。
3.15 Reflexion
定义
Reflexion 是一种自我反思型智能体机制,由三大组件构成:
- Actor(执行者):负责在环境中执行任务,产生动作与推理过程(可由 CoT 或 ReAct 驱动);
- Evaluator(评估器):对 Actor 的行为表现进行打分(使用 LLM 或规则);
- Self-Reflection(反思者):基于表现结果生成反馈,指导智能体未来更优行为。
这种架构将传统的 生成 → 执行 模式扩展为 生成 → 执行 → 评估 → 反思 → 改进,从而形成带记忆、自我优化的闭环系统。
核心思路
引入反思机制,不断从失败和成功中学习。
适用场景
- 长期执行任务的智能体
- 需要持续优化输出的应用
方法详解
Reflexion 的运行流程:
- 任务定义:指定目标任务
- 初次执行(Trajectory):Actor 基于当前观察生成初始推理与动作路径
- 表现评估(Evaluate):Evaluator 对路径打分(如正确性/完成度)
- 自我反思(Reflect):LLM 根据执行结果总结经验、反思失误,并将反思写入记忆
- 下一次尝试:Actor 读取记忆与反思,优化行为
这个过程可以重复若干次,每轮都提升 Agent 表现。
示例
设计适合我的家庭财务的记账分类规则
1 | Task: 设计适合我的家庭财务的记账分类规则 |
小结
Reflexion 为模型引入自我监督机制,使其在长期任务中表现越来越好。
3.16 Multimodal CoT Prompting
定义
Zhang et al. (2023) 提出了一种将图文多模态融合的推理框架 —— Multimodal Chain-of-Thought (CoT)。传统的 Chain-of-Thought Prompting(思维链提示)通常仅作用于文本输入,无法充分利用图像等其他信息源。而 Multimodal CoT 则扩展了这一思维范式,结合了图像和文字信息,以提升复杂任务中的推理能力和解释性。
核心思路
多模态输入 + 多步推理,让模型更好理解复杂场景。
适用场景
- 图文综合理解
- 需要跨模态推理的任务
方法详解
该方法采用了 两阶段框架:
第一阶段:多模态推理链生成(Rationale Generation)
模型接收图像和文字输入,生成一段清晰的、与多模态信息结合的中间推理过程。
1 | 图像描述:图中是一张绿色叶子的显微图像。 |
第二阶段:答案推理(Answer Inference)
在推理链的基础上,模型综合已有的逻辑与知识生成最终答案。
接续上例,答案输出:“叶绿素反射绿色光”
该方法显著提升了模型在多模态理解和推理任务中的表现
示例
- 上传一张香蕉的图形
1 | 这个香蕉可以吃吗 |
会得到回复类似于:
1 | 图像中的香蕉已经变熟,表皮出现黑斑,这是熟透的正常现象,而非腐烂。熟香蕉通常口感更甜,更适合直接食用或做成甜品。因此,这根香蕉虽然外皮有斑点,但内部并未腐坏,是可以食用的。 |
小结
Multimodal CoT 拓展了语言模型的能力边界,使其可以在图文融合场景下完成复杂推理任务。
特点 | 说明 |
---|---|
🖼️ 融合视觉与语言 | 不仅依赖文本,还能处理图片(如图表、显微照片)等复杂输入。 |
🧩 两阶段结构 | 先生成中间推理过程,再输出最终答案,提升解释性和准确性。 |
📈 性能优异 | 在 ScienceQA 等多模态任务中,小模型(1B)即可超过 GPT-3.5 表现。 |
📚 应用场景 | 教育考试问答、图文联合诊断、多模态推理评估系统等。 |
4. 总结
Prompt Engineering 是一门不断发展的艺术与科学,通过本文介绍的各种技巧,我们可以更有效地与 AI 模型交互:
核心技巧回顾
技法名称 | 难度 | 适用场景 | 优点 | 缺点 |
---|---|---|---|---|
Zero-Shot Prompting | ⭐ | 快速测试、简单任务 | 简单直接,无需示例 | 复杂推理效果差 |
Few-Shot Prompting | ⭐⭐ | 需要示例指导的任务 | 可提升生成质量 | 示例设计要求高 |
Chain-of-Thought Prompting | ⭐⭐⭐ | 复杂推理、多步问题 | 强化推理逻辑 | 输出冗长、推理质量不稳定 |
Meta Prompting | ⭐⭐⭐ | 自定义生成风格、结构控制 | 灵活适配不同场景 | Prompt 设计复杂 |
Self-Consistency | ⭐⭐⭐⭐ | 提升复杂推理稳定性 | 答案更可靠准确 | 推理成本增加 |
Prompt Chaining | ⭐⭐⭐⭐ | 多阶段任务拆解 | 控制流程、细粒度优化 | 链条设计复杂,执行慢 |
Tree of Thoughts (ToT) | ⭐⭐⭐⭐ | 大规模复杂推理 | 逻辑探索更完整 | 计算资源消耗大 |
Retrieval Augmented Generation (RAG) | ⭐⭐⭐⭐ | 需要实时信息支撑 | 信息丰富、上下文更全面 | 依赖检索质量 |
Automatic Reasoning and Tool-use (ART) | ⭐⭐⭐⭐ | 智能体任务、多工具协作 | 动态适应、完成复杂任务 | 需要集成检索和执行系统 |
Automatic Prompt Engineer (APE) | ⭐⭐⭐⭐ | 自动优化 Prompt | 自动调优省人工 | 训练与部署成本高 |
Active-Prompt | ⭐⭐⭐⭐ | 持续学习与环境交互任务 | 动态自适应,学习能力强 | 系统搭建复杂 |
Directional Stimulus Prompting | ⭐⭐⭐ | 需要特定方向推理时 | 控制推理路径,减少偏差 | 对提示词设计依赖大 |
PAL(Program-Aided Language Models) | ⭐⭐⭐⭐ | 需要精确计算或代码辅助 | 减少纯语言推理误差 | 需要执行环境支持 |
ReAct(Reasoning + Acting) | ⭐⭐⭐⭐ | 边推理边调用外部工具 | 灵活完成复杂任务 | 动作规划复杂,易出错 |
Reflexion | ⭐⭐⭐⭐ | 长期任务优化、自我改进 | 自主学习、自我提升 | 反思质量需要监控 |
Multimodal CoT Prompting | ⭐⭐⭐⭐ | 图文表混合理解任务 | 跨模态推理能力强 | 多模态处理复杂,依赖数据一致性 |
实践建议
技法组合 | 适用场景 | 搭配优势 | 注意事项 |
---|---|---|---|
Few-Shot Prompting + Chain-of-Thought Prompting | 多步推理、复杂决策 | 提供示例,引导模型分步骤推理,提升逻辑准确性 | 示例需清晰且步骤合理,避免引导错误 |
Chain-of-Thought Prompting + Self-Consistency | 高难度推理、推导不唯一的任务 | 多次推理取多数,提高答案稳定性 | 生成多条推理链需更多推理资源 |
Retrieval-Augmented Generation (RAG) + ReAct Prompting | 复杂问题回答、工具调用辅助 | 结合外部检索与动作决策,生成更丰富准确的回答 | 检索内容质量与动作执行需要监控 |
Prompt Chaining + Reflexion | 长期复杂任务、逐步学习改进 | 拆分任务流程+阶段性反思优化 | 反思设计要合理,防止过拟合或偏离 |
Tree of Thoughts (ToT) + Self-Consistency | 搜索式推理、多种思路探索任务 | 构建推理树后,筛选最佳路径,提升结果可靠性 | 计算量大,适合资源充足环境 |
Directional Stimulus Prompting + Few-Shot Prompting | 指定推理方向的任务(如安全性检测) | 设定推理偏好+提供样例指导,精准控制输出 | 刺激词(stimulus)设计要细致,避免歧义 |
PAL (Program-Aided Language Models) + ReAct Prompting | 数理逻辑推导、计算题、自动化处理 | 结合程序辅助执行,推理更精准高效 | 程序生成与运行环境需稳定 |
Active-Prompt + Reflexion | 连续任务、自适应系统(如智能体) | 动态提示+自主反思提升长期性能 | 需要机制监控,防止无监督偏移 |
随着 AI 模型能力的不断提升,Prompt Engineering 将继续发挥关键作用,帮助我们更好地利用这些强大工具解决实际问题。