A Arte de Não Saber: Como Estamos Construindo um Coach de IA do Zero
Aprendizados e conselhos das nossas experiências com a construção de um aplicativo web de IA e dois aplicativos móveis sem nenhuma experiência prévia.
Não planejamos isso. Não de verdade.
Nosso cursor está pairando sobre o botão "Enviar para Revisão" dos nossos apps do AI Agile Coach que estivemos construindo nas últimas 4 semanas. Não sabíamos realmente como fazer apps há 4 semanas. Fizemos mesmo assim.
"O que de pior pode acontecer?"
"Podem rejeitar."
"Aperta o botão."
Alerta de Spoiler: Ambos os Apps foram aceitos em poucos dias.
Como chegamos aqui?
Estamos em 2023, e a IA está em todo lugar. O ChatGPT é o brinquedo novo e brilhante. "Olha, ele consegue fazer um poema sobre Scrum Masters!" alguém postou no nosso Slack. "Acabei de pedir para ele escrever meu email; é como mágica," escreveu outro. Começamos a usar IA para coisas pequenas—gerar ideias, lidar com tarefas rotineiras—e só nos divertindo.
Mas era mais do que uma novidade, e todos sabíamos disso. Ficamos impressionados, e talvez nos sentindo atrasados. Isso era novo, grande e se movendo rápido, e lá estávamos nós, tentando acompanhar.
Foi aí que caiu a ficha: isso não era algo para assistir de fora. Podíamos construir algo com isso.
Aqui está o que fizemos, o que aprendemos, e alguns bastidores.
1. Mergulhando: Sem Ideia Perfeita, Apenas Comece
Não tínhamos um grande plano ou uma ideia clara do que criar. Mas sabíamos que somos focados em aprendizado e em compartilhar conhecimento de um jeito que fica.
E agora, a IA era essa ferramenta enorme e brilhante que podíamos usar de uma nova forma. Mas o que exatamente íamos construir? E como faríamos isso?
Em vez de esperar pela ideia perfeita, simplesmente começamos a experimentar. Sem roadmaps elaborados, sem longas discussões—apenas nós, um punhado de ideias, e a vontade de ver o que conseguíamos fazer.
Aprendizado:
Não espere pela ideia perfeita. Comece pequeno, experimente com a tecnologia, e deixe a direção surgir do que você aprende. Com tecnologia que se move rápido, esperar demais pode significar perder o momento.
2. Estabelecendo uma Visão: Além de Apenas Mais um Chatbot
Desde o início, não queríamos construir apenas mais um chatbot. O ChatGPT já existia e sabíamos que não podíamos (e não queríamos) competir com sua escala. Mas o que o ChatGPT oferecia em escala, faltava em qualidade para tópicos de nicho, onde os detalhes importam.
E se nosso AI Agile Coach pudesse aproveitar nossa expertise para oferecer orientações confiáveis e instigantes, indo além de respostas simples e genéricas?
Qualidade, confiança e um toque humano se tornaram os pilares da nossa visão. Queríamos combater os problemas comuns da IA—ser genérica, impessoal e pouco confiável—transformando esses pontos em nossos diferenciais.
Aprendizado:
Comece com uma visão e trabalhe de trás para frente a partir dela. Você não precisa de todos os detalhes logo no início; novas ideias surgirão naturalmente conforme você avança.
3. Formando uma Equipe e Processo Enxutos: Mantendo a Simplicidade
Depois que decidimos construir o coach de IA, uma pequena equipe se formou—um designer, dois desenvolvedores e o resto da equipe nos bastidores para feedback e ideias.
Sem muito planejamento, adotamos um processo enxuto: sincronizações diárias rápidas, conversas informais no estilo retro para ajustar ferramentas e demos semanais para compartilhar o progresso. Não era sobre seguir rigidamente um framework ágil; era sobre manter as coisas simples e responsivas.
Aprendizado:
Deixe seu processo evoluir naturalmente. Check-ins diários, feedback regular e demos simples podem manter vocês alinhados. Não complique demais—às vezes, a melhor abordagem é aquela que combina com o ritmo da sua equipe.
4. A Arte do Prompting: Tentativa e Erro
Sabíamos que prompts inovadores (as instruções que você dá ao modelo de linguagem) seriam elementares para nosso app. Criar prompts parece fácil até você tentar fazer bem feito. Experimentamos diferentes prompts—ajustando palavras, reescrevendo frases, testando até parecer certo.
Nosso prompt atual tem mais de 5.000 caracteres, repleto de detalhes que fazem nossa IA soar como nós. É como escrever uma receita secreta, e foram muitas degustações até chegar lá—e continuamos ajustando regularmente.
Aprendizado:
Experimente com prompts. Teste diferentes variações para ver o que funciona e ajuste-os frequentemente. Bons prompts são cruciais para o desempenho da IA.
5. Lançando Cedo e Com Frequência: Deixando o Perfeccionismo de Lado
Não esperamos pela perfeição. Assim que nossa primeira versão estava boa o suficiente, lançamos. Era impecável? Incluía as inúmeras ideias e funcionalidades que pensamos? Definitivamente não. Mas não fazia sentido continuar sem feedback de pessoas reais.
Com IA, você não consegue prever cada resultado, e cada interação de usuário é diferente. A única forma de saber o que funciona é colocar no ar, ver como as pessoas usam e adaptar com base no que você aprende.
Aprendizado:
Não busque a perfeição antes do lançamento. Lance um produto mínimo viável rapidamente e aprenda com o feedback dos usuários para melhorias rápidas. Essa não é uma ideia nova, mas no cenário de IA em rápida evolução, ela importa mais do que nunca.
6. Nos Ombros de Gigantes
Acontece que você não precisa construir tudo sozinho. Nós nos apoiamos em frameworks e boilerplates como Gravity, que cuida de todo o trabalho tedioso mas necessário, como gerenciamento de usuários, autenticação e e-mail, para que pudéssemos focar no que realmente importa. Usamos bastante ferramentas como LangChain e claro a OpenAI API, que faziam o trabalho pesado nos bastidores.
Aprendizado:
Aproveite ferramentas existentes para acelerar o desenvolvimento. Não construa do zero quando alguém já resolveu o problema. As ferramentas certas podem economizar muito tempo.
7. Aprendendo com Especialistas (Como o Henrik de verdade)
Devemos muito ao Henrik Kniberg, que nos guiou em algumas das partes mais críticas do processo de desenvolvimento. Ele deu o pontapé inicial com um workshop que definiu o tom e a direção do nosso trabalho. Como mentor da equipe e inspiração para o nome do nosso produto, Henrik nos levou a novas direções e nos ajudou a moldar o AI Agile Coach no que ele é hoje. Sua influência foi inestimável, e somos gratos pelo seu apoio ao longo do caminho.
Aprendizado:
Busque aprender com especialistas. Uma perspectiva fresca de alguém experiente pode abrir caminhos que você nem tinha considerado.
8. O Desafio do Conteúdo: O Que Alimentamos à IA?
Passamos anos criando e curando conteúdo no qual acreditamos, e agora precisávamos descobrir como torná-lo a base do nosso coach de IA. Não se tratava apenas de jogar nossos materiais no sistema. Queríamos que nossa IA fosse confiável, envolvente e genuinamente útil. Então passamos horas selecionando e refinando os pedaços certos de conhecimento, garantindo que a IA pudesse entendê-los e usá-los de forma eficaz.
Aprendizado:
Invista tempo em curar seu conteúdo. Certifique-se de que seja preciso e reflita o tom e a voz da sua IA. Conteúdo melhor leva a uma IA mais confiável.
9. Iterando a Implementação do LLM: Adaptar, Adaptar, Adaptar
Melhorar o coach de IA exigiu múltiplas iterações, cada uma nos ensinando o que funcionava e o que não funcionava:
1. Usando GPT Customizado Dentro do ChatGPT:
Começamos com GPTs customizados dentro do ChatGPT. Era fácil—sem necessidade de código. No entanto, rapidamente encontramos limites de controle e qualidade de output. Também sabíamos que queríamos lançar nosso próprio produto fora do ecossistema da OpenAI, com sua própria marca e uma conexão mais direta com nossos outros produtos.
2. UI Customizada com a API Assistant:
Inicialmente construímos uma UI customizada usando a API Assistant. Isso nos deu mais controle sobre quais documentos a IA usava. Mas logo encontramos limitações de escalabilidade e era difícil controlar quais partes do conhecimento customizado eram usadas para gerar respostas.
3. UI Customizada com LangChain e Weviate Vector DB:
Em seguida, implementamos um Assistente customizado usando LangChain e conhecimento de um banco de dados vetorial Weviate. Essa configuração nos permitiu trazer apenas conhecimento relevante, melhorando a qualidade. Os resultados foram ótimos na maioria dos casos, mas às vezes o Assistente se perdia em loops infinitos ou fornecia respostas estranhas e pouco naturais.
4. Agente LangChain:
Para resolver esses problemas, implementamos um agente LangChain. Essa abordagem relativamente nova entregou os melhores resultados até então. O agente pode decidir quais ferramentas e informações usar com base na consulta do usuário e é mais eficiente com sua memória de interações passadas. Por exemplo, se um usuário diz "Oi", o agente decide que não precisa pesquisar seu conhecimento especializado para simplesmente cumprimentar de volta.
A contrapartida é que você abre mão de algum controle porque o agente tem mais autonomia. No entanto, os benefícios de qualidade e eficiência melhoradas superam isso de longe. A biblioteca de agentes Langchain oferece muitas opções e configurações para ajustar o desempenho do modelo.
5. Alguma nova solução incrível.
O que vem depois dos agentes, ainda não sabemos. Vamos ver...
Aprendizado:
Se uma configuração não está funcionando, não insista nela. Continue tentando novas configurações e aprenda com cada uma. Novas soluções surgem diariamente no cenário de IA, então mantenha-se aberto e pronto para se adaptar às ferramentas e abordagens mais recentes para melhorar seu produto.
10. Construindo o App Mobile: Um Salto de Fé
Sempre soubemos que precisaríamos de um app mobile, mas construir um parecia assustador. Quando o Sohrab perguntou o que seria necessário para criar um app, hesitamos. Apps mobile são complexos, e nunca tínhamos feito isso antes. Apesar do nosso web app ainda estar nos estágios iniciais com muito a fazer, fazia sentido começar o app mobile cedo. Ao fazer o app funcionar com um conjunto limitado de funcionalidades, evitamos o risco de ter que correr atrás depois, quando o produto estivesse mais complexo. Além disso, nos deu uma oportunidade antecipada de aprender e adaptar.
Usando Expo e React Native, construímos versões para iOS e Android em quatro semanas. Apertar o botão "Enviar para Revisão" foi bem emocionante. Nos lembrou de dar o salto e ver onde aterrissamos.
Aprendizado:
Se os usuários expressam uma necessidade, dê o salto. A curva de aprendizado pode ser íngreme, mas experiência prática supera planejamento teórico. Frameworks como Expo e React Native funcionam bem para construir apps multiplataforma. No passado, apps não-nativos podiam parecer desajeitados ou fora de lugar, mas esses frameworks evoluíram significativamente. Você sacrifica apenas um pouco da sensação nativa, e em troca, ganha desenvolvimento rápido e manutenção mais fácil entre plataformas.
11. Usando IA para Construir IA: Habilitando Todos
Uma das coisas mais legais foi usar IA para ajudar a construir nossa IA. Configuramos diferentes GPTs para tarefas específicas: um para código, outro para escrita, e assim por diante. Até eu, um designer com habilidades limitadas de programação, me vi programando com a ajuda do Cursor, um editor de código com assistente integrado. A IA se tornou um facilitador, permitindo que todos contribuíssem de novas formas.
Aprendizado:
Use IA para aprimorar seu processo de desenvolvimento e construir ferramentas especializadas. Como aprendemos com Henrik Kniberg: Com cada tarefa na sua lista, pergunte a si mesmo: Como a IA pode me ajudar com isso?
12. Mantendo o Toque Humano
Em um projeto orientado por IA, é fácil perder de vista o elemento humano. Então, fizemos um esforço consciente para prevenir isso:
- O logo foi primeiro esboçado em um post-it.
- O código foi verificado, selecionado e escrito manualmente.
- O texto de marketing foi primeiro escrito no papel—com um lápis.
- E-mails para usuários foram escritos e enviados manualmente com uma abordagem simplificada, sem pensar em escala ainda. (Hint: Don't optimize for scale prematurely)
Aprendizado:
IA é uma ferramenta poderosa, mas são os elementos humanos que fazem um produto parecer genuíno e identificável. Mantenha o toque pessoal vivo no seu projeto.
13. Estamos Apenas Começando
Construímos muito em pouco tempo, mas ainda estamos descobrindo o caminho. Cada dia traz novos desafios, lições e ideias para testar. Continuamos aprendendo, iterando e tentando criar algo que funcione.
E tudo bem, porque sempre foi assim que operamos. Vivemos pelos princípios que ensinamos: aprender rápido, adaptar-se rapidamente e continuar avançando.
Aprendizado:
Mantenha a curiosidade e a flexibilidade. Continue testando suposições, abrace o que você aprende e esteja pronto para mudar de direção.
E não esqueça de se divertir pelo caminho.
---