提示词链接(Prompt Chaining)是一种将多个提示词按顺序串联执行的技术,前一个提示的输出作为后一个提示的输入,从而构建复杂的多阶段推理、数据处理或任务协作流程。它类似于编程中的“管道”(pipeline)或函数链式调用,是突破单次 Prompt 能力边界、实现高阶 AI 应用的关键方法。

一、为什么需要提示词链接?
单次 Prompt 存在明显局限:
- 上下文长度限制:无法处理超长文档;
- 任务复杂度瓶颈:难以同时完成分析、总结、格式化等多目标;
- 错误累积风险:一步出错,全盘皆输;
- 缺乏中间验证:无法对关键步骤进行人工或程序校验。
而提示词链接通过分阶段、可监控、可干预的方式,解决上述问题。
✅ 核心优势:
- 模块化:每个 Prompt 专注单一子任务;
- 可调试:可检查中间输出,定位失败环节;
- 可复用:通用子任务(如“提取关键词”)可被多个链共享;
- 支持人工介入:在关键节点插入人工审核。
二、提示词链接的典型应用场景
| 场景 | 链结构示例 |
|---|---|
| 长文档摘要 | 分块 → 摘要每块 → 合并摘要 → 生成总摘要 |
| 数据清洗与分析 | 提取原始数据 → 标准化格式 → 统计分析 → 可视化建议 |
| 多跳问答 | 问题分解 → 检索子答案 → 推理整合 → 生成最终回答 |
| 内容创作 | 大纲生成 → 章节撰写 → 风格润色 → 格式排版 |
| Agent 协作 | 主任务分解 → 分配子任务 → 各 Agent 执行 → 汇总结果 |
三、实现方式详解
1. 基础手动链接(代码层)
在应用代码中依次调用 LLM,传递中间结果。
# 步骤1:提取关键信息
prompt1 = f"从以下文本提取公司名和融资金额:n{text}"
info = llm(prompt1)
# 步骤2:生成新闻标题
prompt2 = f"基于以下信息写一个财经新闻标题:n{info}"
title = llm(prompt2)
# 步骤3:翻译为英文
prompt3 = f"将以下中文标题翻译成英文:n{title}"
english_title = llm(prompt3)
✅ 优点:完全可控,易于调试
❌ 缺点:需手动管理状态和错误处理
2. 使用 LangChain 实现自动化链接
LangChain 提供 LCEL(LangChain Expression Language)原生支持链式调用。
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
# 定义各阶段 Prompt
extract_prompt = ChatPromptTemplate.from_template(
"从文本中提取公司名和金额:{text}"
)
summarize_prompt = ChatPromptTemplate.from_template(
"用一句话总结:{info}"
)
# 构建链
chain = (
extract_prompt
| ChatOpenAI()
| (lambda x: {"info": x.content})
| summarize_prompt
| ChatOpenAI()
)
result = chain.invoke({"text": "某公司获1亿元A轮融资..."})
✅ 优势:声明式、可组合、内置重试/日志
3. 条件分支链接(动态流程)
根据中间结果决定下一步操作。
response = llm("判断用户意图:咨询 / 投诉 / 其他?n{query}")
if "投诉" in response:
next_prompt = "生成客服安抚话术..."
elif "咨询" in response:
next_prompt = "检索知识库并回答..."
可结合 LangGraph 实现复杂状态机。
4. 并行 + 聚合链接
多个子任务并行执行,再合并结果。
[用户问题]
↓
┌───────────────┐
│ 问题分解 │
└───────────────┘
↓
┌───────┬───────┬───────┐
│ 子任务1 │ 子任务2 │ 子任务3 │ ← 并行调用
└───────┴───────┴───────┘
↓
┌───────────────┐
│ 结果整合与验证 │
└───────────────┘
适用于多源信息融合、多专家意见汇总等场景。
四、设计高质量链接的六大原则
1. 单一职责原则
每个 Prompt 只做一件事:
- ❌ “提取数据并分析趋势并画图”
- ✅ 阶段1:提取;阶段2:分析;阶段3:生成绘图指令
2. 明确输入/输出契约
定义每个环节的数据格式:
| 阶段 | 输入 | 输出 |
|---|---|---|
| 1. 实体识别 | 原始文本 | JSON: {entities: […]} |
| 2. 关系抽取 | 实体列表 | JSON: {relations: […]} |
可用 Pydantic 模型强制校验。
3. 加入错误处理与重试
- 对关键步骤设置重试机制;
- 输出不符合 schema 时触发修正 Prompt。
4. 避免信息衰减
长链中信息可能丢失,可在后续 Prompt 中回传原始上下文:
“基于原始文档 {original_text} 和上一步结果 {prev_output},请…”
5. 监控与日志
记录每个环节的输入/输出/耗时,便于诊断。
6. 成本与延迟权衡
链越长,成本越高。评估是否可用单步 CoT 替代。
五、实战案例:新闻摘要生成链
【阶段1:分块】
输入:10页PDF新闻稿
输出:5个文本块(每块≤2000字)
【阶段2:块摘要】
Prompt: "用3句话总结以下内容,突出关键事件和数据:{chunk}"
→ 生成5个摘要
【阶段3:合并摘要】
Prompt: "将以下摘要整合为一段连贯文字,保留所有关键事实:{summaries}"
【阶段4:生成标题】
Prompt: "为以下摘要拟一个吸引人的标题:{final_summary}"
此链可处理任意长度文档,且各阶段可独立优化。
六、常见陷阱与规避
| 陷阱 | 风险 | 解决方案 |
|---|---|---|
| 链过长 | 错误累积、成本飙升 | 设置最大深度(如 ≤5 步) |
| 无中间验证 | 垃圾进,垃圾出 | 在关键节点加入校验 Prompt |
| 上下文丢失 | 后续步骤偏离主题 | 传递原始 query 或关键实体 |
| 同步阻塞 | 延迟高 | 对独立子任务启用并行调用 |
七、未来演进:从链接到智能体(Agent)
提示词链接是 Agent 工作流的基础。更高级的系统(如 AutoGen、LangGraph)支持:
- 循环决策:根据结果决定是否重试或换策略;
- 工具调用:在链中插入 search、code interpreter 等;
- 多 Agent 协作:不同角色 Agent 负责不同环节。
提示词链接 → 自动化流水线 → 自主智能体
总结
提示词链接不是简单的“多次调用”,而是将复杂问题分解为可管理、可验证、可优化的原子步骤。它是连接简单 Prompt 与高级 AI 应用的桥梁。掌握此技术,你就能构建:
- 超长文档处理器
- 多源信息融合引擎
- 自动化内容工厂
- 可解释的推理系统
核心口诀:
“大任务,拆小步;
一环扣一环,步步有输出;
可查可改可并行,
链成智能工作流。”