Projeto M10, Agente Tutor

Agente tutor que usa ferramentas para ajudar o aluno: uma calculadora segura para contas e uma busca no material (RAG) para dúvidas de conteúdo. É o projeto que fecha o Módulo 10 e reúne tudo o que ele ensinou, o agent loop, o tool calling, o planejamento de etapas e a memória do aluno.

O que o agente faz

  • Decide, a cada pergunta, qual ferramenta usar (calculadora ou busca).
  • Calcula expressões com segurança, sem usar eval.
  • Busca no material de aula por similaridade, e admite quando não encontra.
  • Planeja problemas de várias etapas, encadeando os resultados das contas.
  • Lembra de informações do aluno (nome, nível) e personaliza o atendimento.

Como rodar

O agente roda do zero, só com a biblioteca padrão do Python, sem instalar nada.

python tutor_agent.py

A demonstração mostra o agente resolvendo uma conta, respondendo a uma dúvida de conteúdo, recusando uma pergunta fora do material e resolvendo um problema de duas etapas, sempre lembrando do aluno.

Usando no seu código

from tutor_agent import AgenteTutor, BaseConhecimento, DOCUMENTOS_EXEMPLO

tutor = AgenteTutor(BaseConhecimento(DOCUMENTOS_EXEMPLO))
tutor.memoria.lembrar("nome", "Ana")

print(tutor.responder("quanto é 28*3/4 ?").resposta)
print(tutor.responder("o que é a derivada?").resposta)

# Planejamento de várias etapas
for acao in tutor.resolver_problema([("Cadernos", "28*3"), ("Pacotes", "{r}/4")]):
    print(acao.resposta)

Testes

Os testes não dependem de Ollama nem de bibliotecas externas. Eles exercitam a calculadora segura, o roteamento de ferramentas, a busca, a memória, o tratamento da ausência e o planejamento.

pytest projects/m10-tutor-agent/

Como melhorar (próximos passos sugeridos)

  • Trocar o controlador por regras por um controlador com LLM, que decide a ferramenta por tool calling em JSON (Aula 2).
  • Usar o assistente de RAG do Módulo 9 como ferramenta de busca, com embeddings densos.
  • Orquestrar o agente com LangGraph, modelando o fluxo como um grafo (Aula 5).
  • Persistir a memória do aluno entre execuções, ligando com o Módulo 13.

Decisões de projeto

O agente foi escrito do zero para que toda a lógica fique visível e rode sem dependências. O controlador por regras é o padrão executável; o LLM como controlador e gerador aparece como opção nas aulas. A calculadora usa um avaliador seguro baseado em ast, sem eval, para nunca executar código arbitrário. A busca reusa o RAG do Módulo 9, com remoção de stopwords.