🧲 Recall semântico em ação
A frase que mostra o coach "lembrando" é sempre parecida: "da última vez que você jantou tarde, o recovery caiu pra 52% no dia seguinte". Ele não está adivinhando — toda mensagem sua virou uma linha com memória semântica, e quando você pergunta algo parecido com o passado, ele surfa esse histórico e traz o trecho relevante de semanas atrás.
🟢 Novo aqui? Três palavras antes de seguir
- Embedding (vetor) — é a sua frase virada em uma lista de números que captura o sentido, não as palavras exatas. "Posso comer doce hoje?" e "dá pra comer sobremesa?" caem perto no espaço, mesmo escritas diferente. No HealthOS quem gera é a OpenAI (a chave
OPENAI_API_KEY). - pgvector — uma extensão do Postgres (no seu Supabase) que guarda esses vetores e acha os mais "próximos" por similaridade. É o que a migration
0001_init.sqlliga. - Recall semântico — "buscar por significado". Em vez de procurar a palavra exata, o coach busca mensagens passadas com sentido parecido com o que você acabou de dizer.
📊 Como ler: da esquerda pra direita é a busca: a frase de hoje (ciano) vira vetor, o pgvector acha o passado mais parecido e o coach traz o padrão (roxo). Não é a última mensagem — é a mais relevante, ainda que de semanas atrás.
Na prática isso muda o tom: em vez de "evite jantar tarde" (genérico), vem "você já viu isso derrubar o seu número três vezes". O coach está surfando os seus próprios padrões — e é por isso que ele fica mais útil quanto mais semanas você acumula.
Conceitos-chave
Acha o passado parecido, não a palavra exata.
Frase vira números; o banco acha o mais próximo.
A frase que mostra a memória trabalhando.
Mais semanas = mais padrões para surfar.
📚 /advice — dica de expert reconciliada
Você viu um influencer dizer "jejum de 16h todo dia acelera a perda de gordura". O /advice pega essa dica, busca a fonte numa base de tips de experts (RAG, com citação) e — o pulo do gato — reconcilia com os seus números antes de devolver. A dica genérica vira "pra você, hoje, isto faz ou não sentido".
🟢 Novo aqui?
RAG (Retrieval-Augmented Generation) — "geração aumentada por busca". Em vez de responder de cabeça, o coach primeiro busca trechos reais (a dica do expert + a sua linha de dados) e só então escreve, citando de onde tirou. É o que evita o "achismo" e deixa a resposta rastreável.
▶️ Copie e rode — pedir o /advice sobre uma dica
Objetivo: ver o coach reconciliar uma dica de influencer aos seus dados, com a fonte citada.
# No Telegram, mande para o bot:
/advice <cole-aqui-a-dica-que-voce-ouviu>
# Ex.: /advice jejum de 16h todo dia acelera a perda de gordura
# Prefere terminal? advice.py é o único script que precisa de requests:
pip install requests
python3 agent/scripts/advice.py "jejum 16/8 acelera a perda de gordura"
💡 A diferença em uma frase
Um chatbot repete a dica do influencer. O /advice a confronta com os seus exames e genética — e te diz quando a dica famosa não serve para o seu corpo.
Conceitos-chave
Busca a fonte e cita de onde veio.
Confronta a dica com os seus números.
Única dependência fora da stdlib.
A saída é pergunta pro médico, não ordem.
💊 /supplements — stack ligado às suas flags
O /supplements não devolve a lista da moda. Ele devolve o seu cronograma, onde cada item está amarrado a uma risk flag vinda do seu DNA e dos seus exames. No design, cada marcador ou SNP mapeia para uma flag → um suplemento → um alvo no schema. É assim que o conselho é mecanismo-aware, não palpite.
🟢 Novo aqui?
Risk flag — uma "bandeira de risco" que o sistema acende quando um exame ou um gene seu pede atenção (ex.: sensível a gordura saturada, sensível a sal, vitamina D baixa, clearance de toxinas ruim). Cada flag puxa um suplemento ou um alvo no banco — é o elo entre o seu dado bruto e a ação.
📊 Como ler: os seus dados (ciano, à esquerda) acendem flags no meio; cada flag (setas roxas) puxa um item do stack à direita. Troque o seu DNA/exame e o stack muda — é por isso que ele é seu, não genérico.
▶️ Copie e rode — pedir o stack do dia
Objetivo: ver o cronograma de suplementos ligado às suas metas + risk flags, com o porquê de cada item.
# No Telegram, mande para o bot:
/supplements
# Quer conferir os dados crus que alimentam o stack?
python3 agent/scripts/db.py select goals
python3 agent/scripts/db.py select lab_results # <suas-flags-vêm-daqui>
Conceitos-chave
Cada suplemento tem uma razão rastreável.
As flags nascem do seu painel real.
Manhã / treino / noite, não uma lista solta.
Diz o porquê no seu corpo, não só "tome".
📈 Padrões ao longo do tempo
Porque tudo vira linha estruturada no banco, o coach não só reage à última mensagem — ele enxerga padrões ao longo de semanas. O insight que mais marcou o autor: o corpo é interconectado. Sono ruim sobe o cortisol, e o cortisol amplifica tudo — pressão, fome, recuperação. Foi o coach que mandou ele descansar — e ele tirou o primeiro rest day voluntário em meses.
📊 Como ler: da esquerda pra direita é a cascata (sono → cortisol → tudo piora); a linha tracejada roxa é o coach interrompendo o ciclo com um rest day. O insight só aparece porque a memória é estruturada e enxerga a semana inteira.
Semana 1 — pontos soltos
Cada dia é só um número. Recovery sobe e desce sem explicação aparente.
Semana 2 — o coach liga os pontos
"Nas noites de sono < 6h, o seu recovery cai no dia seguinte." A memória estruturada virou correlação.
Insight — o corpo é interconectado
Sono ruim → cortisol alto → tudo piora. O coach passou a dizer quando puxar e quando descansar. Resultado: o primeiro rest day voluntário em meses.
💡 Por que isso só funciona com memória estruturada
Um padrão é uma correlação ao longo do tempo. Sem linhas estruturadas (sono, recovery, BP, comida) gravadas dia após dia, não há o que correlacionar — você só teria a última mensagem. A memória é o produto.
Conceitos-chave
Sono mexe no cortisol que mexe em tudo.
Puxa pressão, fome e queda de recovery.
Semanas, não só a última mensagem.
Descansar virou decisão guiada por dado.
📝 Ajustar o CLAUDE.md
O CLAUDE.md é o cérebro do coach — perfil, metas, estilo e os padrões que você já aprendeu sobre si. Conforme o uso revela coisas novas (como a cascata do sono do tópico 4), você volta lá e edita. Foi assim que o autor deixou o coach "savage" de propósito: ele não responde a lembrete educado, então pediu que o coach cobrasse energia e check-ins na marra.
▶️ Copie e rode — ensinar um padrão novo ao coach
Objetivo: registrar no cérebro do coach um padrão que você descobriu e o estilo que você quer.
# Abra o cérebro do coach e cole no fim:
# agent/CLAUDE.md
## Estilo do coach
- Seja direto e "savage": me cobre energia e check-ins.
Não respondo a lembrete educado.
## Padrões que eu já aprendi
- Jantar depois das 20h derruba meu recovery no dia seguinte.
- Café só 90 min após acordar; nada de cafeína após as 14h.
- <cole-aqui-o-seu-próximo-padrão>
CLAUDE.md preenchido tem perfil real — nunca versione no git.
🔁 É um loop, não uma config única
O coach revela um padrão → você confirma → você grava no CLAUDE.md → ele passa a usar daí pra frente. Quanto mais você ensina, mais ele soa como você conhecendo o seu corpo.
Conceitos-chave
CLAUDE.md guarda perfil, metas e estilo.
Aprendeu algo? Grava lá e o coach usa.
Defina o tom: do gentil ao implacável.
Perfil real preenchido nunca é versionado.
⚖️ Influencer × os seus números
A regra de ouro do design: o dono dos dados sempre vence. Qualquer dica externa — por mais famoso que seja quem disse — é reconciliada contra os seus números. Quando a dica genérica bate de frente com o seu exame, o seu exame ganha.
✗ Conselho genérico de influencer
- ✗"Todo mundo deveria tomar 5g de creatina e cortar sal." — igual pra 10 milhões de pessoas.
- ✗Não sabe que você é sensível a sal (sobe 10-15% a pressão num almoço salgado).
- ✗"Café o dia todo te mantém produtivo." — sem ver o seu gene de cafeína nem a sua hidratação.
✓ Reconciliado aos seus dados
- ✓"A dica existe, mas o seu painel pede atenção ao sal — vamos pelo seu número."
- ✓"Você metaboliza cafeína rápido: 1 café cedo, corta à tarde — o resto era sede."
- ✓Cita a fonte da dica E mostra o seu dado lado a lado, para você decidir com o médico.
🧬 Genes são botões, não destino
O DNA do autor sinalizou sensibilidade a gordura saturada, a sal, clearance de toxinas ruim e intolerância a lactose. O coach constrói em cima dessas flags — em vez de repetir conselho genérico. É o oposto de seguir o influencer da semana.
Conceitos-chave
A dica externa cede ao seu número.
Ajustam a dose; não são sentença.
Dica citada + seu exame, para você decidir.
Specific beats generic, sempre.
🩺 Quando ignorar o coach
O coach é uma ferramenta de registro e raciocínio, não um médico. Toda essa memória e personalização não transformam o coach em autoridade clínica. Há momentos em que a resposta certa é fechar o Telegram e ligar para um profissional.
⚠️ Alerta vermelho — pare e procure um clínico
- •Qualquer sintoma agudo (dor no peito, falta de ar, pressão muito alta). O coach não diagnostica e é instruído a encaminhar.
- •Mudar suplemento ou — jamais — medicação. Ele não toca em medicação; interações são assunto de médico/nutricionista.
- •A IA pode alucinar: afirmar com confiança algo errado ou inventar um número. Trate toda sugestão como pergunta para levar ao médico.
- •Amostras de DNA enviadas pelo correio degradam — o painel da clínica e o do Ancestry podem não bater. Não decida nada com base num único laudo.
✓ Uso saudável do coach
- ✓Registrar, ver tendência e formular perguntas melhores para o seu médico.
- ✓Levar o plano a um clínico antes de seguir — como o autor fez a cada passo.
- ✓Tratar a saída como hipótese a verificar, não ordem a cumprir.
✗ Seguir cegamente
- ✗Tomar dose nova só porque o coach sugeriu, sem clínico no loop.
- ✗Ignorar um sintoma porque "o recovery estava verde".
- ✗Confundir personalização com diagnóstico — são coisas diferentes.
✅ Auto-checagem (opcional): o coach sugeriu uma dose nova de suplemento. Qual é a atitude certa?
Conceitos-chave
Verifique tudo com um clínico.
Confiante e errado é possível.
Encaminha; não mexe em medicação.
Pergunta para o médico, não prescrição.
📋 Resumo do módulo
Próximo módulo:
3.4 — Dashboard e acompanhamento: o painel de tendências, o card de Sleep & Recovery e como ler as semanas de uma vez.