Olá, Ewerson. Como vai?
Compreendo perfeitamente a sua frustração. Quando estamos empolgados com o conteúdo e a didática está boa, o que mais queremos é colocar a mão na massa rapidamente, e barreiras no repositório acabam quebrando o ritmo dos estudos. Ter que pausar o vídeo para copiar código linha por linha desvia o foco do aprendizado principal, que é entender a arquitetura de agentes.
Para ajudar a mitigar esse problema imediato e permitir que você avance no curso sem ficar travado, trago algumas sugestões práticas de como lidar com esse cenário no Git e como estruturar o fluxo de desenvolvimento do projeto:
- Histórico de Commits: Como o projeto possui apenas uma branch principal (geralmente a
main ou master), uma alternativa é explorar o histórico de commits do repositório. Muitas vezes, o instrutor commita o código ao final de cada módulo ou aula. Você pode rodar o comando git log --oneline no seu terminal para ver a lista de alterações e navegar até o ponto exato da aula desejada usando o comando git checkout <hash_do_commit>. - Uso de Stashes e Branches Locais: Para evitar se perder enquanto acompanha as aulas, uma boa prática é criar suas próprias divisões locais. Sempre que iniciar uma aula nova, crie uma branch específica no seu computador com o comando
git checkout -b nome-da-aula. Isso protege o seu código anterior e deixa seu ambiente organizado.
Para ilustrar o cenário ideal de como esses componentes de software deveriam estar isolados na arquitetura que você está estudando, veja a separação de responsabilidades entre as camadas:
Abaixo, apresento uma estrutura básica em formato de pseudocódigo que exemplifica a lógica de separação entre o Supervisor e os Agentes Subordinados. Você pode utilizá-la como base para estruturar os seus arquivos locais sem depender inteiramente dos prints do vídeo:
# Exemplo de estrutura para separar o Supervisor dos Agentes
Definir Agente_Pesquisador:
Instruções: "Busque dados brutos na web sobre o tema X."
Função: pesquisar()
Definir Agente_Escritor:
Instruções: "Consolide os dados recebidos em um relatório claro."
Função: escrever()
Definir Supervisor:
Instruções: "Coordene o fluxo de trabalho. Delegue a pesquisa primeiro e o relatório depois."
Lista_de_Agentes: [Agente_Pesquisador, Agente_Escritor]
Função gerenciar_fluxo(comando_usuario):
dados = Agente_Pesquisador.pesquisar(comando_usuario)
resultado_final = Agente_Escritor.escrever(dados)
Retornar resultado_final
Esta divisão em arquivos separados (ex: pesquisador.py, escritor.py e supervisor.py) ajuda a manter o código limpo e modular, exatamente como proposto nos conceitos de Agent to Agent (A2A) e Backend for Agents (BFA).
Além disso, obrigado por reportar essa situação. Feedbacks sobre a estrutura dos repositórios são fundamentais para que as atualizações e correções nos cursos sejam feitas pelas equipes de conteúdo da plataforma.
Espero que possa ter lhe ajudado!