Агент в Android Studio – это ваш помощник в программировании, который ускоряет рабочий процесс, генерируя код, обобщая сложные темы, находя нужные ресурсы и выполняя другие задачи. Эффективная коммуникация – ключ к раскрытию полного потенциала агента.
В этом руководстве описаны стратегии настройки среды разработки и написания запросов, которые дают полезные и надежные ответы. Для некоторых стратегий мы привели примеры запросов для разных сценариев использования. Другие примеры запросов можно найти в галерее запросов.
Выбирайте более конкретные слова
Агент работает лучше всего, когда получает четкие и конкретные инструкции. Если вы хотите использовать определенные библиотеки, API или подходы, укажите их в вопросе или добавьте в корневой файл AGENTS.md проекта, чтобы они сохранялись при взаимодействии. Думайте об этом как о подаче отчета об ошибке: чем больше информации вы предоставите, тем быстрее и эффективнее будет решена проблема.
Реализация новых функций
Что следует делать
Чего делать нельзя
Генерация кода
Что следует делать
Напиши функцию приостановки Kotlin, которая использует библиотеку Coil для скачивания изображения по заданному URL.
Функция должна называться fetchImageAsBitmap. Она должна принимать в качестве аргументов URL Context и String и возвращать допускающий значение NULL объект Bitmap. Если возникает ошибка сети или декодирования, метод должен перехватить исключение, зарегистрировать его и вернуть null.
Чего делать нельзя
Объяснение концепции
Что следует делать
Я создаю приложение для воспроизведения музыки, и мне нужно, чтобы оно продолжало работать в фоновом режиме.
Как сделать так, чтобы приложение продолжало работать, пока пользователь занят другими делами на устройстве? Каковы требования к уровню API и последствия для времени автономной работы для каждого подхода?
Чего делать нельзя
Опишите структуру ответа
По умолчанию агент предоставляет ответы в разговорном формате, разбивая их на абзацы. Это может быть полезно для объяснений, но вы можете получить более эффективные и сразу применимые результаты, если укажете, как структурировать ответ. Указав формат вывода, вы заставите модель организовать информацию понятным и предсказуемым образом, что сэкономит ваше время на ее переформатирование.
Если вы хотите вставить сгенерированный агентом код в свое приложение и вам нужен код в определенном формате, чтобы вы могли использовать его сразу, дайте агенту четкие инструкции по генерации и форматированию кода.
Структурирование ответа
Что следует делать
Создайте объект Room для профиля пользователя. Оно должно содержать поля id, userName, email и memberSince. Поле id должно генерироваться автоматически. Поле memberSince должно содержать временную метку.
Чего делать нельзя
Если вы задаете открытый вопрос, попросите предложить x вариантов.
Ограничение ответа
Что следует делать
Чего делать нельзя
Разбивайте сложные запросы на простые задачи
Если агент действует не так, как вы ожидали, попробуйте давать ему небольшие последовательные запросы, а не просить сделать все сразу. Этот подход дает вам больше контроля и позволяет проверять каждый шаг, прежде чем переходить к следующему.
Применение последовательных запросов
Что следует делать
Запрос 1. Модель данных
Сначала создайте класс данных Kotlin с названием User. У него должно быть три свойства: id (целое число), name (строка) и email (строка).
Запрос 2. Сетевой уровень
Теперь создайте интерфейс Retrofit API с названием ApiService. В нем должен быть один метод suspend fun с названием getUsers(), который возвращает объект List<User>.
Запрос 3. Управление состоянием
Затем напишите UsersViewModel, который принимает ApiService в качестве зависимости. UsersViewModel должен предоставлять StateFlow запечатанного класса UiState, который может представлять состояния Loading, Success(users: List и Error(message: String). Создайте функцию в ViewModel, чтобы получить пользователей и обновить состояние. Напишите модульные тесты для новой функциональности.
Запрос 4. Слой пользовательского интерфейса
Наконец, напишите функцию Jetpack Compose с названием UserListScreen, которая принимает UiState в качестве параметра. Используйте оператор when, чтобы показать CircularProgressIndicator для состояния загрузки, LazyColumn имен пользователей для состояния успеха и элемент Text с сообщением об ошибке для состояния ошибки. Добавьте тесты, которые проверяют новые функции.
Чего делать нельзя
ViewModel, использующий Retrofit и сопрограммы, хранилище для обработки логики данных, класс данных User, а также состояния загрузки и состояние ошибки.Управление контекстом
Важная часть работы с агентом – предоставление правильного контекста. Чтобы получить наиболее полезные ответы, предоставьте фрагменты кода, содержимое файлов и информацию о структуре проекта. Возможно, вам придется повторить попытку, чтобы найти правильный баланс: слишком много информации может сбить агента с толку, а слишком мало – не даст ему достаточно контекста, чтобы помочь. Используйте доступные функции, чтобы предоставить агенту доступ к необходимому контексту:
- Прикрепите изображения, чтобы показать, как должен выглядеть интерфейс или архитектура приложения.
- Прикрепите файлы, чтобы выделить нужные части базы кода.
- Используйте файлы
.aiexclude, чтобы агент игнорировал определенные части базы кода. - Используйте файлы AGENTS.md, чтобы давать инструкции по конкретным проектам и делиться ими с командой. При использовании файлов AGENTS.md используйте заголовки и форматирование Markdown, чтобы сделать инструкции понятными.
- В режиме агента настройте серверы MCP, чтобы расширить знания и возможности агента за счет внешней среды.
Запросить объяснения
Если вы не понимаете ответ агента, попросите его объяснить. Это отличный способ узнать, подходит ли предлагаемое решение для вашего случая. Если ответ не соответствует вашим ожиданиям, возможно, агент ошибся. Попросите его объяснить ответ, и у него появится возможность исправиться.
Как улучшить инструкции
Как и при работе с коллегой, при работе с агентом иногда требуется некоторое общение, чтобы получить ясность в отношении задачи и ожидаемого результата. Если первый ответ агента вас не устроит, отправьте отзыв и предложения по улучшению. Если ответ улучшится, добавьте это предложение в исходный запрос, обновив запись в библиотеке запросов или файлы AGENTS.md.