Para os desenvolvedores, o estado mental é sagrado. Eles querem se sentir naquele espaço mágico onde as ideias se convertem em código quase sem qualquer esforço. O maior inimigo desse estado mental é o atrito: a leitura de documentos, a escolha do framework e as mudanças entre contextos que tiram você da zona criativa.
É por isso que temos o prazer de anunciar as atualizações do Agent Development Kit (ADK) que, quando combinadas com o Gemini CLI, são projetadas para eliminar os atritos e turbinar a experiência de "vibe coding" de agentes. Essa combinação habilita o contexto certo em uma conversa contínua entre você e o Gemini, transformando suas ideias gerais em agentes funcionais com velocidade e fluidez sem precedentes. Assim, você pode passar mais tempo resolvendo problemas do mundo real com o uso de agentes e muito menos codificando-os a partir do zero.
O coração desse upgrade é o arquivo llms-full.txt
reformulado incluído no repositório do ADK. Pense nele como um guia condensado e perfeitamente organizado de todo o framework ADK. Ele é um mapa que detalha todos os componentes, as funções e as práticas recomendadas do ADK.
Especificamente, reduzimos o arquivo em mais de 50% (menos tokens, viva!) e facilitamos a compreensão pelos LLMs. Essa é a chave para uma experiência melhor de "vibe coding" porque significa o seguinte: o Gemini tem uma compreensão total do ADK sem consumir a janela de contexto nem ser uma vítima da "deterioração do contexto".
Agora, por meio da combinação com o Gemini CLI, você tem um poderoso assistente de codificação transformado em especialista em ADK por um custo muito mais baixo e com mais acurácia. O CLI obtém uma compreensão aprofundada e nativa do framework, o que permite que ele converta seus planos gerais diretamente em código multiagentes preciso e idiomático. Isso aumenta drasticamente a velocidade da prototipagem porque você pode gerar um agente funcional em questão de minutos e fica livre para experimentar e iterar sem grandes investimentos iniciais em tempo de codificação.
Vejamos como isso funciona em um cenário real. Criaremos um agente de IA para rotular problemas do Github do ADK a fim de facilitar a priorização e a atribuição de problemas, passando de uma ideia simples para um agente funcional do ADK em apenas algumas etapas. (Os prompts e saídas foram traduzidos para fins informativos.)
Baixe o llms-full.txt
do adk-python para seu diretório de trabalho.
Primeiro, usamos o Gemini CLI como um parceiro de brainstorming para criar um plano geral.
Você: Quero criar um agente de IA utilizando o framework ADK para me ajudar a rotular problemas do Github com o Gemini em meu repositório (https://github.com/google/adk-python). Ele deve ler os problemas do Github e rotulá-los com alguns rótulos predefinidos (por favor, crie alguns rótulos comuns primeiro). Elabore um plano para fazer isso. @llms-full.txt
Gemini CLI:
Plano: Agente de rotulagem de problemas do GitHub
A meta é criar um agente de IA baseado em Python capaz de analisar um problema do GitHub e aplicar um rótulo predefinido relevante do seu repositório. Usaremos o framework ADK para orquestrar a lógica do agente e um modelo Gemini para a análise.
Fase 1: Criação e configuração do projeto
1. Inicialização do projeto: crie um novo diretório de projeto do Python.
2. Instalação de dependências: instale a biblioteca google-adk
e uma biblioteca de cliente da API GitHub, como PyGithub
.
3. Autenticação no GitHub: crie um token de acesso pessoal (PAT, na sigla em inglês) do GitHub com permissões repo
para permitir que o agente leia os problemas e aplique rótulos. Esse token será configurado com segurança como uma variável de ambiente.
Fase 2: Desenvolvimento de ferramentas personalizadas para o GitHub
O agente precisa de ferramentas para interagir com o GitHub. Criaremos um arquivo github_tools.py
contendo as seguintes funções, que serão expostas ao agente:
get_issue(repo_name, issue_number)
: busca o título e o corpo de um problema específico do GitHub.get_available_labels(repo_name)
: recupera a lista de todos os rótulos existentes para o repositório.apply_label(repo_name, issue_number, label)
: aplica um determinado rótulo a um problema específico.
Fase 3: Criação do agente de rotulagem
Com o uso do framework ADK, definiremos um novo Agent
em um arquivo main.py
:
1. Definição do agente: o agente será configurado para usar um modelo Gemini (por exemplo, gemini-1.5-flash
).
2. Integração de ferramentas: as ferramentas personalizadas do GitHub da Fase 2 serão fornecidas ao agente.
3. Instrução principal (prompt): o prompt de sistema do agente o instruirá a seguir um fluxo de trabalho claro:
get_issue
para entender o conteúdo do problema.get_available_labels
para ver as opções válidas.apply_label
para adicionar o rótulo escolhido ao problema.
Fase 4: Criação do ponto de entrada do aplicativo
Criaremos uma interface de linha de comando (CLI, na sigla em inglês) simples em main.py
que permite executar o agente. Ela aceitará o nome do repositório do GitHub e um número de problema como entrada e, em seguida, acionará o agente para executar a tarefa de rotulagem.
Gostaria que eu prosseguisse com a implementação deste plano?
Você definiu a lógica sem escrever uma única linha de código.
Agora, vamos usar o llms-full.txt
do ADK para transformar esse plano em um agente real.
Você: Ótimo. Agora, gere o código para esse plano usando o ADK do Python. @llms-full.txt (O Gemini CLI agora consulta o llms-full.txt
do ADK para converter o plano no código do ADK correto.)
Gemini CLI
import argparse
import asyncio
from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.genai import types
from github_tools import get_issue, get_available_labels, apply_label
labeling_agent = Agent(
name="github_labeler",
model="gemini-1.5-flash",
instruction="""You are an AI agent that labels GitHub issues.
1. First, use the 'get_issue' tool to read the issue's title and body.
2. Then, use the 'get_available_labels' tool to see all possible labels for the repository.
3. Analyze the issue content and choose the most relevant label from the available options.
4. Finally, use the 'apply_label' tool to add the chosen label to the issue.
5. Respond with a confirmation message stating which label was applied.
""",
tools=[get_issue, get_available_labels, apply_label],
)
from github import Github
from config import GITHUB_TOKEN
g = Github(GITHUB_TOKEN)
def get_issue(repo_name: str, issue_number: int) -> str:
"""Fetches the title and body of a specific GitHub issue."""
repo = g.get_repo(repo_name)
issue = repo.get_issue(number=issue_number)
return f"Title: {issue.title}\nBody: {issue.body}"
def get_available_labels(repo_name: str) -> list[str]:
"""Retrieves the list of all existing labels for the repository."""
repo = g.get_repo(repo_name)
labels = [label.name for label in repo.get_labels()]
return labels
def apply_label(repo_name: str, issue_number: int, label: str) -> str:
"""Applies a given label to a specific issue."""
repo = g.get_repo(repo_name)
issue = repo.get_issue(number=issue_number)
issue.add_to_labels(label)
return f"Successfully applied label '{label}' to issue #{issue_number}."
(Também foi gerado o requirements.txt, label_config.py, mas não vamos listá-lo aqui para manter o artigo mais sucinto.)
Instantaneamente, você tem um aplicativo de agente completo e funcional que usa corretamente o framework ADK. O CLI lidou com todo o código boilerplate porque o arquivo llms-full.txt
forneceu o contexto necessário.
Com o código gerado, você pode fazer o teste local. Talvez você encontre um bug ou pense em uma melhoria. Por exemplo, você deseja um resumo depois que o agente do ADK concluir os rótulos. Basta solicitar a mudança, sem interromper o fluxo.
Você: Você poderia adicionar um novo rótulo chamado "some_new_label" ao agente?
O Gemini CLI, que ainda mantém o contexto do script, refatora o código para implementar a mudança. Não há necessidade de editar manualmente o código nem de sair do ritmo.
Esta repetição iterativa é o novo fluxo de trabalho:
1: Idealize a lógica do agente.
2: Gere o código do ADK com o Gemini CLI.
3: Teste instantaneamente.
4: Faça melhorias com solicitações simples e conversacionais.
Você pode repetir esse ciclo até que seu agente esteja perfeito, tudo sem o atrito que normalmente tira você da sua zona criativa.