> ## Content Index
> Fetch the complete content index at: https://www.hubwiz.com/blog/llms.txt
> Use this file to discover other available public pages before exploring further.

# 提示链
- URL: https://www.hubwiz.com/blog/prompt-chaining/
- Published: 2026-01-09T02:52:14.000Z
- Updated: 2026-01-09T02:52:14.000Z
- Description: 提示链改变了方法。不是使用一个巨大的提示，而是创建一个聚焦提示的管道，其中每个步骤专注于单一的任务。
- Author: admin
- Tags: AGENT, PROMPT CHAINING, #Import 2026-10-14 14:41

如果你曾经让ChatGPT做一件复杂的事情——比如分析一份文件、提取见解，并根据这些见解起草一封电子邮件——你可能已经注意到一些问题：它开始时表现不错，但随后就崩溃了。

摘要还不错。见解很模糊。邮件？最坏的情况是毫无特色。

这并不是模型的问题。这是架构的问题。

而解决方案有一个名字：**提示链**。

## 1、为什么单个提示会失败

当你一次性把一个复杂任务扔给LLM时，你实际上是在要求一个聪明但容易分心的同事同时处理五件事，同时写一份报告。

会发生什么？

- **指令忽视**：你的提示中的一些部分被忽略了
- **上下文漂移**：模型失去了对最初请求的跟踪
- **错误传播**：早期的小错误会变成垃圾输出
- **幻觉**：认知过载增加了编造信息的可能性

我在Convolution AI构建AI系统时反复看到这种模式。一个在测试中能正常工作的提示，在生产环境中却惨遭失败——因为生产任务比我们的测试用例更混乱和复杂。

## 2、分而治之的解决方案

提示链改变了方法。不是使用一个巨大的提示，而是创建一个**聚焦提示的管道**，其中每个步骤：

1. 完成一件事做得很好
2. 产生结构化的输出
3. 输入到下一步

想象一下像工厂装配线一样的东西。每个站点都有一个工作。站点A的输出成为站点B的输入。没有一个站点会被压垮。最终产品是可靠的。

这里是一个思维模型：

```
[复杂任务]   
    → [步骤1：提取]   
    → [步骤2：分析]   
    → [步骤3：转换]   
    → [最终输出]

```

## 3、一个真实例子：市场调研到高管邮件

假设你需要分析一份市场调研报告，识别趋势，并起草一封给管理层的邮件。

**原始方法**（单个提示）：

> *“分析这份市场调研报告，总结发现，识别前三个有支持数据的趋势，并为营销团队起草一封电子邮件。”*

这将产生中等的结果，因为模型同时处理太多认知任务。

**提示链方法**：

**步骤1 —— 摘要**（角色：市场分析师）

> *“总结以下市场调研报告的关键发现：\[文本\]”*

**步骤2 —— 趋势识别**（角色：趋势分析师）

> *“使用这个摘要，识别前三个新兴趋势。对于每个趋势，提取支持它的具体数据点。以JSON格式输出。”*

**步骤3 —— 邮件撰写**（角色：高管沟通专家）

> *“为营销团队起草一封简洁的邮件，概述这些趋势及其支持数据：\[步骤2的JSON\]”*

每个步骤都更简单。每个输出在继续之前都会被验证。最终结果大大改善。

## 4、秘诀：结构化输出

大多数实现失败的地方在于它们在步骤之间传递混乱的文本。

解决方法是：**在链路之间强制结构化输出**（JSON、XML）：

```
{  
  "trends": [  
    {  
      "trend_name": "基于AI的个性化",  
      "supporting_data": "73%的消费者更喜欢使用个人信息的品牌"  
    },  
    {  
      "trend_name": "可持续品牌",  
      "supporting_data": "ESG相关产品在过去五年增长了28%，而其他产品仅增长20%"  
    }  
  ]  
}

```

这消除了歧义。下一步知道它接收的是什么。没有解析错误。没有丢失上下文。

## 5、代码：一个完整实现

以下是使用LangChain的一个最小但完整的示例：

```
from langchain_openai import ChatOpenAI  
from langchain_core.prompts import ChatPromptTemplate  
from langchain_core.output_parsers import StrOutputParser  
llm = ChatOpenAI(temperature=0)  

# 步骤1：提取规格  
prompt_extract = ChatPromptTemplate.from_template(  
    "从以下文本中提取技术规格:\n\n{text_input}"  
)  
# 步骤2：转换为结构化JSON  
prompt_transform = ChatPromptTemplate.from_template(  
    "将这些规格转换为包含'cpu'、'memory'和'storage'键的JSON:\n\n{specifications}"  
)  
# 构建链  
extraction_chain = prompt_extract | llm | StrOutputParser()  
full_chain = (  
    {"specifications": extraction_chain}  
    | prompt_transform  
    | llm  
    | StrOutputParser()  
)  
# 执行  
input_text = "新款笔记本电脑配备3.5 GHz八核处理器、16GB RAM和1TB NVMe SSD。"  
result = full_chain.invoke({"text_input": input_text})  
print(result)

```

输出：

```
{"cpu": "3.5 GHz八核", "memory": "16GB", "storage": "1TB NVMe SSD"}

```

两个提示。干净的交接。可靠的输出。

## 6、在什么情况下使用提示链

在以下情况下使用此模式：

- 任务有多个不同的处理阶段
- 你需要在步骤之间集成外部工具
- 可靠性比速度更重要
- 你正在构建需要多步推理的代理
- 调试和可观测性很重要

在以下情况不要使用此模式：

- 任务确实很简单（一次性的提示就可以）
- 延迟是关键且无法承受多次LLM调用
- 步骤之间没有逻辑依赖

## 7、更大的图景：上下文工程

提示链实际上是称为**上下文工程**的一个更大领域的子集——构建丰富信息环境供AI模型使用的实践。

洞察是简单但深刻的：*模型质量不如上下文质量重要*。

一个普通的模型如果拥有优秀的上下文，将胜过一个前沿模型如果上下文不好。每一次都是如此。

提示链确保在每一步，模型都能获得它需要的精确上下文——不多也不少。这就是它如此可靠的原因。

## 8、接下来是什么

提示链是代理系统的第一个构建块。它教授了一个基本原理：**将复杂性分解为可管理的步骤**。

但真正的代理需要更多。他们需要决定*执行哪个链*（路由）。他们需要在可能的情况下并行运行步骤（并行化）。他们需要评估和改进自己的输出（反思）。

在下一篇文章中，我们将介绍**路由**——如何根据输入特征动态选择不同的处理路径。

---

原文链接：[Prompt Chaining: The Foundation of Every Serious AI Agent](https://medium.com/@francotesei/prompt-chaining-the-foundation-of-every-serious-ai-agent-77f50bde9ba7?ref=hubwiz.com)

汇智网翻译整理，转载请标明出处