Skip to content

提示链模式(Prompt Chaining)

将复杂任务分解为一系列更小、更聚焦的步骤,是构建可靠AI系统的关键。

🎯 什么是提示链?

提示链(Prompt Chaining),也称为管道模式(Pipeline Pattern),是一种处理复杂任务的强大范式。

核心思想

与其期望大语言模型用单一步骤解决复杂问题,不如采用分而治之策略:

复杂问题 → 步骤1 → 输出1 → 步骤2 → 输出2 → 步骤3 → 最终答案
              ↑            ↑            ↑
           专注提示     专注提示     专注提示
特征说明
顺序执行每一步按顺序执行,前后依赖
单一职责每个提示只专注于一个具体任务
结果传递上一步的输出成为下一步的输入
逐步推进像接力赛一样,一棒传一棒

⚠️ 单一提示的五大缺陷

当你试图用一个复杂提示让模型一次性完成所有事情时:

问题说明比喻
指令遗忘模型会忽略部分指令同时布置10件事,只记住3件
上下文漂移处理过程中逐渐偏离目标写着写着就跑题了
错误放大早期小错误在后续被放大第一步错了,后面全盘皆输
信息不足上下文窗口超限文章太长,只能看到一部分
幻觉增加认知负担过重导致胡编乱造脑子一团乱,只好瞎编

失败案例

假设你给模型这个提示:

"请分析这份市场研究报告,总结核心发现,识别三大新兴趋势并附上具体数据,然后给市场团队写一封邮件。"

结果:总结可能还行,但提取精确数据时开始出错,写邮件时格式和语气可能完全不对。


✅ 提示链如何解决问题

顺序分解策略

将上面的任务拆解为三个独立步骤:

第一步(总结)

"请总结以下市场研究报告的核心发现:[报告全文]"

第二步(识别趋势)

"基于以上总结,请识别出三大新兴趋势,并提取支持每个趋势的具体数据:[第一步的输出]"

第三步(写邮件)

"请起草一封简洁的邮件给市场团队,概述以下趋势及其支持数据:[第二步的输出]"

优势对比

优势说明
降低认知负荷每一步任务简单明确
易于调试出错时可精确定位是哪一步
模块化每一步可独立优化
可控性强可在任意步骤介入修正

🎭 角色分配技巧

为每一步分配不同角色,提升专业性:

步骤角色作用
第一步市场分析师专业的报告总结
第二步行业分析师精准的趋势识别
第三步专业文档撰写人得体的邮件格式

📊 结构化输出:链条的润滑剂

为什么需要结构化输出?

如果第一步输出是模糊的自然语言:

"报告显示AI个性化很流行,大概70%多的消费者喜欢这样..."

传递给下一步时会:丢失精确数据、产生歧义、难以解析。

解决方案:使用JSON

json
{
  "trends": [
    {
      "trend_name": "AI驱动的个性化",
      "supporting_data": "73%的消费者更愿意与使用个人信息来提升购物体验的品牌合作"
    },
    {
      "trend_name": "可持续与道德品牌",
      "supporting_data": "ESG相关产品的销售额在过去五年增长了28%"
    }
  ]
}

好处:数据精确、机器可读、无歧义传递。


🔬 实战案例:智能文档分析助手

场景描述

用户上传一份技术文档,希望AI助手:

  1. 理解文档内容
  2. 提取关键概念
  3. 生成学习笔记
  4. 创建测验题目

单一提示方式(不推荐)

请阅读以下技术文档,理解其内容,提取所有关键概念并解释,
然后生成一份结构化的学习笔记,最后根据内容创建5道测验题目。

[文档内容...]

问题:模型很可能在后半部分出错,概念解释不完整,测验题目质量低下。

提示链方式(推荐)

步骤1:文档理解与摘要

角色:你是一位技术文档分析专家

任务:请仔细阅读以下技术文档,生成一份结构化摘要。

要求:
- 识别文档主题
- 概括核心内容(3-5句话)
- 列出文档的主要章节

输出格式:JSON
{
  "topic": "文档主题",
  "summary": "核心内容摘要",
  "sections": ["章节1", "章节2", ...]
}

文档内容:
[原始文档...]

步骤2:概念提取

角色:你是一位技术概念分析师

任务:基于以下文档摘要,提取并解释所有关键技术概念。

输入:[步骤1的JSON输出]

要求:
- 识别5-10个关键概念
- 为每个概念提供简明解释
- 标注概念之间的关系

输出格式:JSON
{
  "concepts": [
    {
      "name": "概念名称",
      "explanation": "概念解释",
      "related_to": ["相关概念1", "相关概念2"]
    }
  ]
}

步骤3:生成学习笔记

角色:你是一位教育内容创作者

任务:基于以下概念列表,生成结构化的学习笔记。

输入:[步骤2的JSON输出]

要求:
- 使用清晰的标题层级
- 包含概念定义、要点和示例
- 添加学习提示

输出格式:Markdown

步骤4:创建测验题目

角色:你是一位考试出题专家

任务:基于以下学习笔记,创建测验题目。

输入:[步骤3的Markdown输出]

要求:
- 创建5道选择题
- 覆盖核心概念
- 提供答案和解析

输出格式:JSON
{
  "questions": [
    {
      "question": "题目",
      "options": ["A", "B", "C", "D"],
      "answer": "正确选项",
      "explanation": "解析"
    }
  ]
}

流程图示

┌─────────────────────────────────────────────────────────────────┐
│                      智能文档分析助手                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  [原始文档]                                                      │
│      │                                                          │
│      ▼                                                          │
│  ┌────────────────┐                                             │
│  │ 步骤1:文档摘要 │  角色:文档分析专家                          │
│  │   输出:JSON   │  → 主题、摘要、章节                          │
│  └───────┬────────┘                                             │
│          │                                                      │
│          ▼                                                      │
│  ┌────────────────┐                                             │
│  │ 步骤2:概念提取 │  角色:概念分析师                            │
│  │   输出:JSON   │  → 概念、解释、关系                          │
│  └───────┬────────┘                                             │
│          │                                                      │
│          ▼                                                      │
│  ┌────────────────┐                                             │
│  │ 步骤3:学习笔记 │  角色:教育内容创作者                        │
│  │  输出:Markdown │  → 结构化笔记                               │
│  └───────┬────────┘                                             │
│          │                                                      │
│          ▼                                                      │
│  ┌────────────────┐                                             │
│  │ 步骤4:测验题目 │  角色:出题专家                              │
│  │   输出:JSON   │  → 题目、答案、解析                          │
│  └────────────────┘                                             │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

🔄 提示链 vs 上下文工程

什么是上下文工程?

上下文工程(Context Engineering)是一门系统性学科,研究如何在AI模型生成之前,为其构建一个完整的信息环境

核心区别

维度提示链上下文工程
关注点任务如何分解和执行信息如何组织和提供
核心问题"怎么做?""知道什么?"
比喻流水线工序厨师的备料台
层次执行层(How)信息层(What)

详细对比

提示链关注的是:

任务A → 任务B → 任务C → 结果
  ↓        ↓        ↓
分步执行  顺序传递  逐步构建
  • 如何将复杂任务拆解为简单步骤
  • 如何串联各个步骤
  • 如何传递中间结果

上下文工程关注的是:

┌─────────────────────────────────────┐
│           完整的上下文              │
├─────────────────────────────────────┤
│  系统提示:定义角色和规则            │
│  检索文档:外部知识库内容            │
│  工具输出:API调用的实时数据         │
│  隐式数据:用户历史、身份、偏好      │
└─────────────────────────────────────┘


           [模型生成]
  • 模型知道什么信息
  • 何时获取这些信息
  • 如何使用这些信息

上下文工程的信息层次

信息类型说明示例
系统提示定义AI运行参数"你是技术文档撰写者,语气正式精准"
检索文档主动获取的外部知识项目规范、历史邮件
工具输出API返回的实时数据日历空闲时间、天气
隐式数据用户身份、历史、环境VIP客户、之前的对话

两者的关系

提示链是「怎么做」,上下文工程是「用什么做」。

它们是互补的:

  • 提示链定义了任务的执行流程
  • 上下文工程确保每一步都有充足的信息

实际应用对比

场景:帮用户安排会议

仅用提示链:

步骤1:理解用户需求 → 步骤2:生成会议邀请 → 步骤3:发送邮件

问题:不知道用户日程、参会者关系、会议室可用性。

结合上下文工程:

┌─────────────────────────────────────┐
│  上下文准备                          │
│  ├─ 用户日历(工具输出)              │
│  ├─ 参会者职级关系(隐式数据)         │
│  ├─ 会议室预订系统(工具输出)         │
│  └─ 过往会议纪要(检索文档)           │
└─────────────────────────────────────┘


步骤1:分析最佳时间 → 步骤2:生成个性化邀请 → 步骤3:预订并发送

结果:生成的会议邀请高度相关、个性化、实用。

核心洞察

即便是最先进的模型,如果提供给它的运行环境视图是有限或结构不良的,其表现也会大打折扣。

上下文工程将任务重点从「回答问题」转变为「为智能体构建完整的操作全貌」。


📋 应用场景

适用场景

场景说明
信息处理工作流文档提取→总结→实体识别→报告生成
复杂问答分解问题→分别研究→整合答案
内容创作大纲→初稿→润色→排版
代码生成需求分析→架构设计→代码实现→测试

何时使用提示链?

✅ 任务过于复杂,单个提示难以胜任
✅ 涉及多个独立的处理步骤
✅ 需要在步骤间与外部工具交互
✅ 构建需要多步推理的智能体系统


🔧 工具支持

框架说明
LangChain/LangGraphPython生态,丰富的链式调用支持
Google ADK谷歌智能体开发套件
Semantic Kernel微软的AI编排框架
FastMCP轻量级MCP协议实现

📝 核心要点

要点说明
分而治之将复杂任务分解为更小、更聚焦的步骤
依赖链每一步的输出成为下一步的输入
可靠性提升降低认知负荷,减少错误
结构化输出使用JSON确保数据传递无歧义
角色分配每一步分配不同角色提升专业性

🔗 相关阅读

参考资源

基于 VitePress 构建