📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Guia de Inteligência Artificial. Recomendado revisar antes de começar.
v1.0 — Engenharia de Software & Práticas Profissionais
Trilha de Especialização Pedagógica
- Tecnologias: Python 3.12, LangChain, Tool Calling, Agentic AI, SQLite Tool, Tavily Search
- Arquivo Principal:
agente.py
Agente inteligente capaz de raciocinar e executar ferramentas externas (Tool Use), realizando consultas em bancos SQL, buscas na web e cálculos analíticos.
def executar_agente(query: str):
print(f"Agente Autonomo ativado para: {query}")
print("Passo 1: Decidindo ferramenta -> [Consulta SQL]")
print("Passo 2: Executando ferramenta...")
return "Resultado consolidado pelo agente com uso de ferramentas."
if __name__ == "__main__":
print(executar_agente("Quantos produtos temos em estoque acima de R$ 100?"))
No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:
cd ia_02_agentes_autonomos_tools
pip install -r requirements.txt
python app.py
[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd catalogo_projetos/ia_02_agentes_autonomos_tools
A visualização arquitetural abaixo detalha a separação de responsabilidades e o fluxo de dados implementado na subpasta ai-python/:
flowchart TD
subgraph Entrada["Camada de Entrada & CLI"]
IN1["Interface de Comando / API"] --> IN2["Parser & Sanitização"]
end
subgraph Dominio["Camada de Domínio & Regras"]
DM1["Modelos de Domínio"] --> DM2["Processamento Algorítmico"]
end
subgraph Armazenamento["Persistência & Recursos"]
ST1["Banco de Dados / Arquivo"] --> ST2["Transações ACID & Logs"]
end
subgraph Qualidade["Validação & Qualidade"]
QA1["Testes Automatizados"] --> QA2["Checkpoints CP-01..05 PASS"]
end
Entrada --> Dominio
Dominio --> Armazenamento
Armazenamento --> Qualidade
style Entrada fill:#e3f2fd,stroke:#1976d2,stroke-width:1.5px
style Dominio fill:#fffde7,stroke:#fbc02d,stroke-width:1.5px
style Armazenamento fill:#e8f5e9,stroke:#388e3c,stroke-width:1.5px
style Qualidade fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px
| ID | Persona | História de Usuário | Critério de Aceite | Prioridade |
|---|---|---|---|---|
| US-01 | Arquiteto de IA | Desejo agente baseado no framework ReAct (Reason + Act) com loop cognitivo | Ciclo contínuo de Pensamento -> Ação -> Observação -> Resposta Final | Alta |
| US-02 | Desenvolvedor Backend | Desejo registrar ferramentas customizadas (calculadora, busca, relógio) | Decorador @tool com schemas JSON tipados para invocação de funções | Alta |
| US-03 | Engenheiro de Integração | Desejo memória conversacional com histórico resumido de iterações | Buffer de memória mantendo contexto de múltiplos turnos de diálogo | Alta |
| US-04 | Operador de Segurança | Desejo limite máximo de iterações para prevenir loops infinitos do agente | Guarda de execução abortando após N passos com mensagem instrutiva | Média |
| US-05 | Auditor de Software | Desejo testes simulando falhas de ferramentas e recuperação autônoma | Testes unitários verificando comportamento do agente diante de tool error | Média |
| ID | Descrição do Requisito | Criticidade |
|---|---|---|
| RF-01 | Motor de raciocínio ReAct com parser de passos e decisões | Alta |
| RF-02 | Registro dinâmico de ferramentas (tools) com validação de argumentos | Alta |
| RF-03 | Gerenciamento de memória de curto prazo e estado do agente | Alta |
| RF-04 | Mecanismo de fallback e parada segura (max iterations guard) | Média |
| RF-05 | Módulo de testes automatizados com simulação de cenários de tool calling | Média |
| ID | Especificação Arquitetural | Criticidade |
|---|---|---|
| RNF-01 | Resiliência contra outputs mal-formados de LLMs com parser robusto | Alta |
| RNF-02 | Transparência total dos passos intermediários (thought traces) para auditoria | Alta |
| RNF-03 | Baixo consumo de tokens através de pruning inteligente do histórico | Média |
| RNF-04 | Compatibilidade com Python 3.8+ e frameworks de agentes contemporâneos | Média |
| RNF-05 | Fontes organizados na subpasta ai-python/ | Alta |
| User Story | Requisito Funcional | Requisito Não-Funcional | Módulo / Artefato de Código | Status de Homologação |
|---|---|---|---|---|
| US-01 | RF-01 |
RNF-01, RNF-02 |
ai-python/agente.py |
Testado |
| US-02 | RF-02 |
RNF-01, RNF-04 |
ai-python/agente.py |
Testado |
| US-03 | RF-03 |
RNF-02, RNF-03 |
ai-python/agente.py |
Testado |
| US-04 | RF-04 |
RNF-01, RNF-03 |
ai-python/agente.py |
Testado |
| US-05 | RF-05 |
RNF-01, RNF-05 |
ai-python/agente.py |
Testado |
| Checkpoint | Escopo da Validação | Artefato Verificado | Status |
|---|---|---|---|
| CP-01 | Inicialização & Estrutura de Pastas | ai-python/ |
PASS ✅ |
| CP-02 | Modelagem de Domínio & Regras Centrais | Domain Models |
PASS ✅ |
| CP-03 | Persistência & Operações de I/O | Storage / Data |
PASS ✅ |
| CP-04 | Interface de Operação & Usabilidade | CLI / GUI / API |
PASS ✅ |
| CP-05 | Homologação com Suíte de Testes | Test Suite |
PASS ✅ |