Resumo
Este artigo apresenta um agente construído com o Google ADK (Agent Development Kit) que consulta cotações de ações via YFinance. O agente expõe a ferramenta fetch_stock_info para responder perguntas sobre preço atual, mínima/máxima do dia e recomendação, usando o modelo Gemini. Abaixo estão a arquitetura, o passo a passo de configuração e execução, além de ideias de evolução.
Por que este projeto
- Acessar cotações de forma conversacional com contexto.
- Integrar modelos Gemini a uma fonte de dados prática (Yahoo Finance via YFinance).
- Demonstrar como publicar ferramentas Python em um agente com o Google ADK.
Arquitetura
-
Agente:
query_yfinance_agent(modelogemini-2.0-flash), definido emquery-yfinance/agent.py. -
Ferramenta:
fetch_stock_info(ticker_symbol: str), que usayfinancepara buscar:-
displayName(oushortName) currentPricedayLowdayHighrecommendationKey
-
- Orquestração: Google ADK aciona o modelo e decide quando chamar a ferramenta com base no prompt do usuário.
-
Configuração: variáveis em
query-yfinance/.env(carregadas automaticamente pelo ADK).
Código-chave
Arquivo query-yfinance/agent.py:
- Ferramenta de consulta:
- Recebe
ticker_symbol(ex.:PETR4.SA,AAPL). - Usa
yfinance.Ticker(...).infoe retorna um dicionário com campos úteis.
- Recebe
- Agente ADK:
- Define
name,model,descriptioneinstruction. - Registra a ferramenta em
tools=[fetch_stock_info].
- Define
Pré-requisitos
- Python
>= 3.12. - Chave de API do Google Generative AI (para a API pública): variável
GOOGLE_API_KEY. - Opcional: Vertex AI (com
GOOGLE_GENAI_USE_VERTEXAI=TRUE+ credenciais GCP).
Instalação
Com uv (recomendado):
- Instale o
uv: https://docs.astral.sh/uv/ - No diretório do projeto, rode
uv sync. - Ative o ambiente:
source .venv/bin/activate.
Com pip:
- Crie e ative o venv:
python3.12 -m venv .venv && source .venv/bin/activate - Atualize o pip:
pip install -U pip - Instale o projeto:
pip install -e .
As dependências principais estão em pyproject.toml: google-adk e yfinance.
Configuração
- Copie o exemplo de variáveis:
cp query-yfinance/.env-sample query-yfinance/.env - Edite
query-yfinance/.env:-
GOOGLE_API_KEY=...(quando não usa Vertex) -
GOOGLE_GENAI_USE_VERTEXAI=FALSE(ouTRUE+gcloud auth application-default login+ exporteGOOGLE_CLOUD_PROJECTeGOOGLE_CLOUD_REGION)
-
Observação: o ADK lê o .env da pasta do agente; mantenha-o em query-yfinance/.
Execução (CLI)
- Ative o venv.
- Rode
adk run query-yfinance. - Exemplos de perguntas:
- “Qual o preço atual de
PETR4.SA?” - “Mostre a mínima e a máxima do dia para
AAPL.”
- “Qual o preço atual de
Exemplos de tickers:
- Brasil (B3):
PETR4.SA,VALE3.SA(note o sufixo.SA). - EUA:
AAPL,GOOGL,MSFT.
Fluxo em tempo de execução
- Você conversa com o agente no terminal.
- O modelo Gemini interpreta a intenção e decide chamar
fetch_stock_infocom o ticker. - A ferramenta usa YFinance e retorna os campos.
- O agente compõe uma resposta natural com os dados retornados.
Tratamento de erros e limitações
- Ticker inválido: YFinance pode retornar dados incompletos; o agente ainda responde com o nome/ticker fornecido.
-
Campos ausentes: nem todos os ativos possuem
currentPrice/recommendationKey; o código já lida comdictvazio. - Rede/limites: YFinance depende do Yahoo Finance e pode falhar temporariamente; tente novamente.
- Precisão e atraso: dados são de terceiros e podem ter latência; valide antes de decisões financeiras.
Estrutura do repositório
-
query-yfinance/agent.py: agente e ferramentafetch_stock_info. -
query-yfinance/.env-sample: exemplo de variáveis. -
README.md: guia rápido. -
pyproject.toml: metadados e dependências.
Conclusão
Com poucas linhas de código e o Google ADK, integramos um modelo Gemini a uma fonte de dados financeira prática (YFinance), criando um agente conversacional que responde consultas de mercado. A abordagem é extensível: novas ferramentas podem ser adicionadas para enriquecer análises, histórico e formatação de relatórios.
Top comments (0)