📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Guia de Inteligência Artificial. Recomendado revisar antes de começar.

🤖 Agentes Autônomos com LangChain & Tool Calling

v1.0 — Engenharia de Software & Práticas Profissionais

Trilha de Especialização Pedagógica


🎯 Objetivo & Escopo do Projeto

Agente inteligente capaz de raciocinar e executar ferramentas externas (Tool Use), realizando consultas em bancos SQL, buscas na web e cálculos analíticos.


🛠️ Código de Exemplo da Implementação

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?"))


🚀 Como Executar no Laboratório

1. Abra o terminal na pasta deste projeto

No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:

cd ia_02_agentes_autonomos_tools

2. Execute a aplicação ou testes

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


🏛️ Arquitetura Visual & Engenharia do Sistema

A visualização arquitetural abaixo detalha a separação de responsabilidades e o fluxo de dados implementado na subpasta ai-python/:

Arquitetura da Aplicação

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

🎯 Engenharia de Requisitos & Modelagem Formal

👤 User Stories (Histórias de Usuário)

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

⚙️ Requisitos Funcionais (RF)

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

🛡️ Requisitos Não-Funcionais (RNF)

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

🔗 Matriz de Rastreabilidade (RTM)

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

🏁 Checkpoints de Qualidade & Homologação

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 ✅