Prompt Chaining
Цепочка промптов разбивает задачу на последовательность вызовов модели, формируя каждый промпт на основе предыдущего результата и выполняя программные проверки между этапами.
Цепочка промптов разбивает задачу на последовательность вызовов большой языковой модели (LLM) или другой модели, где каждый промпт формируется на основе результата предыдущего вызова. Вместо одного длинного промпта, который должен прочитать письмо в службу поддержки, найти номер заказа, проверить заказ и составить ответ, цепочка запускает отдельный, более узкий промпт для каждого шага, а обычный код передаёт результаты дальше и проверяет их между шагами. Каждый промежуточный результат можно отдельно изучить, проверить и исправить. Tongshuang Wu, Michael Terry и Carrie Cai исследовали этот подход в работе AI Chains, представленной на CHI 2022: в исследовании с участием 20 человек цепочки повысили качество результатов и усилили ощущение прозрачности и контроля у участников.
Как работает цепочка промптов#
Цепочка — это фиксированная программа. Разработчик определяет шаги, их порядок и шаблон промпта для каждого из них, а код перемещает данные между шагами, часто в формате JSON, который гарантированно разбирается благодаря схеме структурированного вывода. В руководстве Anthropic Building Effective Agents цепочки промптов классифицируются как рабочий процесс — система, путь выполнения которой задан в коде, — и описываются программные проверки, называемые барьерами, между шагами, которые подтверждают, что процесс идёт по плану. Среди примеров — написание маркетингового текста с последующим переводом, а также составление плана, его проверка по заданным критериям и только затем написание документа. Компромисс — задержка в обмен на точность: каждый вызов проще выполнить правильно, но каждый шаг добавляет обмен данными.
Барьеры важны, потому что ошибки накапливаются. Неверное значение, извлечённое на первом шаге, становится уверенно изложенным фактом на третьем, поэтому цепочки обычно проверяют форматы, диапазоны или обязательные поля, прежде чем передавать данные дальше. В более длинных цепочках появляются циклы, подобные показанному выше: шаг повторяется с сообщением об ошибке, добавленным в промпт, или добавляется этап маршрутизации, на котором первый вызов присваивает запросу метку, а код выбирает подходящий промпт. Такие фреймворки, как LangChain, предоставляют компоненты для построения цепочек, хотя многие производственные цепочки состоят всего из нескольких вызовов функций на обычном Python.
Примеры применения в реальных условиях#
- Генерация кода: AlphaCodium связывает анализ задачи, генерацию тестов, составление решения и исправление на основе тестов; благодаря этому результат GPT-4 по метрике pass@5 на проверочных задачах CodeContests вырос с 19% при одном прямом промпте до 44%.
- Обработка документов: Конвейеры обработки счетов и договоров извлекают поля одним вызовом, проверяют их в коде и другим вызовом создают сводки или электронные письма на основе проверенных полей.
- Генерация с дополнением извлечёнными данными (RAG): Первый вызов преобразует вопрос пользователя в поисковый запрос, затем код выполняет поиск в векторной базе данных, а второй вызов формирует ответ на основе найденных фрагментов.
- Распознавание номерных знаков: Модель YOLO обнаруживает номерные знаки в кадрах видео, а каждый вырезанный знак передаётся GPT-4o mini, который распознаёт символы в виде текста, поэтому языковая модель видит только номерные знаки.
Агенты Ultralytics Platform позволяют строить такие цепочки на визуальном холсте. Шаблон 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)Выведенный промпт передаёт результаты обнаружения объектов в следующий вызов, а изображение без людей до него не доходит.
Цепочки промптов и связанные понятия#
- Промптинг с цепочкой рассуждений: Один вызов модели просят вывести ход рассуждений по шагам. Цепочка промптов распределяет шаги между несколькими вызовами, вставляя между ними код.
- ИИ-агенты и промптинг ReAct: Модель выбирает следующее действие и решает, когда завершить работу. В цепочке разработчик заранее фиксирует шаги, благодаря чему цепочки проще тестировать, а их стоимость — прогнозировать.
- Агентные рабочие процессы: Более широкое семейство систем на основе LLM, состоящих из нескольких шагов и инструментов. Оно включает цепочки, маршрутизацию, параллельные вызовы и схемы с оркестратором и исполнителями.
- Промпт-инжиниринг: Искусство составления каждого отдельного промпта. Цепочки — это проектное решение о количестве промптов и потоке данных между ними.










