← Блог

Пайплайны на скиллах падают. Вот как это исправить

Сережа Рис · 27 January 2026

claude codeпайплайны

Вчера запустил видео-пайплайн для урока. Субтитры сгенерились за 20 минут. Метаданные — ещё 5. На 47-й минуте Claude Code упал на генерации слайдов. Контекст переполнился.

20 минут субтитров — в мусорку.

Почему пайплайны падают

Пайплайн на скиллах — цепочка. Субтитры → метаданные → слайды → превью → YouTube. Каждый шаг зависит от предыдущего.

Claude Code не помнит, что уже сделал. Упал на третьем шаге — начинай сначала. Rate limit? Весь прогресс потерян.

На GitHub issue #21181: агенты при resume перезапускают уже сделанную работу вместо возврата результата. Открыт 27 января 2026 — по-моему, это ключевая проблема для долгих воркфлоу.

Решение: state file

Записывать состояние после каждого шага.

Создай Python-скрипт для video publishing pipeline. После каждого шага сохраняй состояние в JSON. При падении — продолжить с того же места через –resume.

Opus 4.5 сделал скрипт с пятью шагами:

  1. Субтитры через ai-whisper API
  2. Метаданные через Claude Code
  3. Chapter slides (ffmpeg)
  4. Thumbnail (Playwright)
  5. Загрузка на YouTube

state.json сохраняется после КАЖДОГО шага:

{
  "steps": {
    "subtitles": {"status": "completed"},
    "metadata": {"status": "completed"},
    "chapter_slides": {"status": "in_progress"},
    "thumbnail": {"status": "pending"},
    "upload": {"status": "pending"}
  }
}

Упал на слайдах? --resume pipeline.json — продолжает с того же места.

Паттерн durable execution

Не я придумал. Temporal, Restate, LangGraph делают то же — они называют это durable execution. Состояние в хранилище, при падении восстановление из checkpoint, шаги идемпотентны.

Для AI-агентов это критичнее, чем для обычных сервисов: каждый LLM-вызов стоит денег, а контекст ограничен 200k токенов. Потерял контекст — потерял и работу, и бюджет.

Бонусы

Параллельные шаги. Thumbnail и chapter slides независимы — ThreadPoolExecutor запускает их одновременно.

Graceful shutdown. Ctrl+C ловится, состояние сохраняется. Можно прервать и продолжить.

Dry run. --dry-run проверяет ffmpeg, backend, playwright до старта.

Источники

Подписаться на обновления — @sereja_tech