Экономика строительных блоков
Митчелл Хашимото недавно описал сдвиг, который он называет «экономикой строительных блоков»: наиболее эффективный путь к созданию ПО сегодня — уже не монолитный продукт, а небольшие, хорошо задокументированные компоненты, которые другие разработчики — а всё чаще и агенты — могут собирать вместе. Его ключевое наблюдение: ИИ справляется с построением всего с нуля, но особенно хорошо умеет соединять проверенные части.
До сих пор этот тезис иллюстрировали преимущественно на примере программных библиотек — npm-пакетов, PyPI-зависимостей, API-сервисов. Однако те же силы начинают действовать в мультимедийном ИИ. Сложность использования современных моделей — генерации изображений, видео, синтеза речи или трёхмерной реконструкции — никогда не была в самой модели. Она была в интеграции: SDK, веса, GPU, форматы входных данных, опрос результата. Если каждую модель превратить в задокументированный вызываемый блок, агент сможет соединять их точно так же, как сегодня собирает npm-пакеты. Именно этим Hugging Face Spaces незаметно и стали.
Каждое пространство — вызываемый блок
Hub — каталог моделей и приложений Hugging Face — содержит тысячи современных моделей. Значительная доля из них имеет открытые веса, большинство развёрнуты в виде интерактивных пространств (Spaces). Сейчас каждое пространство на базе Gradio (фреймворк для построения ML-интерфейсов) публикует простой текстовый файл agents.md, который сообщает агенту, как именно его вызывать:
Запрос curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md возвращает за один раз всё необходимое: URL схемы, шаблоны вызова и опроса, инструкцию по загрузке файлов и подсказку по авторизации — URL схемы (GET .../gradio_api/info), шаблон вызова (POST .../gradio_api/call/v2/{endpoint}), шаблон опроса результата (GET .../gradio_api/call/{endpoint}/{event_id}), загрузку файлов (POST .../gradio_api/upload) и авторизацию через Bearer $HF_TOKEN. Никаких клиентских библиотек. Никакой жёстко прописанной интеграции.
Главный открывающийся потенциал — цепочки: вывод одного пространства становится вводом следующего. Промпт → изображение → трёхмерная модель. Это весь конвейер, лежащий в основе галереи. Агент читает файл — и может управлять пространством от начала до конца. Задаёшь HF_TOKEN, и система готова к работе.
Конвейер: от промпта до .ksplat
Для галереи парижских монументов агент последовательно задействовал два пространства. Первое — пространство для генерации изображений — превращало каждый монумент в чистый «экспозиционный» кадр на тёмном фоне: Эйфелеву башню, например, оформило как маленькую диораму на постаменте. На входе промпт, на выходе изображение.
Второе пространство — VAST-AI/TripoSplat от компании VAST AI — восстанавливало трёхмерный гауссов сплэт в формате .ply из каждого отдельного изображения. Гауссовы сплэты (.ply — стандартный формат хранения облаков точек) — это способ представить трёхмерную сцену через набор ориентированных гауссиан, что даёт высокое визуальное качество при относительно компактном размере файла. На входе изображение, на выходе трёхмерная модель.
Далее агент выполнил «связующую» работу, которую иначе пришлось бы делать вручную. Он обнаружил, что вывод TripoSplat ориентирован осью Y вниз, и исправил ориентацию. Автоматически выровнял кадрирование для каждого монумента. Сжал файлы .ply в формат .ksplat — примерно в три раза меньше, что ускорило загрузку. Создал просмотрщик на Three.js (библиотека для трёхмерной графики в браузере) с переключением сцен прокруткой и вращением объектов перетаскиванием. И развернул всё это как статичное пространство mishig/monuments-de-paris.
Единственным человеческим вкладом были решения эстетического характера: «сделай масштаб меньше», «замени обелиск чем-то, что лучше подходит для сплэтинга», «переход длится слишком долго». Несколько шагов стали реакцией агента на реальность — широкая стеклянная пирамида плохо поддаётся сплэтингу, тонкий обелиск выглядит невыразительно, реконструкция с одного ракурса достраивает обратную сторону объекта. Это в точности тот цикл быстрой итерации, который предсказывает экономика строительных блоков, — только роль НИОКР здесь сыграл разговор.
Почему это меняет расчёты
Модели становятся компонуемыми. Современная модель сплэтинга и современная модель генерации изображений, созданные разными организациями, выстроены в цепочку без единой строки интеграционного кода. Каталог открытых весов на Hub превращается в библиотеку вызываемых мультимедийных примитивов — точно так же, как npm превратился в библиотеку вызываемых программных примитивов.
Агенты предпочитают задокументированное и доступное. Файл agents.md делает пространство тривиально достижимым, поэтому агент выберет его, а не модель, которую нужно настраивать вручную. Это та же динамика, на которую Хашимото указывает применительно к библиотекам с открытым исходным кодом: хорошая документация сама по себе становится конкурентным преимуществом в эпоху агентов.
Барьером была интеграция — и он во многом устранён. Раньше «превратить промпт во вращающийся 3D-монумент» было отдельным проектом с неделями настройки окружения. Здесь это стало одним шагом в конвейере.
Как попробовать самому
Направьте собственного агента на файл agents.md любого пространства и дайте ему задачу. Для генерации изображений: curl https://huggingface.co/spaces/ideogram-ai/ideogram4/agents.md. Для реконструкции 3D-сплэта из одного изображения: curl https://huggingface.co/spaces/VAST-AI/TripoSplat/agents.md.
Вставьте любую из этих ссылок в своего агента — Claude Code или любой другой, — задайте HF_TOKEN и попросите что-нибудь собрать. Полный воспроизводимый конвейер для галереи — скрипты, которые обращаются к двум эндпоинтам agents.md, — находится в репозитории пространства mishig/monuments-de-paris. Строительные блоки уже лежат на Hub. Агенты умеют их собирать.