Все статьи
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
Создание тикета в поддержку Помощь от команды CICDooTroubleshooting
Устранение неполадок: не удаётся подключить сервер Устранение неполадок: деплой завершился ошибкой Устранение неполадок: git push возвращает 403 после переноса репозитория Устранение неполадок: инстанс недоступен или работает медленно Устранение неполадок: проблемы с доменом или SSLAgent Tasks
Запуск задачи и разбор результата
Как создать задачу агента, прочитать и одобрить план, что попадает в git, как отправить работу на новый раунд и что происходит при сбое или упоре в лимит провайдера.
Создание задачи
Откройте страницу Задачи проекта или вкладку Задачи в консоли инстанса и создайте задачу. Вы задаёте:
- Заголовок и описание. Что должно измениться, обычными словами. Подробности помогают: тот же запрос с двумя предложениями контекста даёт куда более толковый план, чем запрос сам по себе.
- Инстанс, в котором работать. Он определяет, какую кодовую базу читает агент и в какую ветку отправляется результат.
- При желании навыки и вложения. Навыки, это ваши внутренние правила; вложения, это файлы, которые нужны агенту для контекста, например спецификация или скриншот проблемы.
Для создания задач нужно право на задачи агента. Если подписка на проект не оплачена и проект перешёл в режим только чтения, создание задач будет отклонено вместе со всеми остальными действиями.
Выбор продакшн-инстанса требует, чтобы при создании задачи вы ввели confirm, и с этого момента задача помечена как продакшн-задача.
Чтение плана
Агент забирает задачу, читает кодовую базу и присылает план. На этот момент ещё ничего не изменено.
Читайте сам план, а не только его первую строку. Это ваш единственный шанс поймать недопонимание до того, как код будет написан, и прочитать план стоит куда дешевле, чем потом разбирать неудачное изменение.
Дальше выбирайте:
- Одобрить и выполнить, агент реализует план.
- Запросить изменения, опишите, что не так, и он спланирует заново, уже с вашей обратной связью.
- Спланировать заново, перезапускает планирование как есть, полезно, когда первая попытка сорвалась, а не пошла не туда. Спланировать заново с указаниями делает то же самое с вашей припиской.
- Отменить задачу, останавливает её.
Для одобрения нужно право на одобрение планов.
Иногда агент помечает план как заблокировано: он решил, что не может выполнить работу безопасно или что запрос недостаточно ясен. Заблокированный план всегда ждёт человека, даже в проекте с включённым автовыполнением.
Что попадает в git
После вашего одобрения агент вносит изменение внутри контейнера инстанса, коммитит его и отправляет в ветку этого инстанса. Эта отправка передеплоивает инстанс, так что результат работает там, где на него можно посмотреть.
Никакого пул-реквеста нет. Коммит ложится прямо в ту ветку, из которой задеплоен инстанс, и именно поэтому важно, какой инстанс вы выбрали, и именно поэтому продакшн огорожен двумя подтверждениями.
Если запуск завершился и менять ничего не потребовалось, он так и скажет, а не станет выдумывать коммит.
Когда результат не тот
Нажмите на задаче Начать новый раунд. Опишите, что не так, и агент спланирует исправление, опираясь на уже отправленный код, а не начиная с нуля. Новый план вы одобряете до того, как что-то запустится, а имеющийся коммит остаётся в ветке.
Раунды считаются на задаче, так что видно, сколько проходов заняла работа и что изменил каждый из них.
Когда что-то идёт не так
- Инстанс не запускается с тем, что закоммитил запуск. CICDoo переносит эти коммиты в спасательную ветку, сбрасывает ветку инстанса и поднимает Odoo обратно. Ничего не отправлено и ничего не потеряно: работа лежит в спасательной ветке, если она вам нужна.
- Отправка не проходит. Работа остаётся в рабочем дереве контейнера, а не исчезает.
- Запуск упирается в лимит использования вашего провайдера. Задача встаёт на паузу и сообщает, когда лимит сбросится. Продолжить доводит до конца одобренный план с этого места; это тот же раунд, прерванный, а не новый.
- Запуск перестаёт отчитываться. Если контейнер умер посреди работы, задача помечается как проваленная, а не висит вечно. Если агент отчитается с опозданием уже после этого, результат всё равно будет подхвачен.
Наблюдение за потреблением
Вкладка Потребление задачи перечисляет каждый запуск в её основе: раунд и фазу, кто его запустил, исход, токены на входе и выходе, а также затраченное время. Страница /agent сводит это по всем проектам, с графиками за последние 30 дней, 90 дней или 12 месяцев.
Повторы и сбои тоже считаются. Это сделано намеренно: они расходуют реальное время агента, и задача, которая заняла четыре попытки, должна так и выглядеть.
Что дальше
О том, как это время измеряется и оплачивается, читайте в Время агента и его пополнение. О включении возможности и подключении CLI читайте в Настройка задач агента.
Если что-то не получается, создайте тикет в поддержку со страницы Тикеты или через виджет чата.
Всё ещё не получается? Откройте тикет из приложения или свяжитесь с инженером.