Nenhum assistente acerta de primeira
rysOS, o assistente executivo que estou treinando no meu Raspberry Pi
Eu queria um assistente executivo. Alguém que lesse a minha agenda, o meu e-mail, a ata da reunião de que acabei de sair e o áudio que gravei no carro, e que fizesse algo útil com tudo isso sem me pedir para abrir uma tela e dizer onde guardar cada coisa.
Ninguém começa um emprego sabendo como o chefe trabalha. Um assistente humano erra nas primeiras semanas, pergunta muito e vai entendendo aos poucos quem é quem, o que é urgente e o que pode esperar. Com um assistente de IA acontece o mesmo. Ele também não acerta de primeira, e o erro mais comum é esquecer isso e esperar um produto pronto.
Foi assim que tratei o rysOS. Ele lê as minhas fontes reais, o Google Calendar, o Gmail, a transcrição das reuniões e o meu diário falado, e escreve num cofre, que é como chamo a minha pasta de notas em arquivos de texto simples. Roda como serviço no meu Raspberry Pi e é só meu. O que mais importa nele é que aprende comigo. Eu corrijo, ele guarda a correção, e a ideia é que com o tempo precise de menos ajuda. O meu papel é acompanhar, corrigir e ensinar. Este texto conta como isso funciona na prática.
Um assistente que pergunta quando não sabe
A primeira coisa que exigi dele foi que nunca invente. Dê a um chatbot comum um convite de calendário sem descrição e peça a pauta da reunião. Ele devolve uma pauta plausível, bem escrita e falsa. Num registro que vai virar o meu histórico de decisões, isso é inaceitável. Então, quando o convite chega sem pauta, na prática com menos de quinze caracteres de descrição, o modelo nem é consultado. O resumo diz que o convite veio sem pauta. Fica mais seco, e eu prefiro assim.
Do mesmo jeito, quando uma transcrição cita uma pessoa, um projeto ou uma decisão que ele não consegue ligar com segurança a algo que já existe, ele pergunta. Abre uma nota de triagem, com uma linha para cada dúvida, e eu respondo no próprio Obsidian com uma palavra: NOVO para criar, "= Nome Exato" para ligar a uma nota que já existe, IGNORAR para descartar. Se a mesma pessoa está pendente em outras transcrições, a resposta vale para todas. Eu respondo uma vez, e ele não esquece.
Ele também guarda o que aprende. Registra os termos que se repetem e as vezes em que confirmo ou corrijo a forma como classificou uma mensagem, e volta a usar esse histórico nas próximas.
O dia dele
Às sete da manhã ele busca os eventos do dia e os e-mails novos e prepara, para cada reunião, um resumo do que se sabe sobre ela. Um boleto que vence hoje vira um foco no painel do dia, e os que vencem depois viram lembrete. A cada quinze minutos ele olha uma pasta. Quando eu largo ali a transcrição de uma reunião, ou o áudio do diário chega já transcrito, ele monta a ata, cria a nota e guarda o arquivo original.
Converso com ele pelo Telegram. Uma pergunta minha nunca vira nota, uma captura vaga recebe uma resposta em vez de virar rascunho, e "boleto pago" fecha o foco correspondente. Às onze da noite chega o balanço do dia.
O que ele aprendeu errando
Ele errou de formas que eu não esperava, e cada erro mudou o que ele faz hoje.
Por causa de dois nomes iguais, ele passou um dia e meio recriando as mesmas decisões a cada quinze minutos e deixou mais de 730 arquivos repetidos na pasta. Hoje um problema numa decisão não atrapalha as outras. Nesse ponto ele ainda não pegou o jeito por completo, porque o nome das decisões ainda pode colidir, e eu sigo de olho.
Em reuniões que chegavam pelas minhas outras contas de e-mail, ele não me reconhecia e criava um link para uma nota que não existia. Ninguém me avisou, e só reparei depois. Agora ele usa a lista completa dos meus e-mails.
Um relatório chegou a dizer que 26 das minhas 27 notas de recursos eram duplicadas. Fui olhar antes de juntar, e eram 26 notas diferentes com o mesmo nome. Juntar tudo teria apagado a coleção. Cada uma ganhou um nome novo. Esse erro era do relatório, e quem o pegou fui eu.
A varredura do cofre chegou a levar mais de 20 minutos por causa de uma configuração da conexão com o Google Drive. Ajustei, e hoje leva cerca de 11 segundos.
As regras que eu mantenho
Acompanhar um assistente é manter algumas regras que não mudam, mesmo quando relaxá-las parece melhor.
A estrutura, com pastas, campos e links, é sempre montada por código, e o modelo só escreve frases. Assim, quando uma nota sai errada, sei se o defeito foi no código ou numa frase da IA. A falta de informação conta como informação, e por isso ele diz que não sabe em vez de preencher a lacuna. Ele reconhece as coisas pelo que aconteceu de fato: uma reunião por data e participantes, um boleto por vencimento e credor, uma transcrição pelo conteúdo do arquivo. Por isso um e-mail reenviado, ou um arquivo largado duas vezes, nunca gera duas notas.
O cofre tem quatro áreas fixas: Negócios & Governança, Saúde & Vitalidade, Patrimônio & Finanças e Família & Relacionamentos. Com um vocabulário fechado, dá para perguntar "o que está pendente em Saúde" e receber a resposta completa. Nas notas de reunião, o que a máquina escreve fica no topo, e o que eu escrevo no corpo nunca é sobrescrito.
E o cofre é uma pasta de arquivos Markdown sincronizada com o Google Drive. Se o Obsidian sumisse amanhã, os arquivos continuariam onde estão, e qualquer IA, inclusive uma que ainda não existe, poderia lê-los.
O que ele não faz
Um assistente humano é melhor em tudo o que exige julgamento: negociar, ler uma sala, decidir o que não fazer. Se o seu gargalo é julgamento, contrate uma pessoa.
Um chatbot com plugins de agenda e e-mail é mais rápido de montar. Sem alguém supervisionando, ele um dia vai inventar algo plausível, e você só vai descobrir depois de usar o fato falso numa decisão real. As ferramentas no-code servem melhor a times. O rysOS é para uma pessoa só, com uma conta Google, um cofre e um usuário autorizado no Telegram. Isso é uma limitação de verdade.
O que esperar
Ele não decide por mim. O que ele faz é melhorar à medida que eu o acompanho. Uma reunião vira nota sem eu digitar. Uma pessoa citada em seis reuniões acumula o histórico na própria página, sem que eu tenha escrito esse histórico. Uma decisão registrada hoje é uma linha que vou reler daqui a três meses para saber se eu estava certo. Nada do que eu já soube se perde, nada do que ele não sabe é inventado, e tudo pode ser rastreado até a fonte.
Isso só continua valendo enquanto eu continuar olhando. Se eu parar de acompanhar, ele para de aprender e os erros voltam a passar sem ninguém ver. Escrevi este texto para lembrar disso: o rysOS é um assistente novo, e assistentes novos precisam de atenção e de tempo para pegar o jeito.
O código
O código está no GitHub, com o nome meOS: github.com/rodrigoyujisato/meOS. É aberto, com licença MIT. Nome, e-mails e caminhos viram configuração num arquivo .env, e o repositório não guarda nenhum dado meu. Para rodar você precisa de uma chave do Gemini e, se quiser que ele leia agenda e e-mail, de uma conta Google. O README traz o passo a passo, e o sistema fala português.
Obrigado, Luis
Luis Alt, obrigado pela provocação em explorar as possibilidades do Obsidian, que veio do seu LifeOS (luisalt.com/LifeOS). Admiro o profissional, com a sua história no Design de Serviço no Brasil e no mundo. Admiro ainda mais a pessoa, sempre gentil e brilhante.
Um abraço, Rodrigo