Bom pessoal, e agora a gente vai falar de Skeleton of Thought, tá? O Skeleton of Thought é uma forma de prompt que realmente é fantástica em relação a alguns usos e vão ser na realidade bem comum pra gente como desenvolvedores, tá? Então, a diferença entre Skeleton of Thought, na realidade, é que ele é um, vamos dizer assim, como se ele fosse um subset do Chain of Thought, ou seja, ele é uma variação do Chain of Thought e a ideia principal dele é conseguir fazer com a gente uma geração de uma estrutura pré-definida que a gente coloque, ou seja, como se a gente fornecesse um template pra que na hora que ele faça o prompt, o resultado dessa resposta, ela venha numa estrutura. E por isso que é chamado de skeleton, porque é como se fosse um esqueleto, né, trazendo claramente as seções que nós queremos, tá? Uma coisa interessante é que o estudo pro o Skeleton of Thought inicialmente foi para ver a possibilidade de computação paralela, conforme ele iria gerando a estrutura. Mas de forma geral, no dia a dia, o que a gente sempre vai pensar do Skeleton of Thought é a gente ter sessões fixas daquilo que a gente precisa. Então, quando que eu utilizo, por exemplo, Skeleton of Thought, tá? Quando a gente precisa, por exemplo, de resumo técnico com seção fixa, documentação, né? Ou seja, eu vou criar uma Architecture Decision Record, eu vou criar um template que eu quero que o resultado saia igual. Então, sempre que você pensar em Skeleton of Thought, pense que você está controlando, entre aspas, o formato de saída de uma determinada resposta. E isso aí muda o jogo quando nós estamos querendo, principalmente, gerar documentação. Então, esse é um ponto importante. Aqui está o link do paper, nem vou abrir, mas é importante que você consiga dar uma olhada nisso aqui depois. Então, essa que é a ideia do Skeleton of Thought. Uma coisa interessante aqui são exemplos que eu quero te mostrar para ficar mais claro na sua cabeça como que a gente consegue utilizar esse camarada. Por exemplo, você é um engenheiro de software especializado em performance e escalabilidade, sua tarefa é propor uma solução para implementar um rate limiter robusto que limite a taxa de requisição por cliente e estruture sua resposta com os seguintes tópicos. Contexto do problema, requisitos funcionais e não funcionais, estratégia de rate limiting, stack tecnológica sugerida, considerações de concorrência e escalabilidade, conclusão técnica. Então, a resposta que eu espero nesse caso seja algo mais ou menos dessa forma. Ou seja, ele traz o contexto do problema, depois ele traz os requisitos funcionais e não funcionais, aí ele traz a sessão de estratégia de rate limiting, depois ele traz a stack, as considerações de concorrência e depois a conclusão técnica. Então perceba o poder que a gente tem nas nossas mãos para conseguir gerar tanto código como templates e principalmente, minha opinião pessoal, documentação. Eu acredito que você viu quando a gente estava mostrando aqueles prompts para a gente gerar ADRs, contextualização e tudo isso. E agora eu acho que já faz meio que parte do seu entendimento aí que eu utilizei bastante o Skeleton of Thoughts naquele tipo de caso. A diferença é que aqueles tipos de prompt que eu utilizei, depois eu vou mostrar para vocês, tipos de prompt que eu utilizei e depois eu vou mostrar pra vocês, ele utiliza uma combinação de vários, né, de vários tipos de prompt, mas com certeza um deles é a parte de skeleton of thought. Então, essa que é a ideia, assim, super importante pra que você entenda a pegada do skeleton of thought. Então, tá aqui minha tabelinha comparativa que eu acho bacana você sempre pensar. Então, quando uso o skeleton of thought? Quando eu quero ter controle total do formato, a resposta deve ser dividida em tópicos, quando a tarefa existe uma checklist estruturada, a IA costuma se perder na estrutura, ou seja, toda vez que você pergunta e a estrutura do resultado que ela traz está ruim, você consegue forçar aí um skeleton of thought. E a lógica, quando a lógica for extremamente exploratória, a gente não deve usar o skeleton of thought. Como assim lógica exploratória? Imagina que eu estou fazendo perguntas e estou tentando fazer encadeamento de pensamentos e estou fazendo um monte de coisa, mas eu não sei necessariamente o resultado que eu quero, porque eu estou testando as coisas, eu estou pesquisando as coisas. E se eu estou pesquisando e etc., eu não tenho necessariamente a necessidade de ter um template. Então, o que acontece aqui no Skeleton of Thought, eu não recomendo você ficar utilizando esse cara quando você nem sabe o que você não sabe, quando você está pensando em possibilidades. Aí a coisa já fica um pouco mais complexa, porque se você não sabe as possibilidades, o nível de resposta, ou principalmente aquele esqueleto que você vai receber, que você vai forçar e atrasar pra você, ele vai ser um esqueleto que na realidade ele não pode conter todas as informações que você tá buscando, tá? Tabela comparativa, zero shot, requer estrutura? Não. Raciocínio a passo a passo? Não. Ideal para consultas diretas, respostas zero shot requer estrutura? não, raciocínio a passo a passo? não, ideal para consultas diretas, respostas factuais, one shot, few shot requer estrutura? parcial, porque no final das contas você está dando exemplos e normalmente ele pode fazer o resultado sair mais ou menos com a estrutura daquele exemplo ele raciocina passo a passo, parcial ele repete padrões de exemplos com precisão. Então, quando eu preciso de exemplos para ele retornar computação, processamento, de acordo com a pergunta que você faz baseado em exemplos, ele é muito bom para isso. Chain of thought requer estrutura? Não. Raciocina passo a passo? Sim. Pra como que você usa principalmente Chain of Thought? Diagnóstico, debugging, raciocínio técnico, né? Onde a gente precisa de um pensamento passo a passo. Agora, olha só que interessante, o Skeleton of Thought, ele requer uma estrutura, o raciocínio é opcional. Porque não necessariamente pra eu trazer um esqueleto, eu preciso que ele pense passo a passo pra trabalhar ali comigo, tá? Mas eu posso fazer coisas do tipo, por exemplo, eu faço o pedido de algo com o Chain of Thought pra ele raciocinar passo a passo. Depois que ele raciocinar passo a passo, eu pego, pegue as suas respostas e retorne no formato X. E daí ele vai ajustar com a gente o Skeleton of Thought. Por isso que acaba sendo ali opcional, porque eu consigo fazer ali uma combinação, tá? De Skeleton of Thought com Chain of Thought, tá? Então quando eu quero resposta organizada, documentação, especificação, sem dúvida o Skeleton of Thoughts é um bom exemplo pra gente conseguir trabalhar nesses casos de documentação e resultado. Legal? Próximo passo, Tree of Thoughts. Então, a gente fala daqui a pouquinho sobre isso.