๐งฑ Do zero ao primeiro Jarvis (a receita minima)
Voce ja entendeu as pecas (Trilha 3). Agora vamos montar. Este modulo te da a receita minima โ o "hello world" de um Jarvis โ e a ordem certa de empilhar os tijolos: os 5 Build Levels. Voce vai aprender a construir COM uma IA e a testar cada peca antes de seguir, em vez de montar tudo de uma vez e rezar.
๐งฑ A receita minima
Existe a tentacao de comecar grande: voz, dez integracoes, sub-agentes, um painel bonito. Esse e o caminho mais rapido para o abandono. O Jarvis nasce muito menor do que voce imagina. A receita minima tem exatamente cinco ingredientes โ e nenhum a mais. Se uma so dessas pecas estiver no lugar, voce ja tem um assistente que conversa de verdade e que pode crescer com seguranca.
๐ณ Os 5 ingredientes do "hello world" do Jarvis
- 1.Um canal โ a porta por onde voce fala com ele. Use o Telegram: e so um token, sem servidor exposto.
- 2.Um cerebro โ um unico modelo de IA (LLM) por tras, na nuvem ou local. Um so, nao tres.
- 3.Um
soul.mdโ um arquivo de texto que diz quem ele e (nome, tom, valores). - 4.O loop agentico โ o ciclo "pensa โ age โ le o resultado โ responde" que vimos na Trilha 1.
- 5.Uma ferramenta โ uma so (ex.: buscar na web). Da a ele uma "mao" para fazer algo no mundo.
Repare no que nao esta na lista: voz, multiplos canais, banco vetorial, dez plugins, dashboard. Tudo isso e legitimo โ mas vem depois. O principio que organiza a trilha inteira e brick-by-brick (tijolo por tijolo): construa uma peca, prove que funciona, so entao adicione a proxima. E o oposto de despejar tudo num arquivo gigante e torcer para dar certo.
Novo aqui? "Brick-by-brick" (literalmente "tijolo por tijolo") e a filosofia de construir software em pequenos blocos testaveis, um de cada vez. Cada bloco que voce entende e testa vira uma base solida para o proximo. O contrario โ colar 100 mil linhas que ninguem leu โ foi exatamente o problema dos sistemas inchados que vimos na Trilha 2.
Conceitos-chave
Canal + cerebro + soul + loop + 1 ferramenta. Nada a mais.
O menor Jarvis que ja "vive" e responde de verdade.
Construir e testar um tijolo antes de empilhar o proximo.
O ciclo pensa-age-responde, o coracao que ja vimos na Trilha 1.
๐ช Os 5 Build Levels
A receita minima diz o que entra. Os Build Levels dizem em que ordem. Sao cinco degraus, e a ordem importa: cada um so faz sentido se o anterior ja estiver funcionando. Voce nao da voz a um bot que ainda nao responde, nem cron a um bot que ainda nao tem memoria. Subir um degrau de cada vez transforma um projeto assustador em cinco tarefas pequenas e celebraveis.
Cada degrau so e seguro de subir quando o de baixo ja funciona. Em ambar, os niveis que voce monta agora (Foundation e Memory, neste modulo); em ciano, os que viram nas Trilhas 3 e 5 (voz, ferramentas) e fecham a cadencia (heartbeat).
Foundation โ ele responde
Bot do Telegram ligado a um modelo. Voce manda "oi", ele responde. So isso ja prova canal + cerebro + loop.
Memory โ ele lembra
Adiciona o soul.md (quem ele e) + um banco de conversas. Ele para de te tratar como estranho a cada mensagem.
Voice โ ele fala e ouve
Mensagens de audio entram (transcricao) e saem (voz). E a Trilha 5 โ opcional, decidido em runtime.
Tools / MCP โ ele age no mundo
Conecta ferramentas reais (e-mail, agenda, GitHub) via MCP. Foi a camada "Ferramentas" da Trilha 3.
Heartbeat โ ele age sozinho
Cron/routines fazem ele agir no horario ("resumo das 7h") mesmo com o laptop fechado. O salto para proativo.
๐ก Dica pratica
Neste modulo voce so monta os Levels 1 e 2. Resista a pular para voz ou ferramentas antes de ter um bot que responde e lembra. A maioria dos projetos que morrem tentou subir tres degraus de uma vez e tropecou.
Conceitos-chave
Os 5 degraus: Foundation, Memory, Voice, Tools/MCP, Heartbeat.
Cada degrau pressupoe o anterior funcionando.
So Levels 1 e 2 โ base solida antes de crescer.
Cada degrau e celebravel; mantem o projeto vivo.
๐๏ธ Level 1: Foundation (ele responde)
O primeiro degrau e o mais emocionante: a primeira vez que voce manda uma mensagem e a coisa responde. Foundation tem so tres pecas conectadas โ um canal (Telegram), um cerebro (um modelo) e o loop que liga os dois โ mais duas travas de seguranca que entram desde o minuto zero: a whitelist e o .env.
๐ Anatomia do Level 1
- โขCanal: um bot criado no
@BotFatherdo Telegram te da um token. Sem servidor web, sem porta aberta โ o bot busca mensagens por long-polling. - โขCerebro: um modelo na nuvem (Claude/GPT via chave de API) ou local (Ollama no seu PC). Um so.
- โขWhitelist: uma lista com o SEU chat ID. Mensagem de qualquer outra pessoa e ignorada em silencio.
- โข
.env: um arquivo onde ficam os segredos (token, chave de API). Nunca dentro do codigo, nunca no Git.
Novo aqui? Um .env ("dot env") e um arquivo de texto simples com pares CHAVE=valor que guarda segredos โ senhas, tokens, chaves de API. O programa le esses valores ao iniciar, mas eles ficam fora do codigo. Assim voce pode publicar o codigo sem vazar suas chaves. A whitelist ("lista branca") e o oposto de uma lista negra: so quem esta nela e atendido; todo o resto e bloqueado por padrao.
โ Foundation feito direito
- โToken e chave de API moram no
.env. - โWhitelist com o seu ID, ligada desde a 1a linha.
- โTelegram via long-polling: zero portas abertas.
- โUm unico modelo, comportamento previsivel.
โ Foundation feito errado
- โToken colado direto no codigo (e empurrado pro Git).
- โSem whitelist: qualquer um que achar o bot conversa com ele (na sua conta).
- โServidor web exposto so para "facilitar" โ porta aberta para a internet.
- โTres modelos e dez recursos antes do primeiro "oi" funcionar.
Os furos de seguranca da coluna vermelha nao sao hipoteticos: na Trilha 2 vimos que 42.665 instancias de um sistema popular ficaram expostas na internet, 93,4% sem nenhuma autenticacao. A whitelist e o .env nao sao "extras" โ sao parte do Level 1. Seguranca nao se adiciona no fim; ela nasce no primeiro tijolo.
Conceitos-chave
A "senha" do seu bot do Telegram, gerada com um comando.
O bot pergunta "tem mensagem?" โ sem servidor exposto, sem porta.
So o seu ID e atendido; o resto e ignorado em silencio.
Arquivo de segredos, fora do codigo e fora do Git.
๐ง Level 2: Memory (ele lembra)
O bot do Level 1 responde โ mas e amnesico. Feche a conversa e ele esquece tudo; pergunte de novo seu nome e ele nao sabe. Level 2 conserta isso com duas pecas: o soul.md, que diz quem ele e, e um banco SQLite, que guarda o que ja foi dito. Juntos, transformam um chatbot generico em seu assistente.
๐ชช Duas memorias, dois papeis
Nao confunda as duas. Uma e identidade (muda devagar, escrita por voce); a outra e historico (cresce sozinho a cada conversa).
- โข
soul.mdโ a alma: um arquivo Markdown injetado sempre no inicio (o system prompt). Nome, tom, valores, prioridades. "Sem o brain rewire, a arquitetura e so uma pasta." - โขSQLite โ o caderno: um banco de dados em um unico arquivo que guarda cada mensagem. Com indice FTS5/BM25, ele busca por palavra ("o que falamos sobre o projeto X?") em milissegundos.
Novo aqui? O system prompt e o "briefing" que o modelo le antes de qualquer conversa โ e onde o soul.md entra. SQLite e um banco de dados que cabe em um arquivo so (sem servidor, sem instalacao complicada) โ perfeito para um Jarvis pessoal. FTS5/BM25 e a "busca full-text" do SQLite: acha a mensagem certa pela palavra, como um Ctrl+F turbinado. Como tudo e arquivo de texto + um banco simples, a memoria "sobrevive ao hype": e so dados que voce le e leva com voce.
soul.md na pasta do projeto e cole o bloco abaixo, trocando as partes <assim> pelas suas.
# SOUL โ quem voce e
Voce e o <Nome-do-seu-Jarvis>, o assistente pessoal de <Seu-nome>.
## Tom de voz
- Direto, caloroso e sem enrolacao.
- Responde em <portugues-do-Brasil>.
- Quando nao sabe, diz "nao sei" em vez de inventar.
## Prioridades do dono
- <ex.: me ajudar a organizar o dia e escrever melhor>
## Como agir
- SEMPRE confirma antes de qualquer acao que mande mensagem ou apague algo.
- NUNCA compartilha meus dados com terceiros.
soul.md esta sendo lido. Pronto: Level 2 ganhou identidade.
๐ O que muda quando ele lembra
- โขPara de se reapresentar a cada mensagem โ sabe quem voce e.
- โขRetoma assuntos antigos: "como ficou aquele e-mail de ontem?".
- โขA memoria e so um arquivo โ voce pode ler, copiar, fazer backup e levar embora.
Conceitos-chave
A "ficha de personagem" injetada sempre no system prompt.
O briefing que o modelo le antes de cada conversa.
Banco de dados num arquivo so โ guarda o historico.
Busca por palavra dentro do historico, rapidissima.
๐ค Construir COM uma IA
Aqui esta a virada que torna tudo isso acessivel a um leigo: voce nao precisa escrever o codigo sozinho. Voce constroi o Jarvis conversando com uma IA de programacao โ Claude Code, Antigravity, Cursor. Em vez de digitar cada linha, voce descreve o que quer num prompt de inicializacao, e a IA gera o projeto tijolo por tijolo, com voce no comando.
A chave e dar um prompt bom: que fixe as decisoes de arquitetura desde o inicio (so Telegram, com whitelist e segredos no .env) para a IA nao "improvisar" um servidor web exposto ou colar mil dependencias. O prompt abaixo e o seu ponto de partida โ colavel direto no Claude Code.
<assim>.
Voce vai me ajudar a construir meu agente de IA pessoal, tijolo por
tijolo (brick-by-brick). Eu sou leigo: explique cada passo em
portugues simples e nao avance sem eu confirmar.
Stack e decisoes (NAO mude sem perguntar):
- Canal: SOMENTE Telegram, via long-polling. SEM servidor web,
SEM portas abertas.
- Cerebro: um unico modelo, provedor <anthropic | openrouter | ollama>.
- Seguranca: whitelist com o meu chat ID = <seu-chat-id>.
Qualquer outro remetente e ignorado em silencio.
- Segredos: token e chaves SO no arquivo .env (nunca no codigo,
nunca no Git). Crie um .gitignore que ignore .env.
Construa nesta ordem e pare para eu testar a cada etapa:
1. Level 1 (Foundation): bot que responde "oi" com a whitelist ativa.
2. Level 2 (Memory): adicione soul.md (injetado no system prompt)
e um SQLite que guarda o historico da conversa.
Comece pelo Level 1. Antes de escrever codigo, liste os arquivos
que vai criar e me explique cada um.
โ ๏ธ O erro a evitar
Pedir "me faz um Jarvis completo com voz, agenda, e-mail e dez plugins" de uma vez. A IA vai gerar um monte de codigo que voce nao entende nem testa โ exatamente o "100 mil linhas que ninguem le" da Trilha 2. Peca um Level por vez, leia o que ela explica, e so avance quando o tijolo atual passar no teste.
Conceitos-chave
Claude Code, Antigravity, Cursor โ escrevem o codigo com voce.
A descricao que fixa stack e seguranca antes da 1a linha.
So Telegram, whitelist, segredos no .env โ a IA nao improvisa.
Confirma cada etapa; entende cada tijolo que sobe.
๐งช Testar cada tijolo
"Brick-by-brick" so funciona se voce provar que cada tijolo segura peso antes de empilhar o proximo. A boa noticia: testar um Jarvis e simples e nao precisa de ferramenta nenhuma โ voce manda uma mensagem e olha a resposta. O segredo e ter, para cada Level, um teste de aceitacao: uma pergunta cuja resposta certa prova que aquele tijolo esta de pe.
O loop que sustenta o curso: constroi um tijolo, roda o teste de aceitacao, e so empilha o proximo se passar. Falhou? Volte e conserte โ nunca empilhe sobre um tijolo trincado.
โ Testes de aceitacao por Level
- L1Foundation: mande "oi" โ ele responde. De outro celular (fora da whitelist), mande "oi" โ ele ignora. Os dois precisam ser verdade.
- L2Memory: diga "meu nome e <Ana>". Em uma mensagem nova depois, pergunte "qual e o meu nome?". Ele acerta = a memoria funciona.
๐ก Dica pratica
Escreva o teste antes de pedir o tijolo. "O Level 1 esta pronto quando o bot responde so para mim" e um criterio claro โ voce sabe exatamente quando terminou e quando seguir. Sem criterio, todo projeto vira um "quase pronto" eterno.
Auto-checagem (opcional): qual e a ordem certa de montar seu primeiro Jarvis?
Conceitos-chave
A pergunta cuja resposta certa prova que o tijolo funciona.
Defina "pronto" antes de construir; evita o "quase pronto" eterno.
Confirmar que ela ATENDE voce e BLOQUEIA os outros.
Falhou um tijolo? Conserte antes de subir o proximo.
๐ฏ Resumo do modulo
Proximo modulo:
4-2 โ Arquitetura de uma solucao robusta (as 4 camadas C: Context ยท Connections ยท Capabilities ยท Cadence)