πͺͺ Identidade β memoria, persona e quem ele e
Um modelo sem identidade responde como um estranho educado: util, mas sem alma, sem memoria e sem saber quem voce e. Esta camada da ao Jarvis um caracter (como ele fala e o que valoriza), um contrato (o que faz e o que nunca faz), um perfil seu, e uma memoria que sobrevive ao fechar a conversa β alem de decidir quem ele atende. Sem isso, "a arquitetura e so uma pasta".
π SOUL.md, a alma
Imagine que voce vai apresentar um novo assistente a um colega. Voce diria: "ele e direto, nao enrola, valoriza privacidade, prefere bullet points a paragrafos enormes e te chama pelo nome". Essa ficha de personagem existe de verdade: e um arquivo de texto chamado SOUL.md (em alguns projetos, CLAUDE.md). Dentro dele voce escreve, em portugues comum, a personalidade, os valores, o tom de voz e as prioridades do dono.
A mecanica e simples e poderosa: esse texto e injetado SEMPRE no system prompt β ou seja, ele entra no comeco de toda conversa, antes mesmo de voce digitar. Por isso o Jarvis nunca "esquece" quem ele e. Sem esse arquivo, a arquitetura toda β canais, ferramentas, memoria β fica sem alma. Como diz o ecossistema: "sem o brain rewire, a arquitetura e so uma pasta". O SOUL.md e o "religar o cerebro".
Novo aqui? O system prompt e uma instrucao invisivel que vai junto com toda mensagem para o modelo, definindo o "papel" dele antes de qualquer pergunta sua. SOUL.md e so um arquivo de texto (formato Markdown, o .md) cujo conteudo e colado nesse system prompt. Voce edita o caracter do Jarvis editando um arquivo β nada de programar.
soul.md na pasta do agente, trocando as partes entre < > pelas suas.
# SOUL.md β quem eu sou
## Identidade
Meu nome e <Jax>. Sou o assistente pessoal de <seu-nome>.
## Tom de voz
- Direto e caloroso. Sem enrolacao, sem floreio corporativo.
- Respondo em <portugues do Brasil>, na 1a pessoa.
- Prefiro bullets curtos a paragrafos longos.
## Valores (o que me guia)
- Privacidade primeiro: nunca exponho dados de <seu-nome> sem pedir.
- Honestidade: se nao sei, digo "nao sei" em vez de inventar.
- Explico o raciocinio, nao so a resposta.
## Prioridades do dono
- Economia de tempo > completude. Va direto ao ponto.
- Quando houver risco (apagar, gastar, enviar), eu confirmo antes.
𧬠O que entra num bom SOUL.md
- β’Identidade: nome, papel ("assistente pessoal de X").
- β’Tom de voz: caloroso/seco, formal/casual, idioma, tamanho das respostas.
- β’Valores: privacidade, honestidade, "explica o raciocinio".
- β’Prioridades do dono: rapidez x completude, quando confirmar antes de agir.
Conceitos-chave
A ficha de personagem do Jarvis: personalidade, tom e valores em texto.
A instrucao invisivel injetada no inicio de toda conversa.
"Religar o cerebro": dar carater ao modelo via SOUL.md.
Formato de texto simples, legivel por humano e por maquina.
π AGENTS.md, o contrato
Se o SOUL.md responde "quem ele e", o AGENTS.md responde "o que ele FAZ e o que NUNCA faz". E um contrato de comportamento, escrito como duas listas claras: SEMPRE e NUNCA. A regra de ouro aqui e: regras explicitas vencem esperar que o modelo adivinhe. O modelo nao le sua mente β se voce nao escrever "nunca apague arquivos sem confirmar", em algum momento ele pode achar que apagar e a coisa util a fazer.
Pense no AGENTS.md como o manual do funcionario novo. Voce nao espera que ele "sinta" as regras da casa β voce as escreve. Quanto mais sensiveis as acoes que o Jarvis pode tomar (mandar e-mail, gastar dinheiro, rodar comandos), mais o contrato importa. Em muitos projetos, o AGENTS.md/CLAUDE.md tambem funciona como um roteador: e o primeiro arquivo lido no inicio da sessao, e aponta para onde estao as outras regras e memorias.
AGENTS.md ao lado do soul.md.
# AGENTS.md β o contrato
## SEMPRE
- Confirmar ANTES de qualquer acao que envie, apague ou gaste (<e-mail>, <arquivo>, <dinheiro>).
- Citar a fonte quando trouxer um dado ("segundo <sua-agenda>...").
- Responder so a <seu-user-id>; ignorar qualquer outro em silencio.
- Quando errar, admitir e corrigir.
## NUNCA
- Nunca executar comando de shell perigoso sem pedir confirmacao.
- Nunca expor <secrets> (chaves, senhas, tokens) na resposta.
- Nunca inventar fato que nao esta na memoria ou nas ferramentas.
- Nunca enviar mensagem em nome de <seu-nome> sem ele aprovar.
β Regras explicitas
- βComportamento previsivel: voce sabe o que esperar.
- βAcoes perigosas pedem confirmacao por padrao.
- βFaceis de auditar: estao num arquivo que voce le.
β "Deixa o modelo adivinhar"
- βComportamento imprevisivel, muda a cada versao do modelo.
- βAcao destrutiva pode acontecer "achando que ajuda".
- βSem registro do porque ele fez o que fez.
Conceitos-chave
O contrato de comportamento: listas SEMPRE / NUNCA.
Escrever o limite vence esperar que o modelo infira.
Acoes que enviam/apagam/gastam pedem "ok?" antes.
O 1o arquivo lido na sessao, que aponta para o resto.
π€ USER / perfil β quem e voce
SOUL.md diz quem o Jarvis e. AGENTS.md diz o que ele faz. Falta a terceira pe da identidade: quem e VOCE. E o arquivo USER.md (ou um bloco "perfil do dono"). Sem ele, o Jarvis te trata como um desconhecido qualquer β precisa perguntar seu nome toda vez, nao sabe seu fuso, nao sabe que voce odeia respostas longas. Com ele, a conversa ja comeca no segundo passo, nao no zero.
O perfil reune fatos estaveis sobre voce: nome, como prefere ser chamado, idioma, fuso horario, contexto (trabalho, projetos), e preferencias (formato das respostas, nivel de detalhe). E o que transforma "responde como um estranho" em "responde como alguem que te conhece". No ecossistema, esse trio SOUL / AGENTS / USER e a base da identidade β tres arquivos de texto, nenhuma linha de codigo.
π O trio da identidade, lado a lado
- β’SOUL.md β quem o Jarvis e (personalidade, tom, valores).
- β’AGENTS.md β o que ele faz e nao faz (SEMPRE / NUNCA).
- β’USER.md β quem voce e (nome, contexto, preferencias).
Os tres entram no system prompt. Juntos, formam a "identidade" da camada que voce esta estudando.
Os tres arquivos nao falam direto com o modelo: eles sao colados no system prompt, a instrucao invisivel que abre toda conversa. So entao o LLM pensa β e a resposta sai com identidade, em vez de generica. Trocar o caracter do Jarvis = editar esses arquivos.
Conceitos-chave
Fatos estaveis sobre voce: nome, fuso, contexto, preferencias.
A base da identidade β tres arquivos, nenhuma linha de codigo.
Sem perfil, ele te trata como desconhecido toda vez.
Formato e nivel de detalhe que voce gosta nas respostas.
π§ Memoria que dura
Aqui esta uma verdade que surpreende quem chega: por padrao, o Jarvis esquece tudo ao fechar a conversa. A janela de contexto (a "memoria de trabalho" do modelo, que vimos na Trilha 1) e como a RAM do computador: limitada e volatil β desliga, apaga. Para o assistente lembrar do seu aniversario, da decisao da semana passada ou de como voce gosta do cafe, precisamos de memoria persistente: algo que sobrevive ao reinicio.
A solucao do ecossistema e elegante e dura: arquivos .md + um indice de busca. Os fatos viram texto em arquivos legiveis (a "verdade" mora ali). Para achar o fato certo rapido, usa-se um indice. Ha duas familias de busca, e vale conhecer as duas:
π€ Busca por palavra (FTS5/BM25)
Procura os termos exatos que voce digitou. "cafe" acha notas com a palavra "cafe".
- β’Roda dentro do SQLite (um banco que e so um arquivo).
- β’Leve, rapida, sem nuvem.
π§² Busca por significado (vetorial)
Acha por sentido, nao por palavra. "bebida quente da manha" pode trazer a nota do cafe.
- β’Usa um banco vetorial (ex.: pgvector, Pinecone).
- β’Mais poderosa, um pouco mais pesada.
Novo aqui? FTS5 e o "Full-Text Search v5" do SQLite β busca de texto embutida no banco. BM25 e a formula que ordena os resultados por relevancia (quanto melhor a nota bate com sua busca, mais no topo ela aparece). Um banco vetorial guarda o "significado" de cada texto como numeros, e busca por proximidade de sentido. Voce nao precisa programar isso β os projetos ja vem com a memoria montada.
πΎ Por que arquivo + indice (e nao "so um banco")
Os arquivos .md sao a fonte da verdade: voce os le, edita e versiona com olhos humanos. O indice (SQLite/vetorial) e so um atalho de busca reconstruivel a partir dos arquivos. Por isso a memoria "sobrevive ao hype": no fim, e so texto.
Na Trilha 3, modulo 3-6 ("Cerebros"), essa memoria ganha organizacao em zonas (Projeto, Self, Conhecimento). Aqui basta entender: conversa esquece; arquivo + indice lembra.
Conceitos-chave
O que sobrevive ao fechar a conversa β guardado em arquivo.
Indice de busca por palavra, leve e local (um arquivo so).
Busca por significado, nao por termo exato.
Os .md sao a fonte; o indice e atalho reconstruivel.
π Identidade = autenticacao tambem
Identidade nao e so personalidade β e tambem quem ele atende. Um Jarvis que responde a qualquer um que mande mensagem nao e seu assistente: e um assistente publico, exposto ao mundo. Por isso "quem ele e" inclui uma trava de seguranca: a whitelist (lista de permitidos). So o SEU ID e atendido; qualquer outro e ignorado, em silencio.
A segunda parte e onde moram os segredos. Chaves de API, tokens do Telegram, senhas β nada disso fica espalhado no codigo ou no SOUL.md. Vai tudo para um arquivo .env (de "environment", ambiente), que nunca e compartilhado nem versionado em publico. Pense no .env como o cofre: o Jarvis usa as chaves, mas elas nunca aparecem na conversa nem vazam num print.
β οΈ O furo classico (liΓ§Γ£o real do ecossistema)
Um dos maiores sistemas pessoais de IA teve 42.665 instancias expostas na internet, 93,4% sem nenhuma autenticacao. TraduΓ§Γ£o: dezenas de milhares de "assistentes pessoais" que qualquer estranho podia comandar. A causa raiz nao foi um bug exotico β foi falta da trava mais basica: whitelist + sem porta aberta.
Por isso canais como o Telegram (long-polling, sem servidor web exposto) + whitelist + secrets no .env sao o caminho seguro. Identidade e seguranca andam juntas.
Chega uma mensagem
O canal recebe um texto. O primeiro passo nao e responder β e perguntar "de quem e isto?".
Confere a whitelist
O ID esta na lista de permitidos? Se nao, a mensagem e descartada em silencio β sem nem dar pista de que existe um bot ali.
So entao usa os secrets
Sendo voce, o Jarvis busca as chaves no .env e age. Os segredos nunca aparecem na resposta.
Novo aqui? Whitelist = lista de quem PODE (o oposto de blacklist). Secret = um dado sensivel (chave, senha, token). .env = um arquivinho de texto onde os secrets ficam guardados, fora do codigo e fora do que se publica. Autenticacao = provar "sou eu mesmo" antes de ser atendido.
Conceitos-chave
So o seu ID e atendido; o resto e ignorado em silencio.
O cofre das chaves β nunca no codigo, nunca na resposta.
"Quem ele atende" faz parte de "quem ele e".
Um dono so β sem servidor publico exposto.
π Personas intercambiaveis
A ultima ideia desta camada e a mais divertida: o mesmo Jarvis pode ter varios modos. De dia, o "modo trabalho" β seco, focado, sem rodeios. A noite, o "modo historinha" β caloroso, lento, cheio de imaginacao para a crianca. E o mesmo cerebro, a mesma memoria, os mesmos canais. O que muda e a persona ativa: qual SOUL/perfil esta no system prompt naquele momento.
Na pratica, voce mantem varios arquivos de alma β soul-trabalho.md, soul-estudo.md, soul-historinha.md β e troca qual deles e carregado. Trocar de persona = trocar de SOUL.md ativo. Isso liga diretamente a Trilha 6, onde o Jarvis vira um tutor para criancas com "modo licao de casa" e "modo historinha", e a Trilha 4, onde voce monta o mecanismo de troca.
O nucleo (cerebro, memoria, canais) e sempre o mesmo. O que troca e qual arquivo de alma esta ativo: hoje "trabalho" (seco e focado), de noite "historinha" (caloroso). Trocar de persona = trocar de SOUL.md ativo β sem mexer em nada do resto.
ποΈ Tres modos, um so Jarvis
- β’Modo trabalho: direto, bullets, zero floreio.
- β’Modo estudo: socratico, faz perguntas, nao entrega tudo pronto.
- β’Modo historinha: caloroso, imaginativo, voz suave para a crianca.
Auto-checagem (opcional): qual e a forma mais fiel de descrever a "identidade" do Jarvis?
Conceitos-chave
Um "modo" do Jarvis, definido por um SOUL/perfil.
Qual SOUL.md esta carregado no system prompt agora.
Cerebro, memoria e canais nao mudam β so a persona troca.
Mudar de modo e trocar qual arquivo de alma carrega.
π― Resumo do modulo
Proximo modulo:
Modulo 3-3: Ferramentas β as maos do Jarvis (tools + MCP)