Prompt Chaining
提示链会将任务拆分为一系列模型调用,并根据上一步的输出构建每个提示,同时在步骤之间进行代码检查。
提示链会将任务拆分为一系列对大型语言模型(LLM)或其他模型的调用,每个提示都根据上一次调用的输出构建。与其用一个冗长提示来阅读客服邮件、查找订单号、查询订单并起草回复,不如让提示链为每个步骤分别运行一个更精简的提示,再由普通代码传递结果并在步骤之间进行检查。每个中间输出都可以单独检查、测试和修正。Tongshuang Wu、Michael Terry 和 Carrie Cai 在发表于 CHI 2022 的 AI Chains中研究了这种模式;一项有 20 名参与者的用户研究发现,提示链提高了结果质量,也增强了参与者对透明度和控制力的感受。
提示链的工作原理#
提示链是一种固定程序。开发者决定各个步骤及其顺序,并为每个步骤设定提示模板;代码在步骤之间传递数据,通常使用 JSON,并由结构化输出模式确保数据可解析。Anthropic 的 Building Effective Agents指南将提示链归类为工作流,即执行路径在代码中设定的系统;指南还介绍了步骤之间称为门控的程序化检查,用于确认流程仍在正轨上。指南中的示例包括先撰写营销文案再进行翻译,以及先起草大纲、根据标准检查大纲,然后才撰写文档。提示链以延迟换取准确性:每次调用都更容易做好,但每个步骤都会增加一次往返。
门控很重要,因为错误会层层累积。第一步提取的错误值会在第三步变成一个看似确定的事实,因此提示链通常会在传递内容前验证格式、范围或必填字段。较长的提示链还会加入类似上文的循环,在提示中附上失败消息并重试某一步;或者加入路由步骤,由第一次调用标记请求,再由代码选择相应的提示。诸如 LangChain之类的框架提供了组合提示链的构建模块,不过许多生产环境中的提示链只是用普通 Python编写的几个函数调用。
实际应用#
- 代码生成:AlphaCodium 通过提示链依次进行问题分析、测试生成、方案起草和测试驱动修复;在 CodeContests 验证问题上,它将 GPT-4 的 pass@5 从单次直接提示时的 19% 提高到 44%。
- 文档处理:发票和合同处理流程会在一次调用中提取字段,在代码中验证字段,然后在另一次调用中根据已验证的字段生成摘要或邮件。
- 检索增强生成(RAG):第一次调用将用户问题改写为搜索查询;代码针对向量数据库执行检索,第二次调用则根据检索到的段落作答。
- 车牌识别:YOLO 模型会检测视频帧中的车牌,每个裁剪出的车牌都会传给 GPT-4o mini,由它将字符识别为文本,因此语言模型始终只会看到车牌。
Ultralytics Platform Agents可在可视化画布上构建此类提示链。其 YOLO → VLM Monitor 模板会在图像上运行 YOLO26,将检测结果传给 Gate 模块;只有找到至少一个人时,流程才会继续,并将图像及上游结果发送给 LLM 模块中的视觉语言模型。下面展示了用 Python 实现相同提示链的方式,代码截至第二个环节的提示:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Link 1: detect objects and list their class names
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
names = [result.names[int(c)] for c in result.boxes.cls]
# Gate: call the language model only when a person is present
if "person" in names:
# Link 2: build the next prompt from link 1's output
prompt = f"Objects detected: {', '.join(names)}. In one sentence, describe what the people are doing."
print(prompt)打印出的提示会将目标检测结果传递给下一次调用;如果图像中没有人,流程就不会到达这一步。










