提示链与复杂任务分解
当你发现一条提示词越写越长、模型却越容易”漏步骤、跑偏、格式乱”时,往往说明任务该拆了。提示链(Prompt Chain)就是把一个复杂任务拆成多条提示、按顺序接力完成,每一步的输出成为下一步的输入。本文讲清它的适用场景、与一次性提示的取舍,以及与 Agent 的关系,并给出两个可直接落地的示例。
单条复杂提示的局限
把”写研报""清洗数据”塞进一条提示,常见三类问题:
- 注意力稀释:指令太多,模型对靠后的要求遵从度下降(类似”中间遗忘”)。
- 错误难定位:一步算错,后续全错,且你分不清是哪一步出的问题。
- 不可复用:逻辑全揉在一起,换个数据就得重写整条提示。
类比:你不会让一个实习生”从找资料到排版一次性交稿”,而是拆成”搜集—摘要—成稿—校对”几道工。提示链就是给模型安排流水线。
| 维度 | 单条复杂提示 | 提示链 |
|---|---|---|
| 调试难度 | 高,错因难定位 | 低,逐步可查 |
| 可控性 | 弱 | 强,每步可干预 |
| 成本/延迟 | 一次调用 | 多次调用,略高 |
| 适合场景 | 简单或一次性任务 | 多步、需质量的任务 |
什么是提示链(Prompt Chain)
提示链由若干”节点”组成,每个节点是一段提示 + 一次模型调用,明确三件事:
- 输入:本步接收什么(用户原始需求 / 上一步的输出)。
- 处理:这一步具体做什么。
- 输出:产出什么形态,供下一步消费。
形式上它和 LangChain 这类框架倡导的”把多个 runnable/提示串起来”一致——LangChain 的官方文档将模型、提示、工具组合成可编排的链路作为核心用法。下面以伪代码描述一个链:
steps = [
summarize_sources, # 步骤1:压缩资料
draft_outline, # 步骤2:列大纲
write_section, # 步骤3:逐节撰写
polish_and_check, # 步骤4:校对与格式
]
data = user_input
for step in steps:
data = llm(prompt=step.template, input=data)
final = data
何时用链,何时一次性提示
经验判断:
- 用一次性提示:任务单步可完成、对中间过程无审计需求、追求最低延迟。例如翻译、改写、单轮问答。
- 用提示链:任务有多条清晰子目标、任一步出错代价高、需要人工在中间把关、或输出要结构化拼接。例如报告生成、数据清洗、代码生成+测试。
一个实用信号:当你不得不在一句话里写”首先…然后…最后…并且格式要…”超过三件事,就该考虑拆链。
提示链与 Agent 的关系
提示链和 Agent 都处理”多步任务”,区别在于决策权在谁手里:
- 提示链:流程是固定的、由你预先编排。每一步怎么走、走几步,写死在代码里。可控、可预测、易测试。
- Agent:模型自己决定下一步调哪个工具、是否继续。适合路径不确定、需要探索的任务,但更难保证稳定与成本。
二者并非二选一:很多生产系统用提示链做主流程骨架,在个别节点嵌入一个小型 Agent 处理不确定子任务。Anthropic 对”工作流(workflow)与 Agent”的区分也强调:能确定性编排就尽量编排,只在必要时引入自主循环。
实战示例一:研报生成流水线
把”生成一份行业研报”拆成四步链:
步骤1 摘要:下面是从多篇新闻/公告中抽取的素材。
请压缩为 5 条要点,每条附来源标题,不要评价。
素材:{raw_materials}
步骤2 大纲:基于上面的要点,产出研报三级大纲
(背景/现状/风险/机会),只列标题。
步骤3 撰写:按大纲逐节写正文,每节 150~250 字,
引用步骤1的要点编号,不编造数据。
步骤4 校对:检查上文是否出现无来源的断言,
把有问题句子改为"据公开信息显示"或删除,并统一术语。
每一步输入上一步输出,最终人工只需在步骤2(大纲)把关方向,大幅降低返工。
实战示例二:数据清洗流水线
把”清洗脏数据”拆成三步链,每一步职责单一、易验证:
步骤1 去噪:下面是一批用户留言,含表情、广告、乱码。
只保留与产品体验相关的有效文本,输出 JSON 数组。
输入:{raw_comments}
步骤2 分类:对上一步每条评论打标签
(功能建议/吐槽/咨询/其他),输出 JSON:
[{"text":"...","label":"..."}]
步骤3 汇总:统计各标签数量,输出 JSON:
{"功能建议":n,"吐槽":n,"咨询":n,"其他":n}
若步骤2分类不准,你只需改步骤2提示重跑,不必动整体。这正是拆链带来的可维护性。
小结
- 单条复杂提示易”注意力稀释、错因难查、不可复用”,长任务应拆链。
- 提示链 = 多个节点接力,每节点明确输入/处理/输出,框架如 LangChain 即此思路。
- 简单单步任务用一次性提示;多步、需质量与可审计的任务用链。
- 提示链流程固定、可控可测;Agent 自行决策、适合不确定路径;二者常结合使用。
- 实战中在”关键节点”(如研报大纲、清洗规则)留人工把关,能显著降低返工。
- 拆链后每一步可单独迭代与回归测试,是提示工程走向工程化的关键一步。
参考来源
- LangChain. LangChain overview(模型/提示/工具编排为链路的核心用法). https://docs.langchain.com/oss/python/langchain/overview
- Anthropic. Prompt engineering overview(含 thinking、prompt chaining 等技术索引). https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview
- OpenAI. Prompt engineering(拆分复杂任务、用参考文本等战术). https://platform.openai.com/docs/guides/prompt-engineering
本文累计阅读 — 次