Совместная разработка с ИИ агентом

Предварительные требования

Перед чтением этой страницы убедитесь, что вы запустили свой первый Portal, как описано в Быстрый старт AI Portal.

Повседневная разработка в AI Portal — это разговор с ИИ агентом: вы описываете нужную страницу, он пишет код, вы смотрите результат в браузере.

Работайте внутри каталога Portal

Прежде чем начать, перейдите в каталог с исходным кодом Portal и откройте ИИ агент именно там. Тогда агент сразу окажется в нужном контексте, с доступом к AGENTS.md и существующему коду.

Сначала выясните, где находится каталог:

nb portal info main

Путь разработки в выводе и есть место, где лежит исходный код Portal. Перейдите туда через cd, затем откройте свой ИИ агент:

cd <каталог рабочего пространства разработки>

Дальше достаточно описать, что вам нужно:

Добавь страницу со списком заказов в main portal моего приложения nocobase

Пусть ИИ сначала читает, а потом пишет

В корне шаблона лежит AGENTS.md с соглашениями этого проекта: сначала переиспользовать то, что уже есть в src/extensions, настраивать UI-компоненты композицией, а не правкой базовых компонентов, и не подключать Ant Design. ИИ агенты, которые читают этот файл, следуют этим соглашениям автоматически.

Вы можете дописать в AGENTS.md и соглашения своего проекта: привычки в именовании, бизнес-терминологию, каталоги, которые лучше не трогать. Как только они там окажутся, они начнут действовать в каждом диалоге — повторять их каждый раз не придётся.

В src/extensions есть несколько встроенных расширений. Среди них nocobase-users-example — законченный модуль операций с данными: список, создание, редактирование и просмотр деталей. Указать ИИ на него проще, чем описывать новую страницу с нуля:

Сделай страницу управления продуктами по образцу nocobase-users-example

Примеры запросов

Сценарий A: создание новой бизнес-страницы

Достаточно описать три вещи — что на странице, откуда берутся данные и как всё себя ведёт:

Добавь страницу управления клиентами:
таблица показывает имя, телефон, email и время создания, есть поиск по имени,
по клику на строку открывается выдвижная панель с деталями, где запись можно отредактировать и сохранить

Сценарий B: изменение существующей страницы

Для запроса на изменение подробно опишите, что именно меняется. Заново описывать всю страницу не нужно:

Добавь в список клиентов фильтр по статусу
со значениями «В работе», «Сделка закрыта» и «Потерян», по умолчанию без фильтрации

Сценарий C: подключение новой таблицы данных

Когда таблица данных уже создана, попросите ИИ сгенерировать соответствующие страницы. Он прочитает определения полей и подберёт элементы формы и колонки списка:

Я только что создал таблицу contracts, сделай для неё набор страниц для операций с данными

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

Сценарий D: воспроизведение макета

Если у вас есть макет дизайна или готовый HTML-прототип, передайте его ИИ:

Сделай главную страницу по этому прототипу,
сохрани те же цвета и макет, а данные подключи к таблице orders

Сценарий E: добавление способа аутентификации

Когда способ аутентификации включён на сервере, странице входа нужна соответствующая поддержка на фронтенде:

В NocoBase включён вход через DingTalk, добавь на страницу входа кнопку входа через DingTalk

Приёмы совместной работы

Идите маленькими шагами. Просите ИИ делать по одной странице или по одному изменению за раз и проверяйте результат, прежде чем двигаться дальше. Если описать сразу пять страниц, при поломке будет трудно понять, на каком шаге всё пошло не так.

Не выключайте сервер разработки. nb portal dev main поддерживает горячую перезагрузку, поэтому результат каждого изменения ИИ виден сразу. Это самый короткий цикл обратной связи из возможных.

Давайте точный текст ошибки. Пустая страница, неудачная сборка, 403 от API — вставьте ИИ полное сообщение об ошибке и скриншот, а не заставляйте его гадать. Обычно нескольких итераций хватает. Определять, на каком уровне возникла проблема, самостоятельно не нужно.

error

Частые вопросы

Как откатиться, если ИИ ошибся?

Если исходный код Portal под управлением Git, достаточно git checkout. При source storage по умолчанию (nocobase) можно заново загрузить копию из source storage поверх локальной:

nb portal pull main --force

--force удаляет рабочее пространство разработки и загружает всё заново, поэтому перед запуском убедитесь, что там не осталось ничего нужного. Чтобы не сталкиваться с таким выбором, переведите исходный код под управление Git пораньше — см. Развёртывание и управление исходным кодом.

Как разобраться с неудачной сборкой?

Сначала выполните сборку локально, чтобы увидеть полный текст ошибки:

nb portal deploy main

Ошибки типов TypeScript и отсутствующие зависимости — две самые частые причины. Вставьте текст ошибки ИИ и попросите его всё исправить.

Конфликтуют ли мои ручные правки с правками ИИ?

Нет. Исходный код Portal — это обычный фронтенд-проект: вы можете править его сами в любой момент, а ИИ продолжит с того места, где вы остановились. Пока вы не редактируете один и тот же файл одновременно, проблем не будет.

Связанные ссылки