Um debate de agentes com opiniões divergentes sobre um mesmo assunto
- Introdução
- Estrutura do projeto
- Tecnologias utilizadas
- Requisitos
- Como obter a API KEY no Google AI Studio
- Como configurar a API KEY no Google Colab
- Como executar
- Links úteis
- Contribuições
- Licença
- Contato
O projeto "Debate sem Firula" é uma implementação criativa do Google ADK (Agent Development Kit) que simula um debate entre dois agentes de IA com personalidades contrastantes: o Prolixo, que representa uma voz cautelosa e corporativa, e o Papo Reto, que encarna uma perspectiva direta e popular. Os agentes debatem temas escolhidos pelo usuário em rodadas interativas, onde o Prolixo oferece argumentos formais de 200-250 palavras, enquanto o Papo Reto responde com objetividade em 50-100 palavras.
A ideia desse debate de agentes surgiu de um prompt compartilhado pelo colega Sidnei, do site Mestre dos Prompts, no grupo chamado . Ele postou um prompt com uma proposta semelhante e tendo outros nomes. Gostei da estrutura e adaptei para esse projeto.
Comecei o projeto utilizado um prompt no GitHub Copilot do VSCode, tendo como base o Claude Sonnet 3.5 como modelo generativo, a fim de buscar ideias a partir do prompt do Sidnei, levando em consideração a estrutura de agentes inteligentes presente na documentação oficial do Google sobre ADK (Agent Development Kit). Além disso, eu utilizei os arquivos adk_tutorial.py
e poema.py
, que estão na pasta 📁 Ref deste repositório, como contexto do meu prompt.
O prompt que utilizei foi:
<função>
Você atuará como um desenvolvedor sênior, especializado em códigos .ipynb. Ou seja, códigos python que rodam no Google Colab. Você tem a boa prática de comentar o código inteiro para facilitar a vida de outros devs. Seu comentários sempre são em português brasileiro. Você sempre faz o debbuging do código e segue os princípio do 'Zen of python':
"Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!"
</função>
<contexto>
Na base de conhecimento tem os seguintes arquivos que são **PRIMORDIAIS** para a sua tarefa:
'@poema.py' - arquivo que funcionou no Google Colab perfeitamente e será seu modelo base para qualquer arquivo que crie daqui em diante.
'@adk_tutorial.py' - arquivo que também funcionou no Google Colab e que servirá de documentação.
@adk-python-main - documentação oficial do ADK Google. É uma boa prática sempre conferir a documentação.
</contexto>
<tema>
1. Utilize a primeira mensagem da pessoa usuária para fazer a seguinte pergunta: "Qual será o tema do nosso ADK de hoje?"
2. Assim que a pessoa definir o tema, você vai criar um código python de acordo com a estrutura do modelo 'poema.py'.
Lembre-se que os pacotes necessários para instalação encabeçam o código:
```python
# Instalando o pacote necessário
!pip install -q -U google-adk
!pip install -q -U litellm
print("Instalação completa")
```
REGRA: mantenha o sinal "!" antes do pip, pois será útil para a pessoa usuária quando copiar para o Google Colab.
3. Refatore o código para verificar se está tudo correto. Pense passo a passo nessa etapa.
4. Entregue o código final em uma caixa de código que permita que a pessoa copie o código para inserir no Google Colab em seguida:
```python
código final
```
</tarefa>
Caution
Depois de refinar o código como eu queria, colei no Google Colab e separei em 5 seções:
Bibliotecas necessárias
Classes necessárias
Configuração da API
Definição do modelo generativo
Código ADK
Para utilizar este projeto, você precisa de:
- Conta Google: Necessária para acessar o Google AI Studio e o Google Colab
- Chave de API do Google AI Studio (Gemini API): Instruções para obtenção abaixo
Important
O código está configurado para ser executado no Google Colab, que fornece todos os recursos computacionais necessários gratuitamente.
Para utilizar este código, você precisará de uma chave de API do Google Gemini:
- Acesse o Google AI Studio
- Faça login com sua conta Google
- Clique no botão "Criar chave de API"
- Aceite os termos de serviço, se solicitado
- Copie a chave gerada e guarde-a em local seguro
Important
Atualmente, o Google AI Studio oferece um uso gratuito da API para testes. Sobre demais detalhes da API do Gemini, leia a documentação oficial. Caso você não queira utilizar o Gemini, pesquise como obter a API KEY do modelo generativo de sua preferência.
Para utilizar sua chave API no Google Colab de forma segura:
- Abra seu notebook no Google Colab
- Na barra lateral esquerda, clique no ícone 🔑 (Secrets)
- Clique em "+ Adicionar novo secret"
- No campo "Nome", digite
senha
- No campo "Valor", cole sua chave API do Google AI Studio
Tip
O código está configurado para acessar a chave por meio de chave = userdata.get('senha')
. Se preferir usar outro nome, modifique esta linha no código:
# Usa a chave armazenada nos secrets do Colab sob o nome 'senha'
chave = userdata.get('senha')
Abaixo você terá um checklist básico para utilizar o código no Google Colab, sendo que o atalho para executar as células por lá é CTRL
+ ENTER
- Obter a API_KEY no Google AI Studio
- Clicar no botão
dentro do arquivo
debate_sem_firula.ipynb
- Configurar a API_KEY em 'Secrets' no Google Colab
- Executar o primeiro bloco do código (instalações - deixei também a biblioteca
litellm
caso queira utilizar outro modelo generativo em vez do Gemini) - Executar o segundo bloco do código (importações)
- Executar o terceiro bloco de código (api)
- Executar o quarto bloco do código (escolher o modelo generativo - no caso do Gemini, você pode ver todas as opções disponíveis com o código
Modelos_Gemini.ipynb
) - Executar o quinto bloco de código (adk)
- Documentação oficial do ADK (Agent Development Kit) - Tudo que você precisa saber sobre o ADK do Google;
- O que é vibe coding? - Explica como programar descrevendo o que você quer em linguagem natural;
- O que são agentes de IA? - Explicação da IBM sobre agentes inteligentes de IA;
- 6 segredos do GitHub Copilot no VSCode - vídeo do canal
Código Fonte TV
sobre o GitHub Copilot no VSCode, com explicação bem didática a respeito do assunto; - O que é uma API? - Guia da Alura sobre APIs;
- Tudo sobre o Secrets do Google Colab - Tutorial completo sobre armazenamento seguro no Google Colab;
- Como instalar o VSCode - link direto para download.
Contribuições são bem-vindas! Se você tem ideias para melhorar este projeto, sinta-se à vontade para fazer um fork do repositório.
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
Mário Lúcio - Prazo Certo®