Mindket

提示链:把大任务拆成一串前后传递结果的提示词

黑色横幅,标题是“高级提示词”,下面是“示例、推理、提示链与模板”。

提示链(prompt chaining)把一个任务拆成顺序固定的一串提示词,每次调用都处理上一次调用的输出。Anthropic 的智能体指南还建议在步骤之间加关卡(gate),也就是你自己代码里的检查,一旦跑偏就停下。任务能干净地拆成已知的几个子任务、而且你愿意用速度换准确度时,就用提示链,因为每多一步就多一次模型调用。

本节内容

  • 动手写提示词之前,先把活儿画成一排方框,每个方框只装一条指令。
  • 交接结果一旦格式不对,就在代码里当场停下。
  • 后面的步骤需要原文时,把原文装进单独的标签里递过去。
  • 只有每个输入都走同一条路线时,才把顺序写死。
全部课程
本页目录
  1. 开始之前
  2. 跑一条来自 Anthropic cookbook 的四步提示链
  3. 每次调用看到了什么
  4. 在步骤之间加关卡
  5. 什么时候提示链胜过一条长提示词
  6. Anthropic 谈“智能体组成的工作流”,以及 AI Chains 研究
  7. 常见错误
  8. 自己试一试
  9. 自测一下
  10. 常见问题
  11. 资料来源

开始之前

接下来你会连着跑四条提示词,看着一份简短的季度报告一步步变成排好序的 markdown 表格,每一步跑完都会打印出来。每条提示词拿到的输入,都是上一条提示词的回复。这种交接就是全部技巧,它的名字叫提示链。

你需要 Python 3、anthropic 包和一个 API 密钥,按Claude API 快速上手那一课配置好。每一步的提示词都是普通指令。如果你还不太会写清楚的提示词,先学提示词工程基础那一课。

跑一条来自 Anthropic cookbook 的四步提示链

代码是 Anthropic 自己写的,出自cookbook 里讲基础多 LLM 工作流的笔记本。chain 接收一段起始文字和一组提示词:第一条提示词连同这段文字发出去,之后每条提示词都带上刚拿到的回复。笔记本自己说,这些示例用来演示核心概念,不是生产代码。

from util import llm_call  # util.py sits beside the notebook in the cookbook


def chain(input: str, prompts: list[str]) -> str:
    """Chain multiple LLM calls sequentially, passing results between steps."""
    result = input
    for i, prompt in enumerate(prompts, 1):
        print(f"\nStep {i}:")
        result = llm_call(f"{prompt}\nInput: {result}")
        print(result)
    return result


data_processing_steps = [
    """Extract only the numerical values and their associated metrics from the text.
    Format each as 'value: metric' on a new line.
    Example format:
    92: customer satisfaction
    45%: revenue growth""",
    """Convert all numerical values to percentages where possible.
    If not a percentage or points, convert to decimal (e.g., 92 points -> 92%).
    Keep one number per line.
    Example format:
    92%: customer satisfaction
    45%: revenue growth""",
    """Sort all lines in descending order by numerical value.
    Keep the format 'value: metric' on each line.
    Example:
    92%: customer satisfaction
    87%: employee satisfaction""",
    """Format the sorted data as a markdown table with columns:
    | Metric | Value |
    |:--|--:|
    | Customer Satisfaction | 92% |""",
]

# Three of the cookbook's eight report lines
report = """
Q3 Performance Summary:
Our customer satisfaction score rose to 92 points this quarter.
Revenue grew by 45% compared to last year.
Employee satisfaction is at 87 points.
"""

formatted_result = chain(report, data_processing_steps)
  1. 从同一个 cookbook 文件夹里把 util.py 复制到你的项目中。它的 llm_call 发送一条用户消息并返回回复文字,默认模型是 claude-sonnet-5-5,也可以传入别的模型。
  2. 在终端里设置 ANTHROPIC_API_KEY,因为 util.py 从环境变量里读取密钥。
  3. 把代码保存在 util.py 旁边,然后运行。
  4. 先看“Step 1”下面的输出。后面每一步都只依据这段文字工作,所以这里漏掉的数值,后面再也找不回来。
  5. 再拿它和“Step 4”对照,那是最后一条提示词要求的 markdown 表格。

每次调用看到了什么

值得细看的是循环里的那一行:llm_call(f"{prompt}\nInput: {result}")。每次调用只拿到一条指令和一段文字。第 3 步从来看不到原始报告,只看到第 2 步返回的列表。

视野窄有好有坏。没拿到的文字不会干扰这一步,可前面某一步丢掉的事实,这一步也补不回来。如果第 4 步需要原始输入里的内容,就有意识地把它传过去,放进单独的 XML 标签里,让模型分得清哪是指令、哪是材料。每一步的提示词其实也是一个小模板,固定的指令加一个空位,下一课会做出带多个具名空位的模板。

Anthropic 的交互式教程在讲提示链的附录里用的是另一种接法。它让对话一直延续:第一条回复作为助手回合放回去,后面跟着下一个请求,所以每次调用都能看到之前所有的回合。

出自cookbook 笔记本和教程附录,2026-11-06 阅读。
方面只传输出传整段对话
Anthropic 在哪里演示cookbook 里的 chain 函数教程里讲提示链的附录
每一步看到什么自己的指令和上一条回复之前所有的请求和回复
每次调用的输入量大约一步的量每多一步就更长
适合把数据一步步改成新的形状让模型修改它自己上一条回答

在步骤之间加关卡

第 1 步要求输出 value: metric 形式的行。要是模型多加了一个标题或者项目符号,第 2 步照样会运行,问题要等到三次调用之后才冒出来。Anthropic 的指南 Building effective agents 给出了办法:在任何中间步骤上加程序化检查,图里画作“gate”(关卡),用来确认流程没有跑偏。

下面这段代码是本课自己写的,它把 cookbook 的 chain 包了一层:去掉打印,并在你指定的步骤之后运行检查。检查不通过就抛出错误,坏掉的那一步会让整条链停下,而不是把错误结果喂给下一条提示词。

关卡也可以是一条提示词。教程先让模型列出十个以“ab”结尾的单词。接着是一个复查请求:“Please find replacements for all 'words' that are not real words.”笔记本提到,Claude 偶尔还是会改动本来就正确的单词。解决办法是给复查者留一条退路,加上一句“If all the words are real words, return the original list.”。复查步骤少了这句话,就没法说一句“这份结果没问题”。

# Paste this below the first sample: it reuses report and data_processing_steps.
import re

from util import llm_call

LINE = re.compile(r"^\S+: .+")  # the 'value: metric' shape steps 1 to 3 ask for


def check_lines(text: str) -> None:
    """A gate: stop the chain when a step breaks the line format."""
    lines = [line.strip() for line in text.strip().splitlines() if line.strip()]
    bad = [line for line in lines if not LINE.match(line)]
    if not lines or bad:
        raise ValueError(f"Gate failed. First bad lines: {bad[:3]}")


def chain_with_gates(input: str, prompts: list[str], gates: dict) -> str:
    """The cookbook's chain, with a check after the steps named in gates."""
    result = input
    for i, prompt in enumerate(prompts, 1):
        result = llm_call(f"{prompt}\nInput: {result}")
        check = gates.get(i)
        if check:
            check(result)  # raises, so a bad step never reaches the next prompt
    return result


table = chain_with_gates(
    report, data_processing_steps, {1: check_lines, 2: check_lines, 3: check_lines}
)

什么时候提示链胜过一条长提示词

Anthropic 的规则很简短:任务能干净地拆成固定的子任务时,就用提示链。你牺牲一些延迟来换准确度,因为每次调用的活儿都更轻松。它举了两个例子:先写营销文案再翻译成另一种语言,以及先写大纲、对照标准检查大纲、再按大纲写出整篇文档。Anthropic 2024 年的一篇文章还举了一个分三次调用回答税务问题的例子:先列出相关的税法条目,再在每份文档里找出相关段落,最后根据收集到的内容作答。

这些例子有个共同点:第一次调用之前,顺序就已经定了。如果该走哪些步骤取决于输入,固定的提示链就不合适。一个混着退款申请和技术故障的客服队列,需要一个路由来挑下一条提示词,或者一个自己决定步骤的智能体,AI 智能体那一课讲过这一点。一条已经好用的清楚提示词,根本不需要拆成链。

研究结果也指向同一个方向,只是用的模型如今已经过时。2022 年的least-to-most 提示论文让 GPT-3 的 code-davinci-002 先把问题拆成更简单的子问题,再按顺序逐个解决,每个答案都传给下一个。在 SCAN 这个考察能否处理比示例更难指令的测试上,论文报告的准确率至少 99%,而思维链提示只有 16%。

后来的两项研究延续了这个规律。2023 年的 Self-Refine 让 GPT-3.5、ChatGPT 和 GPT-4 先起草输出,再对它给出反馈,然后据此修改。在七项任务上,它报告的任务表现比一步生成平均高出约 20%(绝对值)。一项 2024 年的摘要研究把起草、批评、修改分别做成三条提示词和合成一条提示词来比较。三条提示词的链结果更好,作者认为,单条提示词里的修改过程可能只是模拟出来的。

least-to-most 论文中的 SCAN 准确率(code-davinci-002,2022 年)least-to-most 提示先拆分问题,再按顺序解决各个部分。思维链提示则在一条提示词里推理到底。
  • least-to-most 提示至少 99%
  • 思维链提示16%

来源:Least-to-Most Prompting (Zhou et al., 2022) on Hugging Face Papers (2026年11月6日 查阅)

Anthropic 谈“智能体组成的工作流”,以及 AI Chains 研究

2025 年 10 月,Anthropic 发布了一段对谈。对谈双方是 Claude Relations 的 Alex Albert,以及做多智能体研究、参与撰写 Building effective agents 的 Erik。6:40 开始的那一章,标题译过来是“工作流与智能体的演变(由智能体组成的工作流)”。这个标题正好说明了本课这种提示链可以往哪里发展:步骤顺序仍然写在你的代码里,某一步需要搜索或调用 API 时,就让这一步变成一个带工具的智能体。

提示链比这波智能体热潮出现得更早。2021 年的论文 AI Chains 里,Tongshuang Wu、Michael Terry 和 Carrie J. Cai 对一个搭建提示链的交互工具做了 20 人的用户研究。提示链提高了任务结果的质量,用户还自己摸索出一种调试办法:对链里的子组件做“单元测试”,找出意外输出的来源。今天你也可以照做:把第 2 步的输出存成文件,单独反复运行第 3 步,直到它表现正常。

一个步骤的输出成为下一个步骤的输入,每一步带来的提升也就累积了起来。

Tongshuang Wu、Michael Terry 和 Carrie J. Cai, 2021 年论文 AI Chains 的作者,引文为译文 · Hugging Face (2026年11月6日 查阅)
Anthropic 的 Alex Albert 与参与撰写 Building effective agents 的 Erik,谈智能体和工作流的变化。2025 年 10 月 17 日发布在 Anthropic 的 YouTube 频道。

常见错误

  • 一条清楚的提示词就能搞定的任务也拆成链,白白多付四次调用、多等四次。
  • 每次调用只看到递给它的文字,却让第 1 步丢掉了后面步骤要用的事实。
  • 某一步返回的格式已经错了,后面的步骤还照跑,错误要到三次调用之后才露出来。
  • 加了复查步骤,却没给它说“结果已经没问题”的余地。
  • 从最终输出开始排查,而不是从第一个输出看起来不对的步骤开始。
  • 每个输入要走的步骤都不一样,却把顺序写死在代码里。

自己试一试

  • 从报告里删掉员工满意度那一行,再跑一遍提示链。哪一步最先体现出变化?
  • 运行 chain_with_gates,故意在第 1 步的提示词里加一句“Start with a short heading.”把它弄坏。是哪道关卡让运行停下的?它的错误信息列出了什么?
  • 加第五步,用一句话说明最大的那个数值,并把原始报告放进名为 report 的 XML 标签里,和表格一起交给它。
  • 把 Anthropic 指南里写大纲的例子做成三条提示词加一道关卡。你的关卡具体检查什么?

自测一下

  1. 在 cookbook 的 chain 函数里,第 3 步接收到什么?

    查看答案

    B. 它自己的提示词和第 2 步的输出 每次调用都由一条提示词加上前一次调用的结果组成。

  2. 提示链里的关卡(gate)是什么?

    查看答案

    A. 步骤之间可以让运行停下的检查 Anthropic 的指南把关卡描述为加在中间步骤上的程序化检查,用来确保流程没有跑偏。

  3. 哪个任务最适合用固定的提示链?

    查看答案

    C. 先写大纲、检查大纲,再写出文档 它的子任务事先就知道,而且每次都按同样的顺序运行,这正是 Anthropic 说适合提示链的情况。

  4. 复查步骤总是改动本来就正确的单词。Anthropic 的教程在复查提示词里加了什么?

    查看答案

    D. 一句话:没有问题时就原样返回列表 给复查者留一条退路,它就会让正确的结果保持原样,而不是硬找地方去改。

常见问题

什么是提示链?

提示链就是把一个任务拆成几条按固定顺序运行的提示词,每一条都接收上一条的输出。Anthropic 在它的智能体指南里把它列为第一种工作流,步骤之间可以加检查。

提示链和思维链有什么区别?

思维链是在一条回复里要求模型写出推理步骤,提示链则让每一步都成为一次单独的模型调用。分开调用,你就能单独检查某一步,或者只重跑这一步,一条回复做不到这一点。

提示链算是 AI 智能体吗?

不算。按 Anthropic 的说法,提示链属于工作流,模型和工具沿着预先写好的代码路径运行;智能体则自己决定流程和工具的使用。不过提示链可以把其中一步交给智能体去做。

一条提示链应该有几步?

任务需要几步就几步,越少越好。每多一步就多一次调用、多一次等待,Anthropic 也建议先找最简单的方案,确有需要再增加复杂度。在两步之间加一道检查能拦住真实错误的地方,才值得拆开。

提示链的步骤可以并行运行吗?

互相依赖的步骤不行,因为每一步都要等前一步的输出。彼此独立的部分可以。同一个 cookbook 笔记本里有一个 parallel 函数,把同一条提示词同时用在多个输入上,Anthropic 的指南把它算作另一种工作流,叫并行化。

资料来源

  1. Anthropic Engineering: Building effective agents (2026年11月6日 查阅)https://www.anthropic.com/engineering/building-effective-agents
  2. Anthropic cookbook: Basic multi-LLM workflows (notebook) (2026年11月6日 查阅)https://github.com/anthropics/claude-cookbooks/blob/main/patterns/agents/basic_workflows.ipynb
  3. Anthropic cookbook: util.py for the agent patterns (2026年11月6日 查阅)https://github.com/anthropics/claude-cookbooks/blob/main/patterns/agents/util.py
  4. Anthropic's prompt engineering tutorial: Appendix 10.1, Chaining Prompts (2026年11月6日 查阅)https://github.com/anthropics/prompt-eng-interactive-tutorial/blob/master/Anthropic%201P/10.1_Appendix_Chaining%20Prompts.ipynb
  5. Anthropic: Prompt engineering for business performance (29 February 2024) (2026年11月6日 查阅)https://www.anthropic.com/news/prompt-engineering-for-business-performance
  6. Least-to-Most Prompting (Zhou et al., 2022) on Hugging Face Papers (2026年11月6日 查阅)https://huggingface.co/papers/2205.10625
  7. Self-Refine (Madaan et al., 2023) on Hugging Face Papers (2026年11月6日 查阅)https://huggingface.co/papers/2303.17651
  8. Prompt Chaining or Stepwise Prompt? (Sun et al., 2024) on Hugging Face Papers (2026年11月6日 查阅)https://huggingface.co/papers/2406.00507
  9. AI Chains (Wu, Terry and Cai, 2021) on Hugging Face Papers (2026年11月6日 查阅)https://huggingface.co/papers/2110.01691
  10. YouTube: Building more effective AI agents (Anthropic, 17 October 2025) (2026年11月6日 查阅)https://www.youtube.com/watch?v=uhJJgc-0iTQ

分享本节课

看看做好的多步骤智能体

浏览 Mindket 上架的 AI 智能体,其中不少会在一次请求背后,按固定顺序调用好几次模型。

浏览 AI 智能体

本节课的 Markdown 版本 · 高级提示词工程:示例、推理、提示链与模板 · 全部课程