Все статьи

Getting Started

Что такое CICDoo Начало работы: мастер настройки Панель и карта инфраструктуры

Concepts

Стадии: продакшн, staging и разработка Домены, поддомены и SSL Версии и редакции Odoo (Community или Enterprise) Воркспейсы и командная работа

Servers

Добавление сервера Домены сервера и DNS Использование балансировщика нагрузки Действия с сервером: деплой, логи и графики

Projects & Git

Создание проекта Подключение GitHub Подключение GitLab Ветки и инстансы

Instances & Console

Создание инстанса Перезапуск, остановка и удаление инстанса Слияние веток между стадиями Web IDE и удалённый доступ Настройки инстанса Деплои и очередь задач

Agent Tasks

Что такое задачи агента Настройка задач агента Запуск задачи и разбор результата Время агента и его пополнение

Monitoring & Backups

Мониторинг инстанса Резервные копии и восстановление Уведомления об инцидентах (email и SMS)

Workspaces & Permissions

Приглашение участников в воркспейс Права участников и доступ к ресурсам Участник не видит ресурс или не может им пользоваться

Account & Security

Двухфакторная аутентификация (2FA) Настройки профиля и интеграций Пароли и восстановление доступа

Billing & Plans

Тарифы и цены Повышение тарифа и управление подпиской Если подписка на проект не оплачена Партнёрская программа

Support & Tickets

Создание тикета в поддержку Помощь от команды CICDoo

Troubleshooting

Устранение неполадок: не удаётся подключить сервер Устранение неполадок: деплой завершился ошибкой Устранение неполадок: git push возвращает 403 после переноса репозитория Устранение неполадок: инстанс недоступен или работает медленно Устранение неполадок: проблемы с доменом или SSL

Agent Tasks

Запуск задачи и разбор результата

Как создать задачу агента, прочитать и одобрить план, что попадает в git, как отправить работу на новый раунд и что происходит при сбое или упоре в лимит провайдера.

Создание задачи

Откройте страницу Задачи проекта или вкладку Задачи в консоли инстанса и создайте задачу. Вы задаёте:

  • Заголовок и описание. Что должно измениться, обычными словами. Подробности помогают: тот же запрос с двумя предложениями контекста даёт куда более толковый план, чем запрос сам по себе.
  • Инстанс, в котором работать. Он определяет, какую кодовую базу читает агент и в какую ветку отправляется результат.
  • При желании навыки и вложения. Навыки, это ваши внутренние правила; вложения, это файлы, которые нужны агенту для контекста, например спецификация или скриншот проблемы.

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

Выбор продакшн-инстанса требует, чтобы при создании задачи вы ввели confirm, и с этого момента задача помечена как продакшн-задача.

Чтение плана

Агент забирает задачу, читает кодовую базу и присылает план. На этот момент ещё ничего не изменено.

Читайте сам план, а не только его первую строку. Это ваш единственный шанс поймать недопонимание до того, как код будет написан, и прочитать план стоит куда дешевле, чем потом разбирать неудачное изменение.

Дальше выбирайте:

  • Одобрить и выполнить, агент реализует план.
  • Запросить изменения, опишите, что не так, и он спланирует заново, уже с вашей обратной связью.
  • Спланировать заново, перезапускает планирование как есть, полезно, когда первая попытка сорвалась, а не пошла не туда. Спланировать заново с указаниями делает то же самое с вашей припиской.
  • Отменить задачу, останавливает её.

Для одобрения нужно право на одобрение планов.

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

Что попадает в git

После вашего одобрения агент вносит изменение внутри контейнера инстанса, коммитит его и отправляет в ветку этого инстанса. Эта отправка передеплоивает инстанс, так что результат работает там, где на него можно посмотреть.

Никакого пул-реквеста нет. Коммит ложится прямо в ту ветку, из которой задеплоен инстанс, и именно поэтому важно, какой инстанс вы выбрали, и именно поэтому продакшн огорожен двумя подтверждениями.

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

Когда результат не тот

Нажмите на задаче Начать новый раунд. Опишите, что не так, и агент спланирует исправление, опираясь на уже отправленный код, а не начиная с нуля. Новый план вы одобряете до того, как что-то запустится, а имеющийся коммит остаётся в ветке.

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

Когда что-то идёт не так

  • Инстанс не запускается с тем, что закоммитил запуск. CICDoo переносит эти коммиты в спасательную ветку, сбрасывает ветку инстанса и поднимает Odoo обратно. Ничего не отправлено и ничего не потеряно: работа лежит в спасательной ветке, если она вам нужна.
  • Отправка не проходит. Работа остаётся в рабочем дереве контейнера, а не исчезает.
  • Запуск упирается в лимит использования вашего провайдера. Задача встаёт на паузу и сообщает, когда лимит сбросится. Продолжить доводит до конца одобренный план с этого места; это тот же раунд, прерванный, а не новый.
  • Запуск перестаёт отчитываться. Если контейнер умер посреди работы, задача помечается как проваленная, а не висит вечно. Если агент отчитается с опозданием уже после этого, результат всё равно будет подхвачен.

Наблюдение за потреблением

Вкладка Потребление задачи перечисляет каждый запуск в её основе: раунд и фазу, кто его запустил, исход, токены на входе и выходе, а также затраченное время. Страница /agent сводит это по всем проектам, с графиками за последние 30 дней, 90 дней или 12 месяцев.

Повторы и сбои тоже считаются. Это сделано намеренно: они расходуют реальное время агента, и задача, которая заняла четыре попытки, должна так и выглядеть.

Что дальше

О том, как это время измеряется и оплачивается, читайте в Время агента и его пополнение. О включении возможности и подключении CLI читайте в Настройка задач агента.

Если что-то не получается, создайте тикет в поддержку со страницы Тикеты или через виджет чата.

Всё ещё не получается? Откройте тикет из приложения или свяжитесь с инженером.