В эпоху, когда искусственный интеллект проникает во все сферы разработки программного обеспечения, вопрос не в том, заменит ли AI инженеров, а в том, как эффективно выстроить симбиоз между человеческим опытом и машинной производительностью. Особое место в этом процессе занимают сложные системы реального времени, такие как NVIDIA Holoscan. Эта платформа предназначена для создания приложений на периферии сети (edge computing) — от медицинской визуализации до робототехники, где задержка и надежность критичны. В недавнем исследовании команда NVIDIA продемонстрировала, как можно использовать общие AI-кодинговые агенты для построения полноценного приложения сегментации эндоскопических инструментов, опираясь на те же инструменты, документацию и примеры, которые доступны обычному разработчику.
Этот процесс не был автоматизирован «в лоб». Вместо того чтобы полагаться на случайные генерации, инженеры задавали четкие цели и ограничения, а AI-агент выполнял итеративную разработку, тестирование и оптимизацию. Результатом стала не просто рабочая программа, а отлаженный конвейер с измеримой производительностью, низким временем отклика и возможностью воспроизведения результатов. Давайте разберем этот процесс детально, чтобы понять, как структурировать взаимодействие человека и машины при работе с такими сложными фреймворками, как Holoscan.

01Инструментарий: Holoscan, HoloHub и CLI
Чтобы понять контекст разработки, необходимо разобраться в экосистеме. NVIDIA Holoscan — это платформа для создания приложений ИИ в реальном времени на периферии. Она предоставляет набор операторов (operators) для обработки данных, управления потоками и интеграции моделей глубокого обучения. Однако разработка с нуля — задача трудоемкая. Здесь на помощь приходит HoloHub — репозиторий с примерами приложений и компонентов, демонстрирующий лучшие практики.
Ключевым связующим звеном между разработчиком, агентом и платформой является Holoscan CLI (Command Line Interface). Он вызывается через обертку ./holohub и предоставляет единый интерфейс для выполнения операций разработки. Агент может обнаруживать доступные операции через CLI, а инженер может проверять и повторять те же команды. Это обеспечивает прозрачность процесса: если агент что-то сделал, разработчик видит точную команду, которая привела к результату.
Кроме того, в процесс были интегрированы так называемые Skills (навыки). Это специализированные инструкции, которые направляют агента через процесс разработки HoloHub, например, holohub-app-lifecycle (жизненный цикл приложения) и holohub-debug-build-run (отладка, сборка и запуск). Эти навыки действуют как менторы, подсказывающие агенту правильную последовательность действий, что значительно снижает вероятность ошибок.
02Итерация 0: Декомпозиция цели
Первая и, возможно, самая важная часть работы — это не написание кода, а формулировка задачи. Пытаться создать все приложение одним промптом (запросом) — ошибка. Разработчики рекомендуют разбивать глобальную цель на меньшие, проверяемые инженерные итерации. Это позволяет своевременно пересматривать архитектурные решения и избегать накопления ошибок.
Глобальная цель в данном случае звучала так: создать приложение для сегментации эндоскопических инструментов в реальном времени с визуализацией масок, статистическим анализом и телеметрией. Эта цель была разбита на последовательность вопросов, ответы на которые должны были стать результатами каждой итерации:
- Правильно ли настроена среда разработки для запуска существующего приложения локально?
- Можно ли запустить существующую модель и видео в отдельном приложении?
- Предоставляет ли визуализация осмысленную информацию?
- Можно ли измерить задержку (latency) повторяемым способом?
- Можно ли улучшить пропускную способность рендеринга без регрессии функционала?
Каждая итерация должна была производить проверяемый код, выходные данные и тесты, которые информировали бы промпты и архитектурные решения для следующего шага. Такой подход обеспечивает управляемость процесса и позволяет инженеру контролировать качество на каждом этапе.

03Итерация 1: Создание минимально жизнеспособного приложения (MVP)
На первом этапе инженер задал агенту четкий результат, ограничив использование модели и данных. Промпт звучал следующим образом: использовать $holohub-app-lifecycle для создания нового Python-приложения HoloHub для отображения отслеживания эндоскопических инструментов. Необходимо переиспользовать модель сегментации MONAI, образцы данных, предобработку и вывод. Визуализация должна включать маску, покрытие, временную шкалу и меры неопределенности в виде полированного оверлея HoloViz. Обучение модели или изменение ее весов запрещалось.
Агент начал с анализа доступных ресурсов. Он изучил документацию по жизненному циклу приложений, примеры из HoloHub (особенно полезными оказались примеры monai_endoscopic_tool_seg, endoscopy_tool_tracking и surgical_scene_recon), а также документацию CLI. Затем агент выполнил серию действий:
- Проанализировал паттерны эндоскопии, сегментации, HoloViz и тестирования.
- Запустил команду
./holohub createдля генерации стандартного каркаса приложения. - Реализовал граф приложения, режимы выполнения, тесты и документацию, используя существующие операторы Holoscan.
- Собрал и запустил приложение через
Источник: NVIDIA Developer ↗
