Conclusão da Unidade 1
Você terminou a primeira unidade — e não terminou só de ler. Terminou com um Agent rodando na sua máquina, consultando uma base, respeitando um teto de sigilo e devolvendo processos que existem.
O que você tem agora
Um ambiente montado. Python nativo no Windows, ambiente virtual, Ollama servindo o qwen2:7b em 127.0.0.1:11434. Nenhum token, nenhuma conta, nenhuma conexão com serviço externo.
Uma base sintética com estrutura de verdade. Fato, dimensões, tabela-ponte, níveis de sigilo. Não são dados do Tribunal, mas o formato do problema é o mesmo — e é isso que torna o MAPEAMENTO.md utilizável quando você tiver a credencial de leitura da base real.
Dois Agents que fazem a mesma coisa, um sem framework e outro com smolagents. Ter escrito o primeiro é o que faz o segundo ser legível.
Um conjunto de hábitos, que é a parte que sobrevive à próxima versão de qualquer biblioteca:
- Uma Tool por intenção. Nunca SQL livre.
- O nível de acesso vem da sessão, nunca do modelo.
- Consulta parametrizada, sempre com
LIMIT. - Mensagem de erro escrita para o modelo ler.
- Olhar os passos intermediários, não só a resposta final.
O que ficou mais claro (espero)
Duas coisas, que valem mais do que qualquer detalhe de API:
Instrução em prompt não é controle. Você viu o modelo desobedecer a uma system message explícita e inventar um instituto processual com nome verossímil. A partir daí, "eu escrevi no prompt para ele não fazer isso" deixou de ser uma resposta aceitável para qualquer requisito que importe.
A aparência do resultado não diz nada sobre a origem dele. Números de processo fabricados têm dígito verificador plausível, vara verossímil e data coerente. A única verificação que funciona é o rastro: qual consulta produziu aquilo.
Essas duas frases são o motivo de o curso insistir tanto em onde o filtro de sigilo mora. Não é conservadorismo — é a consequência direta do que o modelo é.
Se algo ainda está confuso
É normal, e vale dizer isso com todas as letras. Agents juntam vários assuntos que costumam ser vistos separados: geração de texto, formato de mensagem, execução de código, modelagem de dados, controle de acesso.
A sugestão prática: volte ao agente_do_zero.py e mexa nele. Troque a pergunta, troque o assunto, mude o TETO_SIGILO, tire a parada, quebre o parser de propósito. São menos de 250 linhas, tudo à vista, e nada ali pode estragar dado de verdade.
Conceito de Agent assenta melhor depois de vê-lo falhar de algumas formas diferentes.
O que vem pela frente
Unidade 2 — o Alfred sai da máquina. O mesmo Agent, com a mesma estrutura de Tools, deixa de consultar o SQLite sintético e passa a consultar a API Pública do DataJud, do CNJ — 23 milhões de processos reais do TJRJ, sem credencial nominal e sem nada instalado a mais.
É a versão judicial daquele exemplo de "consultar a previsão do tempo" que todo curso de Agents usa. Só que a consulta é Traga os 3 processos mais recentes sobre violência doméstica, e a resposta traz números de processo que existem — e que passam no dígito verificador.
Unidade 3 — RAG e o acervo. Como fazer o Agent trabalhar com volume de texto sem estourar contexto — e por que "resumir a peça" continua sendo uma tarefa de risco diferente de "encontrar o processo".
Unidade 4 — o seu Agent. Você escolhe um tema judicial da sua vara, adapta as Tools e testa localmente. É o projeto final do curso, e é a razão de tudo até aqui.
Antes de seguir, um lembrete que não é formalidade: nada do que foi feito nesta unidade tocou em dado real. Quando isso mudar — e vai mudar, no dia em que a credencial de leitura chegar —, releia a seção 4 do MAPEAMENTO.md antes de escrever a primeira linha.
Até a Unidade 2.