Nesta atividade, implementei um agente inteligente utilizando LangGraph com persistência de memória em SQLite e suporte a streaming. O objetivo foi evoluir o fluxo dos módulos anteriores, deixando de trabalhar com interações isoladas e passando a manter o contexto entre diferentes chamadas por meio de threads.
Para isso, configurei o estado do agente com AgentState, utilizando uma lista de mensagens acumuladas com add_messages. Em seguida, estruturei o grafo com dois nós principais: um nó responsável por chamar o modelo Gemini e outro responsável por executar ações externas, como buscas na internet com Tavily Search. Também configurei uma aresta condicional para verificar se o modelo solicitou alguma ferramenta; quando isso acontece, o fluxo segue para o nó de ação e depois retorna ao modelo para gerar a resposta final.
A persistência foi implementada com SqliteSaver, permitindo que o estado da conversa seja salvo em um banco SQLite. Com isso, cada conversa pode ser identificada por um thread_id, garantindo continuidade de contexto quando o mesmo identificador é reutilizado e isolamento quando threads diferentes são usadas.
Por fim, utilizei o recurso de streaming do LangGraph para acompanhar os eventos do grafo durante a execução, visualizando de forma mais detalhada as mensagens geradas, chamadas de ferramentas e respostas finais. Com isso, foi possível compreender melhor como agentes inteligentes podem manter memória, consultar informações externas e responder de forma contextualizada ao longo de múltiplas interações.
Segue o link contendo o código da atividade: https://github.com/Moquiuti/LangGraph_Orquestrando_agentes_e_multiagentes/blob/main/Persist%C3%AAncia_e_streaming_com_LangGraph.ipynb