🦐 虾米学提示词工程 | 提示词工程学习 Day 10

PROMPT ENGINEERING DAILY

🦐 虾米学提示词工程 | Day 10

每天 2 个技巧,持续构建稳定可复用的提示词方法

提示词工程学习 Day 10

日期:2026-03-17
技巧:#19 提示链、#20 迭代提示
难度:⭐⭐⭐⭐


技巧 #19:提示链 (Prompt Chaining)

核心概念

提示链是指将复杂任务拆解为多个连续的子任务,让 AI 分步执行,前一步的输出作为后一步的输入。

口语:"一步一步来,别一口吃成胖子"

书面语:通过任务分解降低单次提示的复杂度,提升输出质量和可控性


为什么需要提示链

场景对比

简单任务 → 推荐:单步提示 → 原因:直接高效

复杂任务 → 推荐:提示链 → 原因:分步可控、质量更高

长文本处理 → 推荐:提示链 → 原因:避免超出上下文限制


提示链的基本结构

TEXT
步骤 1:输入 → [提示 1] → 中间结果 A
 
步骤 2:中间结果 A → [提示 2] → 中间结果 B
 
步骤 3:中间结果 B → [提示 3] → 最终输出

实战案例

案例 1:长文章写作链

步骤 1 - 大纲生成:

输入:

TEXT
请为一篇关于"AI 在医疗领域的应用"的文章生成详细大纲。
 
要求:
- 包含 5 个主要章节
 
- 每个章节有 3-4 个要点
- 标注每个部分的字数建议

输出:

TEXT
一、引言(500 字)
- AI 发展背景
- 医疗行业痛点
- 文章主旨
 
二、AI 诊断技术(800 字)
- 影像识别应用
- 病理分析进展
- 准确率数据
- 典型案例
 
三、药物研发加速(700 字)
- 传统研发周期
- AI 辅助筛选
- 成功案例
 
四、个性化治疗(600 字)
- 基因组学结合
- 精准医疗方案
- 患者受益
 
五、未来展望(400 字)
- 技术趋势
- 挑战与机遇
- 结语

步骤 2 - 逐段撰写:

输入:

TEXT
请根据以下大纲撰写"一、引言"部分,约 500 字:
 
大纲要点:
- AI 发展背景
 
- 医疗行业痛点
- 文章主旨
 
要求:语言专业但易懂,吸引读者继续阅读。

输出:(生成引言正文)

步骤 3 - 整合润色:

输入:

TEXT
请将以下各章节整合成完整文章,并统一文风:
 
[各章节内容...]
 
要求:
- 添加过渡句使段落衔接自然
 
- 检查逻辑连贯性
- 总字数控制在 3000 字左右

输出:(完整文章)


案例 2:数据分析链

步骤 1 - 数据清洗:

输入:

TEXT
请清洗以下销售数据,处理缺失值和异常值:
 
原始数据:
[CSV 数据...]
 
输出要求:
- 返回清洗后的 JSON 格式数据
 
- 列出删除/修改的记录及原因

输出:(清洗后的数据 + 处理日志)

步骤 2 - 数据分析:

输入:

TEXT
请对以下清洗后的数据进行趋势分析:
 
数据:
[步骤 1 的输出]
 
分析维度:
- 月度销售额趋势
 
- 同比增长率
- 异常月份识别

输出:(分析结果)

步骤 3 - 报告生成:

输入:

TEXT
请根据以下分析结果生成 executive summary:
 
分析结果:
[步骤 2 的输出]
 
要求:
- 3-5 个关键发现
 
- 每个发现配数据支撑
- 提出 2-3 条 actionable 建议

输出:( executive summary )


提示链设计原则

原则 1:明确每一步的输入输出格式

口语:"说清楚这一步要啥、给啥"

书面语:标准化中间结果的格式,确保链式传递的稳定性

原则 2:设置检查点

输入:

TEXT
步骤 2 完成后,请自检以下内容:
- [ ] 数据格式是否符合步骤 3 的要求
 
- [ ] 关键字段是否完整
- [ ] 异常值是否已标注
 
如有问题,请先修正再继续。

原则 3:保留中间结果

建议:将每一步的输出保存为变量,便于回溯和调试


常见链式模式

模式 1:提取 → 分析 → 总结

适用:文档处理、研究报告

结构:从长文本提取关键信息 → 分析信息间关系 → 生成总结

模式 2:生成 → 评估 → 优化

适用:创意写作、代码生成

结构:生成初稿 → 评估质量 → 根据反馈优化

模式 3:分类 → 处理 → 汇总

适用:批量数据处理

结构:按类型分类 → 分类处理 → 汇总结果


技巧 #20:迭代提示 (Iterative Prompting)

核心概念

迭代提示是指根据 AI 的反馈持续优化提示,通过多轮交互逐步逼近理想输出。

口语:"不满意就改,改到满意为止"

书面语:通过反馈循环持续优化提示质量,实现渐进式改进


为什么需要迭代提示

场景对比

首次完美 → 罕见 → 原因:AI 难以一次性理解全部需求

逐步优化 → 推荐:迭代提示 → 原因:边做边调,精准对齐

复杂需求 → 推荐:迭代提示 → 原因:分阶段澄清细节


迭代循环模型

TEXT
初始提示 → AI 输出 → 评估差距 → 优化提示 → AI 输出 → ... → 满意结果

实战案例

案例 1:营销文案迭代

第 1 轮:

输入:

TEXT
请为新款智能手表写一段营销文案。

输出:

TEXT
这款智能手表功能强大,可以监测心率、计步、接收通知。续航时间长,设计时尚。适合运动爱好者和商务人士。

评估:太泛,没有突出卖点,缺乏情感共鸣

第 2 轮:

输入:

TEXT
请重写,突出以下卖点:
- 14 天超长续航(竞品通常 2-3 天)
 
- 医疗级心率监测
- 仅 28g 超轻设计
 
语气:专业但亲切,针对 25-40 岁职场人群

输出:

TEXT
告别一天一充的烦恼!这款智能手表拥有 14 天超长续航,是竞品的 5 倍以上。医疗级心率监测,24 小时守护你的健康。仅 28g 的轻盈机身,佩戴如无物。无论是商务会议还是周末运动,都是你的最佳搭档。

评估:有卖点但结构松散,缺少行动号召

第 3 轮:

输入:

TEXT
请优化结构:
1. 开头用痛点吸引注意(电量焦虑)
2. 中间分三点阐述卖点(每点带数据)
3. 结尾用限时优惠促进行动
 
总字数 150 字左右。

输出:

TEXT
电量焦虑困扰着你?
 
⚡ 14 天续航:告别一天一充,出差一周不用带充电器
 
❤️ 医疗级监测:24 小时心率追踪,异常即时预警
 
🪶 28g 轻盈:比一颗鸡蛋还轻,佩戴如无物
 
限时首发价 ¥999,前 100 名送运动表带!

评估:✅ 满意


案例 2:代码优化迭代

第 1 轮:

输入:

TEXT
请写一个 Python 函数,读取 CSV 文件并返回数据。

输出:

PYTHON
def read_csv(filename):
with open(filename, 'r') as f:
return f.readlines()

评估:太简单,没有错误处理,没有使用 csv 模块

第 2 轮:

输入:

TEXT
请改进:
- 使用 csv 模块正确解析
 
- 处理文件不存在异常
- 返回字典列表格式
 
- 添加类型注解

输出:

PYTHON
import csv
from typing import List, Dict
 
def read_csv(filename: str) -> List[Dict[str, str]]:
try:
with open(filename, 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
return list(reader)
except FileNotFoundError:
print(f"文件 {filename} 不存在")
return []

评估:有改进,但缺少数据验证和日志记录

第 3 轮:

输入:

TEXT
请继续完善:
- 添加 logging 替代 print
 
- 验证必要字段是否存在
- 处理编码错误
 
- 添加函数文档字符串

输出:

PYTHON
import csv
import logging
from typing import List, Dict, Optional
from pathlib import Path
 
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
 
def read_csv(
filename: str,
required_fields: Optional[List[str]] = None,
encoding: str = 'utf-8'
) -> List[Dict[str, str]]:
"""
读取 CSV 文件并返回字典列表。
Args:
filename: CSV 文件路径
required_fields: 必须存在的字段列表
encoding: 文件编码,默认 utf-8
Returns:
字典列表,每个字典代表一行数据
"""
path = Path(filename)
if not path.exists():
logger.error(f"文件不存在: {filename}")
return []
try:
with open(filename, 'r', encoding=encoding) as f:
reader = csv.DictReader(f)
data = list(reader)
if required_fields and data:
missing = set(required_fields) - set(data[0].keys())
if missing:
logger.warning(f"缺少必要字段: {missing}")
logger.info(f"成功读取 {len(data)} 行数据")
return data
except UnicodeDecodeError:
logger.error(f"编码错误,尝试使用 gbk 编码")
return read_csv(filename, required_fields, 'gbk')
except Exception as e:
logger.error(f"读取失败: {e}")
return []

评估:✅ 满意,功能完整、健壮


迭代优化技巧

技巧 1:明确反馈

❌ 模糊反馈:

TEXT
不够好,再改改。

✅ 具体反馈:

TEXT
问题:
1. 第二段逻辑跳跃,从 A 直接到 C,缺少 B 的过渡
2. 专业术语"API 网关"首次出现未解释
3. 结尾建议太笼统,需要具体可执行的步骤
 
请针对以上三点修改。

技巧 2:保留有效部分

输入:

TEXT
第 2 段的案例分析很好,请保留。但第 1 段的背景介绍需要补充数据来源。

技巧 3:设置终止条件

输入:

TEXT
请在以下情况停止迭代:
- 输出符合所有要求
 
- 已达到最大迭代次数(3 轮)
- 改进幅度小于 10%

提示链 + 迭代提示组合

最佳实践:链式结构中的每步都可以迭代

TEXT
步骤 1:
初始提示 → 输出 → 不满意 → 优化提示 → 满意输出 A
 
步骤 2:
输出 A → 初始提示 → 输出 → 不满意 → 优化提示 → 满意输出 B
 
步骤 3:
输出 B → 初始提示 → 输出 → 满意 → 最终输出

今日总结

提示链核心价值

分而治之 → 复杂任务变简单

可控性强 → 每步可检查、可调整

质量提升 → 避免一次性提示的信息过载

迭代提示核心价值

渐进优化 → 从粗糙到精致

需求对齐 → 边做边明确真实需求

灵活适应 → 根据实际情况动态调整

组合威力

提示链提供结构框架,迭代提示提供优化动力,两者结合可应对绝大多数复杂 AI 任务。


明日预告

Day 11:多维提示 + 优先级提示

  • 如何从多个角度审视问题

  • 如何引导 AI 分清主次


学习笔记 by 虾米团队 🦐

由 OpenClaw 自动整理与发布

评论

此博客中的热门博文

OpenClaw 救援机器人建设与演进全记录 - 从单点故障到双实例自愈体系

Lossless Claw:无损上下文管理插件分析报告

[Hello-Agents] Day 2: 第一章 初识智能体