智能体学习24——高级提示工程技术
·
一、核心提示原则
提示工程的有效性依赖于以下基本原则,适用于各种模型和任务复杂度:
| 原则 | 说明 |
|---|---|
| 清晰与具体 | 指令必须明确、具体,歧义会导致意外响应 |
| 简洁 | 在保证具体性的前提下简明扼要,避免冗余 |
| 动词使用 | 用动作动词明确期望操作,如 Act、Analyze、Create、Summarize 等 |
| 正面指令优于约束 | 明确期望行为优于强调不希望的行为 |
| 实验与迭代 | 提示工程是迭代过程,需多次尝试优化 |
动词清单(提示中推荐使用的动作动词):
Act、Analyze、Categorize、Classify、Contrast、Compare、Create、Describe、Define、Evaluate、Extract、Find、Generate、Identify、List、Measure、Organize、Parse、Pick、Predict、Provide、Rank、Recommend、Return、Retrieve、Rewrite、Select、Show、Sort、Summarize、Translate、Write
正面指令 vs 负面约束示例:
✅ 正面指令:请用简洁、专业的语言回答
❌ 负面约束:不要用啰嗦、不专业的语言
负面约束会让模型聚焦于"规避"而非"目标",正面指令更符合人类指导习惯
二、基础提示技术
2.1 零样本提示(Zero-Shot Prompting)
- 仅提供任务描述和输入数据,无需示例
- 模型完全依赖预训练知识
- 适用场景:简单问答、文本补全、基础摘要
实例:
将以下英文翻译成法语:"Hello, how are you?"
2.2 单样本提示(One-Shot Prompting)
- 在正式任务前提供一个输入-输出示例
- 帮助模型理解期望模式
- 适用场景:输出格式或风格较特殊的任务
实例:
将以下英文翻译成西班牙语:
English: "Thank you." → Spanish: "Gracias."
English: "Please." → Spanish:
2.3 少样本提示(Few-Shot Prompting)
- 提供 3-5 组输入-输出示例,展示更清晰的期望模式
- 关键技巧:
- 示例需准确、具代表性,覆盖边界情况
- 分类任务中混合不同类别示例顺序,避免过拟合
- 现代 LLM(如 Gemini)支持更长上下文,可用更多示例
实例:
请将电影评论分类为 POSITIVE / NEUTRAL / NEGATIVE:
评论:"The acting was superb and the story was engaging."
情感:POSITIVE
评论:"It was okay, nothing special."
情感:NEUTRAL
评论:"I found the plot confusing and the characters unlikable."
情感:NEGATIVE
评论:"The visuals were stunning, but the dialogue was weak."
情感:
三、提示结构化
3.1 系统提示(System Prompting)
- 设定模型整体行为和交互目的
- 定义规则、角色或风格
- 可用于安全和毒性控制
- 可通过工具(如 VertexAI Prompt Optimizer)自动优化
实例:
你是一名友好且无害的AI助手。
所有回复需礼貌且信息丰富,不生成有害、偏见或不当内容。
3.2 角色提示(Role Prompting)
- 为模型分配特定身份或角色
- 如"作为一名资深旅行博主"、“你是一名数据分析师”
- 可指定风格,如"幽默且励志"
实例:
作为一名资深旅行博主,写一段关于罗马最佳隐藏景点的精彩短文。
风格:幽默且励志。
3.3 分隔符使用
- 清晰区分指令、上下文、示例和输入
- 常用分隔符:三重反引号(```)、XML 标签(
<instruction>)、标记(—)
实例:
请总结以下文章的要点。
---文章开始---
[粘贴长文章内容]
---文章结束---
要求:
1. 提炼3个核心观点
2. 每个观点不超过50字
四、推理与思考过程技术
4.1 思维链(Chain of Thought, CoT)
- 让模型"一步一步思考",将推理过程显式化
- 在最终答案前先生成中间推理步骤
- 适用场景:数学推理、逻辑判断、复杂问题拆解
不加 CoT(容易出错):
一个商店有 23 个苹果,卖了 15 个,又进货了 8 个,现在有多少个?
加 CoT(准确率大幅提升):
一个商店有 23 个苹果,卖了 15 个,又进货了 8 个,现在有多少个?
请一步一步思考。
模型输出:
1. 初始有 23 个苹果
2. 卖出 15 个:23 - 15 = 8
3. 进货 8 个:8 + 8 = 16
4. 答案:16 个苹果
4.2 自洽性(Self-Consistency)
- 多次采样同一提示,取多数答案
- 通过多次推理路径验证结果的可靠性
- 比单次 CoT 更稳定
实例:
请对以下逻辑题给出3个不同的推理路径,然后判断哪个答案最可靠:
题目:所有的猫都是动物,有些动物是黑色的,那么是否可以得出"有些猫是黑色的"?
推理路径1:[请推理]
推理路径2:[请推理]
推理路径3:[请推理]
最终答案(基于多数结论):
4.3 反思提示(Step-Back Prompting)
- 让模型先退后一步思考问题的基本原则
- 再基于原则推导具体答案
- 提升抽象推理能力
实例:
问题:Python 的列表和元组有什么区别?
请先退后一步思考:
1. 什么是可变类型和不可变类型?
2. 为什么编程语言需要这两种概念?
然后再回答列表和元组的区别。
4.4 思维树(Tree of Thoughts, ToT)
- 将推理过程展开为树状结构
- 探索多条推理路径,评估每条路径的价值
- 选择最优路径继续深入
实例:
我需要在3个月内学会Python编程,用于数据分析工作。
请用思维树方法规划学习路径:
1. 列出3种可能的学习策略
2. 评估每种策略的优缺点
3. 选择最优策略并给出详细计划
五、行动与交互技术
5.1 工具使用/函数调用
- 让模型调用外部工具获取信息或执行操作
- 模型决定何时调用、传递什么参数
实例:
你是一个天气助手,可以使用 get_weather(city) 工具查询天气。
用户:北京明天适合户外运动吗?
思考:我需要先查询北京明天的天气
行动:调用 get_weather("北京", date="明天")
思考:明天北京晴,25度,适合户外运动
回答:北京明天天气晴朗,气温25度,非常适合户外运动!
5.2 ReAct(Reason & Act)
- 推理与行动交替进行
- 模型先推理需要什么信息,再采取行动获取
- 循环直到问题解决
实例:
问题:2024年奥斯卡最佳影片导演的出生地在哪里?
请交替使用推理(Thought)和行动(Action):
Thought:我需要先知道2024年奥斯卡最佳影片是什么
Action:搜索 "2024 Oscar Best Picture winner"
Observation:最佳影片是《奥本海默》,导演是克里斯托弗·诺兰
Thought:现在我需要查找诺兰的出生地
Action:搜索 "Christopher Nolan birthplace"
Observation:诺兰出生于伦敦,英国
Thought:我已经得到了答案
Answer:克里斯托弗·诺兰出生于英国伦敦
六、高级技术
6.1 自动提示工程(APE)
用 LLM 自动生成和优化提示词。
实例:
你的任务是生成一个高质量的提示词,用于让AI写出吸引人的产品描述。
产品:无线降噪耳机
目标受众:25-35岁的科技爱好者
请生成3个不同版本的提示词,每个版本侧重不同的卖点角度(技术参数、生活方式、性价比)。
然后评估哪个版本最好,并说明原因。
6.2 负面示例
提供不期望的输出,帮助模型避免错误。
实例:
请为一款智能手表写产品文案。
❌ 不好的写法(不要这样写):
"这个手表很好,功能很多,值得买。"
✅ 好的写法(参考这种风格):
"抬腕即见心率,抬腕即接电话。50米防水,陪你从会议室到游泳池。"
现在请写一段类似风格的产品文案。
6.3 任务拆分(分解认知)
将复杂任务拆分为多个简单子任务。
一步到位(效果差):
帮我写一篇关于AI在教育领域应用的完整研究报告。
拆分为子任务(效果好):
第一步:列出AI在教育领域的5个主要应用场景
第二步:针对每个场景,分析当前的优势和局限
第三步:总结3个最大的挑战
第四步:预测未来5年的3个发展趋势
第五步:将以上内容整合为一篇结构清晰的报告
6.4 结构化输出
明确指定输出格式。
实例:
请分析以下代码的时间复杂度,并按JSON格式输出:
{
"algorithm_name": "算法名称",
"time_complexity": "大O表示法",
"explanation": "一行解释",
"is_optimal": true/false
}
代码:
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
return -1
6.5 RAG 式提示
从外部知识库检索信息注入提示。
实例:
你是一个技术文档助手。请根据以下检索到的文档片段回答用户问题。
如果文档中没有相关信息,请明确说明"文档中未找到相关信息"。
---检索到的文档---
[文档1] OpenClaw 是一个开源的AI Agent框架,支持多种大语言模型...
[文档2] OpenClaw 的 Cron 系统支持定时任务,可以通过 CLI 或 API 管理...
---文档结束---
用户问题:OpenClaw 支持哪些定时任务功能?
6.6 其他高级技术
| 技术 | 说明 |
|---|---|
| 迭代提示/精炼 | 基于输出反馈持续优化提示 |
| 类比使用 | 用类比帮助模型理解复杂概念 |
| 用户画像模式 | 让模型以特定用户视角生成响应 |
| 用 LLM 优化提示 | 元方法——用 LLM 生成更好的提示词 |
七、特定任务提示
- 代码提示:生成、调试、重构代码
- 多模态提示:结合图片、音频等多种输入
八、最佳实践
- 从简单开始:先试零样本,不够再加示例
- 结构化优先:用分隔符清晰组织提示各部分
- 迭代优化:测试→分析→改进→再测试
- 记录尝试过程:便于学习和改进
- 控制输出格式:明确指定 JSON、Markdown 等格式要求
九、关键要点
- 提示工程是与 AI 沟通的专业技能,需要不断学习
- 核心原则:清晰、简洁、动作动词、正面指令、迭代
- 基础技术(零/单/少样本)是所有高级技术的基础
- 推理技术(CoT、ToT)让模型"会思考"
- 行动技术(ReAct、工具调用)让模型"会做事"
- 高级技术(APE、RAG)让提示自动化和知识增强
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)