Назначение, отслеживание и диагностика задач Copilot Cloud Agent

Завершено

Агент GitHub Copilot Cloud выступает в качестве автономного товарища по команде, который работает непосредственно внутри GitHub. После включения ей можно назначить задачу, отслеживать ход выполнения в режиме реального времени и управлять ее работой, оставляя комментарии в pull-запросах. В этом уроке объясняется, как назначать проблемы Copilot с помощью GitHub.com, GitHub Mobile, API или ИНТЕРФЕЙСА командной строки. В нем также показано, как отслеживать работу агента и взаимодействовать с ним, а также предоставляется сборник схем устранения распространенных проблем.

К концу этого урока вы сможете:

  • Назначьте задачи с помощью GitHub.com, GitHub Mobile, API или CL.
  • Отслеживайте прогресс Copilot с помощью хронологий запросов на вытягивание и журналов сеансов.
  • Улучшайте результаты Copilot, комментируя пулл-реквесты.
  • Ознакомьтесь с правилами одобрения запросов на вытягивание, созданных агентом.
  • Как устранить распространенные проблемы при передаче задач в Copilot.

Назначение задач Copilot

При назначении задачи Copilot агент подтверждает это, добавляя реакцию 👀 на задачу. Затем он создает выделенную copilot/ ветвь, открывает черновик запроса на вытягивание, связанный с проблемой, и начинает сеанс агента в среде, работающей на GitHub Actions. По мере работы Copilot отправляет коммиты в ветвь и обновляет тело pull-запроса с сообщениями о состоянии. После завершения задачи Copilot отправляет событие "Copilot завершил работу" и запрашивает ваш отзыв.

Снимок экрана: панель навигации репозитория GitHub, на котором выделена вкладка

На GitHub.com вы назначаете задачу Copilot так же, как и другому пользователю. Перейдите на вкладку "Проблемы репозитория", откройте проблему, которую вы хотите делегировать, и в правой боковой панели в разделе "Назначаемые" выберите Copilot. Copilot получает название проблемы, описание и любые существующие комментарии во время назначения. Комментарии, добавленные позже для этой проблемы, не видны агенту, поэтому добавьте новые сведения в виде комментариев непосредственно в запрос на pull агента.

Скриншот панели назначения задач в GitHub, показывающий возможность назначить Copilot в качестве AI помощника программиста.

Вы также можете назначить задачи для Copilot из списка задач на странице задач репозитория, в проектах GitHub или через GitHub Mobile. Для рабочих процессов командной строки можно использовать интерфейс командной строки GitHub (gh issue edit) для добавления Copilot в качестве назначаемого.

Назначение через API

Можно назначать задачи Copilot программным способом с помощью API GraphQL. Сначала убедитесь, что агент кодирования доступен, запрашивая suggestedActors репозиторий и проверяя, что copilot-swe-agent отображается как предлагаемый актер. Затем получите идентификатор репозитория. Чтобы создать и назначить новую задачу, используйте createIssue мутацию, передав идентификатор репозитория и идентификатор бота Copilot. Чтобы назначить существующую проблему, получите идентификатор проблемы, а затем используйте replaceActorsForAssignable мутацию, чтобы добавить Copilot в качестве назначаемого. Этот подход полезен для интеграции Copilot в автоматизированные рабочие процессы.

Проверка доступности

query {
  repository(owner: "octo-org", name: "octo-repo") {
    suggestedActors(capabilities: [CAN_BE_ASSIGNED], first: 100) {
      nodes { login __typename ... on Bot { id } ... on User { id } }
    }
  }
}

Получение идентификатора репозитория

query {
  repository(owner: "octo-org", name: "octo-repo") { id }
}

Создание и назначение новой проблемы

mutation {
  createIssue(
    input: {
      repositoryId: "REPOSITORY_ID",
      title: "Implement comprehensive unit tests",
      body: "DETAILS",
      assigneeIds: ["BOT_ID"]
    }
  ) {
    issue { id title assignees(first: 10) { nodes { login } } }
  }
}

Назначение существующей проблемы

query {
  repository(owner: "monalisa", name: "octocat") {
    issue(number: 9000) { id title }
  }
}

mutation {
  replaceActorsForAssignable(
    input: { assignableId: "ISSUE_ID", actorIds: ["BOT_ID"] }
  ) {
    assignable {
      ... on Issue {
        id title
        assignees(first: 10) { nodes { login } }
      }
    }
  }
}

Отслеживание прогресса Copilot

После назначения задачи в GitHub Copilot агент предоставляет видимые сигналы, чтобы вы могли следить за его работой от начала до конца.

  • Немедленное подтверждение. Вскоре после назначения задачи Copilot добавляет 👀 комментарий к задаче.

    Скриншот описания задачи на GitHub, показывающий шаги для воспроизведения задачи и возможность создания вложенной задачи.

  • Создание черновика пулл-реквеста. В течение нескольких секунд Copilot открывает черновик pull request, связанный с оригинальной задачей. В временной шкале задачи появляется новое событие, показывающее запрос на вытягивание.

    Снимок экрана: комментарий о проблеме GitHub, в котором Copilot упоминает связанную проблему со ссылкой на номер 1123.

  • Сеанс активного агента. Copilot запускает сеанс агента для работы с вашей проблемой. На временной шкале pull request появится событие "Начало работы Copilot". По мере выполнения Copilot обновляет тело pull request регулярными сообщениями о состоянии и отправляет коммиты в выделенную ветвь.

    Снимок экрана: хронология задачи на GitHub, в которой Copilot начал работать от имени пользователя.

  • Журналы сеансов в реальном времени. Все сеансы, прошедшие и текущие, отображаются на странице "Агенты". Нажмите "Просмотр сеанса" в pull request, чтобы открыть просмотр журнала сеансов в реальном времени и следить за действиями Copilot. Если вам нужно остановить Copilot, нажмите кнопку "Остановить сеанс" в средстве просмотра.

  • Завершение и проверка. После завершения работы Copilot сеанс агента завершается автоматически. Событие "Copilot завершил работу" отображается на временной шкале пулл-реквеста, и Copilot запрашивает у вас проверку, активируя уведомление.

    Снимок экрана: временная шкала событий GitHub, где Copilot завершил работу за пользователя после запроса на проверку.

Итерации с Copilot

Вы руководите работой Copilot так же, как вы руководили бы человеческим участником с помощью комментариев и отзывов. Упомяните @copilot в комментарии пул-реквеста, чтобы запросить изменения. Обрабатываются только комментарии пользователей с разрешением на запись в репозиторий. Copilot публикует 👀 реакцию на ваш комментарий, подтверждая, что запрос получен, после чего добавляет "Copilot начал работу" в временную шкалу запроса на вытягивание при возобновлении. Это позволяет выполнять итерацию по работе Copilot, не покидая обычный рабочий процесс проверки.

Утверждения и рабочие процессы

Пулл-реквесты, созданные Copilot, всегда остаются в черновом состоянии. Для них требуется утверждение человека перед слиянием, а рабочие процессы GitHub Actions, активированные агентом, не выполняются автоматически. Чтобы запустить рабочие процессы в запросе на вытягивание Copilot, нажмите "Утвердить и запустить" в окне слияния. Разработчик, который попросил Copilot создать запрос на вытягивание, не может утвердить его, что сохраняет правила "обязательных проверок" репозитория и гарантирует независимую проверку перед слиянием.

Устранение неполадок с агентом Copilot Cloud

  • Copilot не в списке "Исполнители"

    Убедитесь, что вы используете подходящий план (Pro, Pro+, Business, Enterprise). Убедитесь, что агент не отключен на уровне организации или репозитория. Проверьте на странице функций: github.com/settings/copilot/features

  • Личные репозитории корпоративных управляемых пользователей (EMU)

    Агент недоступен; используйте репозитории, принадлежащие организации (требуются runner'ы, размещенные на GitHub).

  • "Невозможно создать пулл-реквест из чата"

    Убедитесь, что агент доступен. В средах разработки укажите @github в вашем приглашении (это не требуется для GitHub.com).

  • Назначена задача, но ничего не произошло

    Обновите; найдите реакцию 👀, а затем создайте черновик PR.

  • ПР создан, но прогресс отсутствует

    Проверьте временную шкалу PR для "Copilot начал работу"; откройте журналы сеансов.

  • Агент не отвечает на комментарий pr

    Убедитесь, что у вас есть доступ на запись и что вы упомянули @copilot в PR агента.

  • Похоже, что застрял

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

  • Действия не выполняются

    Нажмите "Утвердить" и "Запустить рабочие процессы" в поле слияния.

  • Push-уведомления не передают CI

    Предоставьте четкое руководство на уровне репозитория через .github/copilot-instructions.md, чтобы агент мог самостоятельно проверять при помощи тестов и линтеров.

  • Предупреждения брандмауэра

    Интернет по умолчанию ограничен; Предупреждения перечисляют заблокированный адрес и команду. Настройте или отключите брандмауэр для облачного агента GitHub Copilot.

  • Изображения не были обнаружены

    Максимальный размер изображения составляет 3,00 МиБ; более крупные изображения удаляются.

Благодаря надежному циклу назначения, отслеживания и итерации, можно повысить согласованность и скорость, настроив среду агента, расширив ее с помощью инструментов MCP и применив надежную валидацию перед слиянием.