Назад
Автоматизация видеомонтажа с помощью ИИ-агентов
Как в Re-skill построили рабочий процесс на базе LLM для более умного видеомонтажа

В Re-skill мы хотели автоматизировать утомительный процесс создания обучающих видео. Простые задачи вроде склейки клипов можно жёстко прописать в коде, но продвинутый монтаж, например анимация и рендеринг текста, требует более умного подхода. Поэтому вместе с Diffusion Studio (YC F24) мы разработали ИИ-агента, который упрощает наши процессы видеомонтажа.
Мы представили ИИ-агента на AI Engineering Summit NYC. Демо и запись доклада можно посмотреть здесь:
В этой статье мы делимся тем, чему научились, создавая ИИ-агентов, и даём разработчикам практические советы о том, как строить эффективных агентов для видеомонтажа.
Что такое ИИ-агенты
Любая эффективная система на основе ИИ должна давать LLM тот или иной доступ к реальному миру. Например, возможность вызвать поисковый инструмент, чтобы получить внешнюю информацию, или воздействовать на определённые программы, чтобы решить задачу вроде видеомонтажа. Иначе говоря, у LLM должна быть агентность. Агентные программы служат для LLM воротами во внешний мир.
ИИ-агентами называют программы, в которых ход работы определяется выходными данными LLM.
Любая система, использующая LLM, встраивает их выходные данные в код. Степень, в которой вклад LLM влияет на ход выполнения кода, и есть уровень агентности LLM в системе.
Агентов можно применять для открытых задач вроде видеомонтажа, где трудно или невозможно предсказать нужное число шагов и где нельзя жёстко прописать фиксированный путь. LLM может работать на протяжении многих ходов, и вы должны в какой-то мере доверять её решениям. Автономность делает агентов идеальным инструментом для масштабирования задач в доверенных средах.
С чего всё началось?
Выбирая основу для нашего ИИ-агента, мы оценивали варианты по таким критериям: интуитивный API, с которым можно работать независимо от выбранной LLM, скорость и, в идеале, рендеринг на стороне клиента.
С этой целью, осознав ограничения ffmpeg, мы начали искать более интуитивные и гибкие альтернативы.
ffmpeg
собирает рендер только в рамках одной команды, не умеет субсэмплировать видео и т. д.
не поддерживает сложную работу со слоями
remotion
сложная архитектура с множеством зависимостей, которая требует много шаблонного кода
не поддерживает рендеринг на стороне клиента
core от Diffusion Studio
очень эффективный компактный движок, который работает прямо в браузере
минималистичный API, удобный для ИИ (экономно расходует контекст)
Архитектура
В нашем многошаговом ИИ-агенте LLM на каждом шаге может записать действие в виде вызовов внешних инструментов.
Распространённый формат записи таких действий (его используют Anthropic, OpenAI и многие другие) обычно сводится к вариациям одной идеи: «записывать действия в виде JSON с названиями инструментов и аргументами, а затем разбирать этот JSON, чтобы понять, какой инструмент запускать и с какими аргументами».
Мы же описываем действия кодом, и причина проста: языки программирования мы создавали именно как лучший способ описывать действия, которые выполняет компьютер. Если бы фрагменты JSON справлялись с этим лучше, JSON был бы главным языком программирования, а программирование превратилось бы в ад на земле.
Поэтому по умолчанию мы используем Code Agent. На каждом шаге он пишет код на JS/TS и выполняет фрагменты кода на Python. Core умеет собирать сложные композиции через программный интерфейс на JS/TS, поэтому идеально подходит для нашего Code Agent.
Инструменты
Не менее важно продуманно и понятно спроектировать наборы инструментов и их документацию: агента можно представить как LLM, которая в цикле пользуется инструментами, опираясь на обратную связь от среды.
Вот набор инструментов, который мы тщательно продумали для нашего агента:
VideoEditingTool генерирует код по запросам пользователя и запускает его в браузере
Если нужен дополнительный контекст, DocsSearchTool с помощью RAG подтягивает нужную информацию
После каждого шага выполнения из композиции берутся кадры (сейчас 1 кадр в секунду), и их анализирует VisualFeedbackTool
Система обратной связи решает, переходить ли к рендерингу или продолжать доработку
Для VisualFeedbackTool мы взяли за основу схему «генератор и оценщик»:

Такая схема особенно эффективна, когда есть чёткие критерии оценки и итеративная доработка даёт измеримую пользу. Два признака того, что она подходит:
Ответы LLM можно заметно улучшить, если человек чётко сформулирует свою обратную связь
LLM сама может давать такую обратную связь.
Это похоже на итеративный процесс, через который проходит автор, доводя текст до блеска.
/llms.txt
Мы также добавили /llms.txt: это предложение стандартизировать файл с информацией, которая помогает LLM пользоваться сайтом во время инференса. По сути, это /robots.txt, только для агентов.
Это важно вот почему. LLM всё чаще опираются на информацию с сайтов, но сталкиваются с серьёзным ограничением: контекстные окна слишком малы, чтобы вместить большинство сайтов целиком. А превращать сложные HTML-страницы с навигацией, рекламой и JavaScript в простой текст, удобный для LLM, и трудно, и неточно.
Сайты служат и людям, и LLM, но последним полезнее сжатая информация экспертного уровня, собранная в одном доступном месте. Особенно это важно в таких сценариях, как среды разработки, где LLM нужен быстрый доступ к документации по программированию и API.
В нашем случае файл дал агенту доступ к актуальной документации библиотеки core.
Напоследок
Наш ИИ-агент уже делает нашу работу быстрее и дешевле. Мы считаем, что по мере того как в интернете становится всё больше контента, созданного ИИ, агентный видеомонтаж станет естественным следующим шагом.
Мы будем рады сотрудничать с исследователями, которые хотят развивать это направление, и стать соавторами научной статьи. Чтобы вместе построить будущее видеомонтажа на базе ИИ, предстоит сделать ещё очень многое.
Публичная версия нашей работы доступна в репозитории:
