---
metadata:
  - name: generator
    content: Diplodoc Platform v5.63.0
alternate:
  - https://vibe.sourcecraft.dev/portal/docs/ru/vibecraft/concepts/how-it-works.md
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/vibecraft/concepts/how-it-works.md
    type: text/markdown
    title: Markdown version
  - href: https://vibe.sourcecraft.dev/portal/docs/ru/vibecraft/llms.txt
    rel: describedby
title: Как работает VibeCraft
description: Узнайте, как VibeCraft работает с репозиторием SourceCraft и удаленной средой разработки.
---
> **Documentation Index:** Fetch the complete configuration index at https://vibe.sourcecraft.dev/portal/docs/ru/llms.txt


# Как работает VibeCraft

Основной источник актуального кода проекта и гарантированно сохраненных изменений — [репозиторий](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#repos) в [SourceCraft](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md). Для работы с проектом VibeCraft использует связанную с ним _удаленную среду разработки_ [SourceCraft Spaces](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/spaces.md). В ней находится рабочая копия репозитория, с которой работает агент. В этой же среде запускается приложение и формируется его предварительная версия.

![image](../../_assets/sourcecraft/vibecraft-architecture.svg)

## Как обрабатывается задача {#workflow}

1. Перед началом задачи VibeCraft обновляет рабочую копию до актуального состояния [целевой ветки](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/tutorials/quickstart-git.md#branches).
1. Агент изменяет файлы, запускает проверки и приложение. Для запуска приложения используется конфигурация [Docker Compose](https://docs.docker.com/compose/) из проекта.
1. После успешного выполнения задачи агент создает [коммит](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/tutorials/quickstart-git.md#commits) и отправляет результат в SourceCraft.

{% note warning %}

Гарантированно сохраненным считается только результат, который появился в репозитории SourceCraft. Изменения, оставшиеся только в удаленной среде разработки, могут быть потеряны при обновлении рабочей копии, после ошибки, остановки задачи или превышения времени выполнения.

{% endnote %}

## Ограничения и возможные проблемы {#issues}

### Задача выполняется не более 30 минут {#task-timeout}

Если агент не завершил работу за 30 минут, результат может не попасть в SourceCraft.

{% note tip %}

Разбейте большую задачу на несколько небольших и после завершения каждой проверяйте наличие коммита в репозитории.

{% endnote %}

### Почему агент может не учесть новый коммит {#git-sync}

Если вы самостоятельно отправили изменения в репозиторий, сообщите об этом в чате VibeCraft. Укажите коммит или измененные файлы, которые агент должен учесть. Изменения, которые существуют только в рабочей копии удаленной среды, недоступны в чате.

### Параллельное изменение файлов может привести к конфликту {#git-conflict}

{% note warning %}

Не изменяйте одни и те же файлы в целевой ветке, пока агент выполняет задачу. Иначе при отправке результата может возникнуть [конфликт](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/tutorials/quickstart-git.md#conflicts), и изменения агента не попадут в SourceCraft. Восстановить частичные изменения из удаленной среды самостоятельно нельзя.

{% endnote %}

Если возник конфликт, повторите задачу после того, как убедитесь, что целевая ветка содержит все нужные изменения.

### Остановка задачи не гарантирует сохранение или откат {#stop-task}

Чтобы остановить активную задачу, в блоке разработчика нажмите ![image](../../_assets/console-icons/circle-stop.svg) **Остановить**.

{% note warning %}

Остановка прекращает выполнение, но не гарантирует сохранение частичного результата, создание коммита или возврат проекта в исходное состояние.

{% endnote %}

## Как безопасно совмещать работу в VibeCraft и через Git {#recommendations}

1. Перед запуском задачи отправьте необходимые изменения в SourceCraft.
1. Сообщите в чате VibeCraft о самостоятельно добавленном коммите.
1. Не изменяйте те же файлы в целевой ветке, пока агент выполняет задачу.
1. После завершения убедитесь, что итоговый коммит появился в SourceCraft.
1. Храните важные данные в репозитории или внешнем хранилище, а не только в удаленной среде.

Если итогового коммита нет в SourceCraft, проверьте, не истекло ли время выполнения и не изменялась ли целевая ветка параллельно. Затем отправьте в репозиторий свои актуальные изменения, сообщите агенту о них в чате и повторите задачу.

## Технические особенности {#tech}

Для работы VibeCraft используются следующие компоненты SourceCraft и [Yandex Cloud](https://yandex.cloud/ru):

* Ансамбль больших языковых моделей [Code Assistant](https://vibe.sourcecraft.dev/portal/docs/ru/code-assistant/concepts/index.md) для проработки концепции приложения, написания и тестирования кода.
* [Удаленная среда разработки SourceCraft Spaces](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/spaces.md) с рабочей копией репозитория для работы агента.
* [Репозиторий](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#repos) SourceCraft для хранения кода.
* [CI/CD](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ci-cd.md) SourceCraft для предварительного просмотра приложения и автоматизации развертывания.
* [Реестр Yandex Container Registry](https://yandex.cloud/ru/docs/container-registry/concepts/registry) для хранения [Docker-образов](https://yandex.cloud/ru/docs/container-registry/concepts/docker-image) с приложением.
* [Контейнер Yandex Serverless Containers](https://yandex.cloud/ru/docs/serverless-containers/concepts/container) для запуска приложения.
* [Бессерверная база данных Yandex Managed Service for YDB](https://yandex.cloud/ru/docs/ydb/concepts/resources#serverless) для хранения состояния приложения.
* [Секрет Yandex Lockbox](https://yandex.cloud/ru/docs/lockbox/concepts/secret) для хранения чувствительных данных.

{% note info %}

При [привязке собственного домена](https://vibe.sourcecraft.dev/portal/docs/ru/vibecraft/operations/attach-domain.md) дополнительно создается [API-шлюз Yandex API Gateway](https://yandex.cloud/ru/docs/api-gateway/concepts/index). Если управление доменом делегировано [Yandex Cloud DNS](https://yandex.cloud/ru/docs/dns/concepts/), также создаются [DNS-зона](https://yandex.cloud/ru/docs/dns/concepts/dns-zone) и [ресурсные записи](https://yandex.cloud/ru/docs/dns/concepts/resource-record).

{% endnote %}

Ресурсами Yandex Cloud можно управлять из репозитория SourceCraft через безопасное [сервисное подключение](https://vibe.sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/service-connections.md).

#### Полезные ссылки {#see-also}

* [Как начать работать с VibeCraft](https://vibe.sourcecraft.dev/portal/docs/ru/vibecraft/index.md)
* [Обзор сервиса VibeCraft](https://vibe.sourcecraft.dev/portal/docs/ru/vibecraft/concepts/index.md)
* [Вопросы и ответы про VibeCraft](https://vibe.sourcecraft.dev/portal/docs/ru/vibecraft/qa.md)
* [Квоты и лимиты в VibeCraft](https://vibe.sourcecraft.dev/portal/docs/ru/vibecraft/concepts/limits.md)
