Руководство
AI-агенты на DADA Cloud: запуск и настройка доступа к инфраструктуре
Обновлено · 6 мин чтения
С AI-агентами на DADA Cloud работают двумя способами. Внешний агент (Claude Code, Claude Desktop, Cursor) управляет вашей инфраструктурой через MCP-сервер: создаёт приложения, базы данных, читает логи. Собственный агент можно запустить на платформе: вы описываете промпт и инструменты, платформа разворачивает его и отвечает на сообщения. Ниже оба пути по шагам, с настоящими командами и ограничениями.
| Задача | Как решается | Чем пользуетесь |
|---|---|---|
| Агент деплоит и чинит ваши приложения | Внешний агент подключается к MCP-серверу | Плагин для Claude Code или коннектор Claude Desktop |
| Агент живёт на платформе и отвечает пользователям | Описание агента сохраняется через MCP или CLI | saveAgent или ddc agent deploy |
| Агенту нужны модели | OpenAI-совместимый шлюз с ключом проекта | Адрес https://ai.dada-tuda.ru/v1 |
| Агенту нужна песочница с root | Box, временная среда | Инструмент boxUp |
Шаг 1 - Подключите агента к MCP-серверу
Для Claude Code добавьте публичный плагин и установите его двумя командами:
/plugin marketplace add DadaDevelopment/dada-cloud
/plugin install dada-cloud@dada-cloud
Плагин запускает мост mcp-remote к адресу https://console.dada-tuda.ru/mcp, поэтому на машине нужен Node.js. В Claude Desktop добавьте пользовательский коннектор с тем же адресом, в поле OAuth Client ID впишите dada-mcp, поле секрета оставьте пустым. Другие клиенты, например Cursor или Windsurf, подключаются к тому же адресу по Streamable HTTP. Мы проверили плагин и коннектор Claude Desktop по документации и коду, а Cursor и Codex на практике пока не прогоняли.
Сервер отдаёт 63 инструмента. Среди них createApp, updateAppImage, setEnvVar, createDatabase, triggerBuild, getBuild, searchLogs, createAppServer. Проекты и приложения можно называть по имени, например ref="проект/окружение/приложение", UUID знать не нужно.
Шаг 2 - Войдите через Dada ID
При первом вызове инструмента агент открывает браузер, вы входите через Dada ID, и клиент получает токен по OAuth 2.1 с PKCE. Публичный клиент dada-mcp не имеет секрета и принимает только локальные адреса возврата. Без токена сервер отвечает 401 и в заголовке сообщает, где искать авторизацию.
Агент действует от вашего имени с вашей ролью. Он видит те же проекты и получает те же права, что и вы в консоли. Секретные переменные окружения он не может прочитать обратно: listEnvVars показывает их замаскированными.
Шаг 3 - Разверните приложение с базой данных
Типичная последовательность, которую агент проходит сам:
resolveRefилиlistProjects, чтобы найти проект и окружение.createAppс именем, образом и портом. Вызов возвращает операцию.getOperation, пока операция не получит статус Committed. Это значит, что изменение записано в git. Приложение к этому моменту ещё может не работать.createDatabaseс привязкой к приложению. Пока база создаётся,getDatabaseCredentialsотвечает 404.- Если база привязана к приложению, платформа сама записывает
DATABASE_URLв его переменные. Без привязки получите пароль черезgetDatabaseCredentialsсreveal=trueи задайте переменную черезsetEnvVarсis_secret=true. listApps, пока приложение не станет Healthy. Если не станет,searchLogsпокажет причину.
Подробные рецепты лежат в руководстве по MCP-рецептам, а полный список инструментов в справочнике. Подробности про базы данных собраны в материале про облачные базы данных.
Шаг 4 - Запустите собственного агента на платформе
Через MCP: listAgentTools показывает доступные MCP-серверы для инструментов агента, validateAgent проверяет имя, промпт и инструменты и возвращает список ошибок по полям, saveAgent сохраняет описание. Сохранение асинхронно: вызов возвращает операцию, после статуса Committed состояние смотрите через getAgentState, а sendAgentMessage отправляет агенту сообщение. Каждый вызов saveAgent заменяет спецификацию целиком, поэтому передавайте её полностью.
Через командную строку: установите ddc, войдите и разверните агента из репозитория.
curl -fsSL https://raw.githubusercontent.com/DadaDevelopment/ddc/main/install.sh | sh
ddc login
ddc agent deploy --project <проект> --env <окружение>
Репозиторий агента устроен просто: в agents/<имя>/core.md лежит основной промпт, в domains/*.md дополнительные знания, необязательный .dada/agent.json задаёт модель и инструменты. Для проверки до деплоя есть ddc agent up (нужен Docker), smoke, eval и invoke --text. Telegram-бот для агента подключается отдельно, об этом рассказывает страница про Telegram-шлюз для агентов.
Шаг 5 - Подключите модели через AI-шлюз
Шлюз совместим с OpenAI API и доступен по адресу https://ai.dada-tuda.ru/v1. Ключ проекта выглядит как sk-dada-ai- и несколько десятков символов, показывается один раз, создаётся в консоли проекта или через API. В поле model указывается псевдоним: gpt-4o, claude, fast, smart и другие. Ключу можно ограничить список моделей в allowed_models (до 100 штук): запрос вне списка получит ответ 403 с кодом model_not_allowed. Можно подключить и собственные ключи провайдеров, их 11, включая OpenAI, Anthropic, OpenRouter и Groq. Если у ключа есть собственный ключ провайдера, запросы идут только через него. Подробности в руководстве по провайдерам.
Как устроен доступ
Человек, который подключил агента через OAuth, даёт ему свои права. Для служебных агентов в платформе есть отдельная идентичность в группе /agents. У неё нет личной организации, и в проект она попадает только через временный грант.
- Грант создаёт
createAgentGrant: рольDeveloper(по умолчанию) илиReadOnly, срокttl_minutes: по умолчанию час, максимум 24 часа. Роли Owner и Admin выдать агенту нельзя. - Выдать грант может только Owner или Admin проекта, и только человек, не агент.
listAgentGrantsпоказывает активные, отозванные и истёкшие гранты как журнал.revokeAgentGrantотзывает доступ сразу, следующий запрос агента получит 404.- Создание и обновление агентов, гранты и просмотр паролей баз данных попадают в журнал аудита.
- Агент с такой идентичностью не может создавать проекты: платформа отвечает 403
agent_project_creation_denied.
Самостоятельного пути выдать такую идентичность обычному пользователю в консоли пока нет: её настраивает оператор платформы. Если нужен ограниченный доступ уже сейчас, подключайте агента от имени участника проекта с ролью ReadOnly или Developer.
Ограничения
- У агентской поверхности нет удаления приложений, баз данных и проектов, нет перезапуска. Эти действия выполняются в консоли.
queryDatabaseвыполняет только SELECT: не больше 1000 строк, 5 МБ и 5 секунд.- Имя агента глобально уникально (ошибка 409
agent_name_taken), длиной до 45 символов, промпт до 128 КиБ. - Движок
eveработает в режиме пилота и открыт не для всех проектов. По умолчанию используется основной движок. - Box (
boxUp) даёт временную среду на Ubuntu 24.04 с node, python, go, rust и psql, без Docker. Максимальный срок жизни 8 часов, лимит расходов по умолчанию 500 рублей. Режим превращения Box в постоянный сервер экспериментальный. - Лимитов на число агентов и сообщений мы не нашли в коде, но и «без ограничений» не обещаем. Актуальные условия оплаты смотрите на странице цен.
Частые вопросы
Можно ли подключить Cursor или Codex?
MCP-сервер использует Streamable HTTP и OAuth, поэтому подходит клиентам, которые это умеют. Для Claude Code и Claude Desktop порядок подключения проверен по документации и коду, для остальных клиентов мы практический прогон не делали.
Что агент не сможет сделать с моей инфраструктурой?
Удалить приложение, базу данных или проект, перезапустить сервис, выполнить команду на сервере и прочитать значения секретных переменных. Запросы к базе только на чтение. Часть действий требует вашего участия в консоли.
Как отозвать доступ агента?
Если агент подключён от вашего имени, удалите коннектор или плагин в клиенте. Для служебной идентичности вызовите revokeAgentGrant: доступ пропадёт на следующем запросе, а запись останется в журнале.
Чем MCP-плагин отличается от агента, запущенного на платформе?
Плагин даёт внешнему агенту руки: он управляет приложениями и базами. Агент на платформе работает постоянно и отвечает пользователям, например в Telegram. Одно другому не мешает: через плагин можно создать и сохранить агента на платформе.
Сколько инструментов в MCP-сервере?
- Число закреплено тестом в коде платформы. 27 из них только читают данные, 5 помечены как разрушающие.