Prompt Chaining
Abstract
Prompt chaining разбивает задачу на последовательность вызовов, где результат одного шага становится входом следующего. Это граница prompting и system architecture: содержание узлов проектируется промптами, а переходы и проверки — workflow-кодом или человеком.
Простейшая цепочка
текст → извлечь тезисы → проверить тезисы → собрать структуру → написать документКаждый шаг должен выдавать самостоятельный, проверяемый артефакт. Если второй prompt получает весь неструктурированный диалог, границы цепочки существуют только на словах.
Когда использовать
- фиксированные подзадачи зависят друг от друга;
- один вызов перегружен несколькими критериями;
- нужен человеческий review между этапами;
- промежуточный результат можно проверить схемой или тестом;
- разные шаги требуют разных моделей, tools или token budgets.
Когда не использовать
- задача стабильно решается одним вызовом;
- decomposition заранее неизвестна — возможно, нужен agent или orchestrator;
- ошибка раннего шага незаметно отравляет всю цепочку;
- дополнительные latency и cost не окупаются.
Контракт узла
Для каждого этапа зафиксируй:
- входную схему;
- требуемый выход;
- проверку;
- retry policy;
- fallback;
- данные, которые нельзя передавать дальше.
Пример:
step: extract_claims
input: source_document
output:
claims:
- text
- source_location
checks:
- every_claim_has_source
- no_claim_outside_documentОшибки
- свободный текст вместо контракта между шагами;
- отсутствие provenance после summarization;
- автоматический retry с тем же input и prompt;
- Judge одновременно оценивает и молча переписывает;
- публикация является последним узлом без preview;
- цепочка используется как имитация нескольких агентов, хотя state и permissions общие.
Ручной и программный режим
- Ручной: пользователь переносит результат между prompts и проверяет границы. Это относится к Промпт Лаборатории.
- Программный: приложение управляет узлами, state, retries и gates. Это архитектура workflow.