К основному содержанию
скилл CX Codex

ml-kit-genai-prompt-api — скилл для Claude Code: Prompt API

Скилл для Android-проектов: помогает подключить ML Kit GenAI Prompt API, разобрать вывод по схеме и настроить кеш префикса.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add android/skills --skill ml-kit-genai-prompt-api -a claude-code
Открыть на GitHub

Что делает ml-kit-genai-prompt-api

Скилл разбирает Android-кодовую базу и ведёт по шагам интеграции ML Kit GenAI Prompt API — запросы на естественном языке уходят к Gemini Nano прямо на устройстве, без сервера. Внутри четыре блока: оптимизация промпта, кеширование префикса, жизненный цикл модели и структурированный вывод.

Перед началом придётся поднять minSdk до 26 и добавить в build.gradle уровня приложения зависимость com.google.mlkit:genai-prompt версии не ниже 1.0.0-beta4. Если в проекте уже есть com.google.mlkit:genai-schema-compiler, а KSP ниже 2.3.6, плагин тоже обновляется — иначе сборка со схемами не пройдёт.

Отдельная часть — структурированный вывод: скилл проверяет доступность функции через isStructuredOutputFeatureAvailable() и переписывает функции так, чтобы они возвращали типизированный объект @Generable вместо строки с JSON. Для промптов длиннее 200 слов он советует включить кеширование префикса, а инстансы ML Kit закрывать через close() при уничтожении Activity, Fragment или ViewModel.

Какие задачи решает

  • подключить ML Kit GenAI Prompt API к Android-приложению
  • перевести парсинг ответа модели со строки на типизированный объект @Generable
  • включить кеширование префикса для длинных промптов
  • проверить, что модель скачана и её FeatureStatus равен AVAILABLE, до первого запроса
  • закрывать инстансы ML Kit при уничтожении экрана или ViewModel

Примеры запросов агенту

  • Подключи ML Kit GenAI Prompt API в этом проекте и проверь, что minSdk не ниже 26
  • Перепиши parseEmail так, чтобы функция возвращала @Generable-объект вместо строки
  • Промпт длиннее 200 слов — добавь кеширование префикса и проверь FeatureStatus модели

Как установить ml-kit-genai-prompt-api

1Через Skills CLI (Vercel)

npx skills add android/skills --skill ml-kit-genai-prompt-api -a claude-code

2Вручную: положить файлы

~/.claude/skills/ml-kit-genai-prompt-api/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/ml-kit-genai-prompt-api/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о ml-kit-genai-prompt-api

Как установить ml-kit-genai-prompt-api в Claude?

Выполните npx skills add android/skills --skill ml-kit-genai-prompt-api -a claude-code. Скилл появится в ~/.claude/skills/ml-kit-genai-prompt-api/SKILL.md.

Что делает ml-kit-genai-prompt-api?

Анализирует Android-код и подсказывает шаги для ML Kit GenAI Prompt API: оптимизацию промпта, кеш префикса, структурированный вывод и освобождение ресурсов модели.

Что нужно подготовить до работы скилла?

Android API level 26 или выше, зависимость com.google.mlkit:genai-prompt версии не ниже 1.0.0-beta4 в build.gradle приложения и KSP 2.3.6, если используется com.google.mlkit:genai-schema-compiler.

Исходный текст

SKILL.md · Apache-2.0
---
name: ml-kit-genai-prompt-api
description: Analyzes Android codebases to implement ML Kit GenAI Prompt API. Use
  this skill to send natural language requests on-device to Gemini Nano, use structured
  output with Prompt API, implement prefix caching, optimize the current prompt, or
  apply best practices."
license: Complete terms in LICENSE.txt
metadata:
  author: Google LLC
  last-updated: '2026-09-03'
  keywords:
  - ML Kit
  - Prompt API
  - Structured Output
  - Prefix Caching
  - Gemini Nano
---

This skill provides step-by-step guidance for integrating and optimizing the ML
Kit GenAI Prompt API in Android apps.

## Prerequisites

- Android API level must be 26 or higher. If `minSdk` is below 26, update it to 26.
- Add the ML Kit GenAI Prompt API dependency (`com.google.mlkit:genai-prompt`) to the app-level `build.gradle` file, with version at least `1.0.0-beta4`.
- If `com.google.mlkit:genai-schema-compiler` dependency is used and KSP plugin version is below 2.3.6, update it to 2.3.6.

## Detailed steps

### 1. Prompt optimization

To optimize prompts for use with the ML Kit Prompt API, follow the
[prompt optimization guide](https://developer.android.com/agents/skills/device-ai/prompt-api/references/prompt-optimization).

### 2. Prefix caching optimization

If the prompt is more than 200 words, implement the [prefix caching API](https://developer.android.com/agents/skills/device-ai/prompt-api/references/prefix-caching).

### 3. Lifecycle and best practices

- The model must be fully downloaded and available before calling the first inference. Follow the guide on [implementing a generative model](https://developer.android.com/agents/skills/device-ai/prompt-api/references/get-started) to check that the `FeatureStatus` of a model is `AVAILABLE` before making an inference.
- Release ML Kit instances by calling `close()` when an `Activity`,
  `Fragment`, or `ViewModel` is destroyed. Example:


  ```kotlin
  // Instantiating model in activity, fragment, or ViewModel
      val generativeModel = Generation.getClient()

  // When activity, fragment, or ViewModel is destroyed
      generativeModel.close()
  ```

  <br />

### 4. Structured output

When implementing or refactoring a prompt to use structured output, follow
these rules:

1. **Check for API availability:** Verify Structured Output feature is available on the device with `isStructuredOutputFeatureAvailable()` before using it. Refer to the [Structured Output API guide](https://developer.android.com/agents/skills/device-ai/prompt-api/references/structured-output) for full instructions.
2. **Return type:** Return the `@Generable` typed object from the function
   signature instead of a `String` or JSON string.

   For example:

       fun parseEmail(email: String): String {
           ... 
       }

   should be refactored to:

       fun parseEmail(email: String): ParsedEmail? {
           ...
       }

3. **Example:**

   This is the example code before refactoring:


   ```kotlin
   suspend fun parseEmail(email: String): String {
       val parseEmailPrompt = "Parse this email and return the sender, title, and short summary of the email less than 10 words: "

       val parsedEmail = generativeModel.generateContent(parseEmailPrompt + email)

       return parsedEmail.candidates[0].text
   }
   ```

   <br />

   This is the example code after using Structured Output API:


   ```kotlin
   @Generable
   data class ParsedEmail(
       @Guide(description = "Sender of the email")
       var sender: String = "",

       @Guide(description = "Title of the email")
       var title: String = "",

       @Guide(description = "Summary of the email less than 10 words")
       var summary: String = ""
   )

   suspend fun parseEmail(email: String): ParsedEmail? {
       val parseEmailPrompt =
           "Parse this email: $email"

       val baseRequest = GenerateContentRequest.Builder(TextPart(parseEmailPrompt)).build()
       val typedRequest = generateTypedContentRequest(baseRequest, ParsedEmail::class)
       val typedResponse = generativeModel.generateContent(typedRequest)
       return typedResponse.candidates[0].response
   }
   ```

   <br />

© Google LLC · Apache-2.0 · android/skills

Похожие скиллы

Всё по теме «Мобильная разработка» →
rc-revenuecat-api-quick-reference RevenueCat Справочник по Android SDK 10.x и REST API RevenueCat прямо в редакторе: сигнатуры вызовов, структура Offerings, поля CustomerInfo. CX Codex +1 624установок stream-android GetStream Скилл для работы с Stream Chat, Video и Feeds в Android-проектах на Kotlin: от установки пакетов до экранов чата, звонков и ленты. CX Codex +1 491установок clerk-android clerk Скилл помогает агенту подключить Clerk к нативному Android-приложению на Kotlin и Jetpack Compose — через готовые AuthView/UserButton или свой поток авторизации. CX Codex +1 14 400установок mobile-apps-create forcedotcom Маршрутизирует разработку нативных мобильных приложений Salesforce на Swift и Kotlin, разделяя задачи между Mobile SDK и Agentforce SDK. CX Codex +1 4 800установок kotlin-tooling-agp9-migration JetBrains Ведёт проект Kotlin Multiplatform через переход на Android Gradle Plugin 9.0: замена плагинов, разбиение модулей, перенос DSL. CX Codex +1 2 200установок using-chrisbanes-skills chrisbanes Разбирает задачу по Kotlin или Jetpack Compose и подключает нужный скилл из набора chrisbanes. Полезен, когда в одном изменении пересекаются несколько тем. CX Codex +1 1 100установок

Из того же набора24

camerax Помогает писать код камеры на Android через библиотеку CameraX. Подсказывает правильные паттерны для записи видео, миграции с Camera2 и работы с ML Kit. CX Codex +1 1 200установок agp-9-upgrade Ведёт Android-проект с AGP 8 на Android Gradle Plugin 9: поднимает зависимости, переводит сборку на встроенный Kotlin и новый DSL. CX Codex +1 1 200установок android-profiler Скилл собирает и разбирает данные о производительности Android: от трейсов Perfetto и утечек памяти до зависаний UI и расхода батареи. CX Codex +1 1 000установок leanback-to-compose-tv-migration Скилл ведёт миграцию Android TV с Leanback и Android Views на Jetpack Compose for TV. Пригодится, когда переписываешь browse, settings или playback экран. CX Codex +1 772установок media3-cast-integration Встраивает поддержку Google Cast в Android-приложения через Jetpack Media3. Настраивает зависимости, манифест, плееры CastPlayer или RemoteCastPlayer и UI на Compose. CX Codex +1 771установок restore-credentials Скилл помогает внедрить Android Restore Credentials через androidx.credentials и вернуть вход после восстановления приложения на новом устройстве. CX Codex +1 638установок navigation-event Помогает внедрить библиотеку androidx.navigationevent в Compose Android. Настраивает предиктивную анимацию жеста «Назад» и заменяет устаревший BackHandler. CX Codex +1 546установок android-permissions-security Скилл проверяет Android-проект на дыры в правах и IPC: находит слабые кастомные разрешения, спуфинг вызывающего и лишние запросы. Нужен при ревью AndroidManifest.xml. CX Codex +1 508установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой