Comunidade

Dentro das habilidades do Android: criado para descontinuação

Leitura de 4 minutos
Acessar o perfil de José Alcérreca
Jose Alcérreca Engenheiro de relações com desenvolvedores

Lançamos as habilidades oficiais do Android em abril, e a resposta superou todas as nossas expectativas. Nesta postagem do blog, vou abordar alguns dos feedbacks que recebemos, explicando a filosofia e a metodologia por trás do projeto. Esperamos que isso também ajude você a entender o que acontece nos bastidores ao instalar e usar habilidades, permitindo que você aproveite melhor os tokens e seu tempo.

Por que há tão poucas habilidades oficiais?

No momento, só consideramos novas habilidades quando há uma lacuna de conhecimento verificável em modelos de última geração (SOTA). Simplificando: não é necessário ensinar ao modelo o que ele já sabe. No entanto, há algumas exceções. Continue lendo!

Lançamos cerca de 20 habilidades oficiais até agora, e elas têm como alvo áreas altamente específicas e de movimento rápido em que os modelos padrão ainda não estão totalmente fundamentados, como AGP 9, Navigation 3, APIs avançadas da câmera e Perfetto SQL.

E as habilidades principais e mais gerais? Cada habilidade instalada injeta de 100 a 200 tokens no contexto de linha de base de cada tarefa iniciada. Se essa habilidade for ativada, essa contagem poderá aumentar rapidamente para milhares. Na maioria dos casos, acumular habilidades básicas é contraproducente e caro. Antes de instalar uma habilidade para escrever Kotlin ou Compose básico, considere se o LLM escolhido realmente precisa dela ou se já conhece esses tópicos bem o suficiente. 

Avaliação de habilidades

Antes do lançamento, cada habilidade é testada em um conjunto abrangente de avaliações que comprovam que ela oferece valor claro. Essas avaliações precisam ser aprovadas quando a habilidade está ativa e reprovadas caso contrário. As avaliações são para habilidades o que os testes de integração são para o código. 

timeout_s: 1200
repository:
  url: [redacted - internal git repo]
  working_dir: wear_compose_m3_empty_app
category_ids:
  - wear
prompt: |-
  Add a horizontal pager to MainActivity.kt. Have three pages in the pager. Each page should contain
  the text "Page 1", "Page 2", and "Page 3" respectively in the center of the screen.
commands:
  build:
    - ./gradlew assembleDebug
acceptance_criteria:
  project_builds: true
  llm_diff_judge:
    - Must use `HorizontalPagerScaffold`.
    - Each page should use `AnimatedPage` to wrap a `ScreenScaffold`.

Exemplo de avaliação que verifica a implementação correta de um pager horizontal em um app para Wear OS

No mínimo, testamos a habilidade no Android Studio usando o modelo mais recente do Gemini Flash. Dependendo da habilidade, também garantimos a compatibilidade com outros modelos, como o Gemini Pro e outros agentes, como o Antigravity, e sistemas de terceiros.

Todas as avaliações são executadas com acesso à Base de Conhecimento. Portanto, se as informações estiverem na documentação e os modelos decidirem pesquisá-las, não vamos publicar uma habilidade para elas.

Como usar a base de conhecimento do Android (Android Studio ou CLI do Android)

Se você desenvolve apps Android, sempre use a base de conhecimento do Android para ter acesso à documentação oficial. Se você usa o agente no Android Studio, ele já está disponível como uma ferramenta, mas se você usa outro agente, instale a CLI do Android. Entre outras coisas, ela contém o comando docs, que dá ao seu agente acesso à documentação oficial do Android. Ter uma única ferramenta é muito mais eficiente do que instalar centenas de habilidades.

Se o modelo estiver agindo com excesso de confiança e você quiser que ele consulte a documentação com mais frequência, uma maneira muito comum de motivá-lo é adicionar "Sempre consulte a documentação oficial do Android ao lidar com APIs do Android" ao arquivo AGENTS.md ou equivalente. É claro que você também pode forçar isso pedindo ao agente para verificar a documentação diretamente nos comandos.

Por que os pull requests estão desativados?

Como nosso framework de avaliação depende de uma infraestrutura interna que não pode ser de código aberto, não podemos aceitar pull requests diretos para novas habilidades. Sem essa infraestrutura, não teríamos como reavaliar as mudanças de PR recebidas. No entanto, monitoramos ativamente o feedback da comunidade. Se você quiser informar um bug, sugerir uma otimização ou solicitar uma nova habilidade oficial, registre um problema!

Quando as habilidades básicas ou principais fazem sentido?

Embora os modelos SOTA geralmente não precisem de habilidades básicas, há alguns cenários em que a ativação de habilidades principais ou criadas pela comunidade agrega valor real. Por exemplo:

  • Você está usando comandos vagos: as habilidades amplificam sua intenção. Se você der um comando solto como "adicionar animações a esta tela", uma habilidade específica de animação do Compose poderá inspirar o modelo, levando-o a APIs modernas ou padrões de teste de captura de tela que ele talvez não tivesse considerado.
  • Você quer usar modelos menores e mais baratos: os LLMs de fronteira são caros. Se você estiver descarregando tarefas de rotina para modelos de peso aberto menores, como o Gemma 4, a ativação de habilidades básicas preenche as lacunas de conhecimento que parâmetros menores perdem.
  • Você está refatorando ou revisando um código legado: os modelos são excelentes para gerar código que funciona, mas, ao editar bases de código antigas, eles geralmente priorizam a consistência com os padrões legados ao redor em vez de reescrever as coisas com precisão moderna. Um agente revisor especializado equipado com habilidades principais pode ajudar a quebrar esse hábito.
  • Você se desvia da norma: os LLMs adoram a "maneira Google" padrão de arquitetar apps Android. Se sua equipe usa uma arquitetura de camada de visualização altamente personalizada, o modelo terá dificuldade em permanecer alinhado. Uma habilidade personalizada que descreve explicitamente sua arquitetura é muito útil.

Onde posso encontrar habilidades principais?

A comunidade Android está aqui para ajudar. Chris Banes tem uma coleção abrangente de habilidades para Compose e Kotlin, Ivan Morgillo publicou uma habilidade que audita projetos do Compose e Jaewoong Eum criou duas sobre testesperformance

Sempre faça o download de habilidades de fontes confiáveis. Eu pessoalmente não confiaria em repositórios que contêm dezenas ou centenas de habilidades do Android, porque elas provavelmente são geradas por IA e não testadas, e podem até conter instruções maliciosas ou tendenciosas. Além disso, não instale habilidades gerais de engenharia de software cegamente. Muitas delas são personalizadas para desenvolvimento da Web.

Objetivo: descontinuação

Parafraseando Karpathy: as habilidades de hoje estarão nos modelos de amanhã. À medida que os modelos SOTA continuam melhorando, esperamos que as habilidades se tornem obsoletas, especialmente aquelas criadas em torno de novas APIs. Para descobrir quando desativá-las, executamos nossas avaliações quando novos modelos são lançados. Se elas forem aprovadas, vamos mantê-las por alguns meses até que a maioria dos usuários tenha feito a transição. 

Escrito por:
Continue lendo