x

Palavras desta nota (2)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.

Este jardim gira em torno de uma pergunta: quando uma IA responde perguntas sobre uma pasta de notas, vale montar um sistema de busca com índice (um RAG) ou basta a busca por palavras que ela já tem (o Grep)?

Mandei o Claude testar isso nas minhas notas de um RPG de mesa. Aqui estão as respostas que tirei, os números que as sustentam e um roteiro para você conferir no seu caso. Cada resposta é uma nota, e o selo mostra o quanto ela já está provada.

Se você tem 1 minuto

Leia a resposta curta.

As respostas

Como eu sei

Como foi feito

O que ainda não sei

x

Palavras desta nota (8)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
vault
A pasta de notas do Obsidian. O meu tem 72 notas do mundo de um RPG de mesa, cerca de 66 mil tokens.
token
O pedaço de texto que a IA conta. Quanto mais tokens, mais cota se gasta.
cota
Quantos tokens o Claude usa. Nas conversas, conto tudo o que ele lê em cada passo; nos testes de 10 perguntas, o tamanho que a conversa dele tinha no fim.
pedaço
Cada parte de uma nota que a busca devolve. Normalmente 12; na repetição, 20.
busca por palavra (BM25)
Procura as palavras da pergunta nas notas e dá mais peso às palavras raras.
regra fixa
Uma linha permanente que manda a IA dizer de qual nota veio cada informação.

Estes são os quatro casos em que eu pensaria em montar um RAG. O primeiro mandei medir, em um cenário só; os outros três são hipóteses.

  • Você conversa muito com a IA sobre as mesmas notas. Mandei medir isso na conversa da missão do meu RPG: repetida 3 vezes por jeito, o RAG gastou 36% menos cota que o Grep, e 40% menos com 4 pedaços, com o mesmo acerto (cota). Nas perguntas soltas aconteceu o contrário: gastou de 33% a 66% mais.
  • A IA que você usa não tem ferramenta de busca nas notas. Sem o Grep, o RAG deixa de ser um extra e passa a ser o único jeito de a IA procurar.
  • A base chega a milhões de tokens. Mandei medir até 400 mil, que é 6 vezes o meu vault: o Grep manteve o acerto, o gasto e o tempo (base maior). Acima disso eu não sei.
  • As suas perguntas usam palavras que não estão nas notas. A busca feita à mão, que junta palavra e sentido, achou 79 de cada 100 notas nessas perguntas, contra 36 da busca por palavra sozinha (busca sozinha). Mas na resposta final o Grep acertou 15 a 16 de 18 e o RAG, 16 de 18 (acerto).

Fora desses quatro casos, o que mandei medir diz o contrário: em perguntas avulsas, em 72 notas, com a IA tendo busca, o Grep com a regra fixa de fonte deu o mesmo acerto com menos cota e menos tempo. Se você não tem certeza em qual caso está, dá para medir.

x

Palavras desta nota (9)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
Claude e Claude Code
O Claude é a IA que responde. O Claude Code é o programa em que ele trabalha com os meus arquivos.
token
O pedaço de texto que a IA conta. Quanto mais tokens, mais cota se gasta.
cota
Quantos tokens o Claude usa. Nas conversas, conto tudo o que ele lê em cada passo; nos testes de 10 perguntas, o tamanho que a conversa dele tinha no fim.
cópia do Claude
Uma cópia do Claude que faz uma tarefa sozinha, sem ver o gabarito.
“já tem algo sobre X?”
Pergunta em que eu quero saber se um personagem ou uma missão já existe nas notas.
servidor
Um programa pequeno que fica ligado no meu computador e mantém o modelo de busca na memória, para a busca responder em menos de 1 segundo.
skill
Um roteiro que o Claude Code segue quando eu o chamo, como /rag.

Este é o roteiro que eu segui, e que automatizei na skill /rag. Ele compara as opções com as suas perguntas e mostra os números para você escolher.

  1. Descubra o tamanho da base. Conte os tokens (o número de caracteres dividido por 4 dá uma estimativa). Se a base tem menos de 200 mil tokens, ela cabe inteira no pedido, e colar tudo também entra na comparação.
  2. Escreva de 10 a 18 perguntas no seu jeito de perguntar: curtas e soltas. Misture perguntas diretas, perguntas sem nenhuma palavra da nota, “já tem algo sobre X?” (inclusive de coisa que não existe) e perguntas que ligam várias notas. Escreva antes qual é a nota certa de cada uma.
  3. Monte as opções: só o Grep; o Grep com uma linha pedindo a fonte; o RAG; e colar tudo, se couber.
  4. Faça as mesmas perguntas a cada opção, sem ela ver a nota certa (uma cópia do Claude por opção). Anote os acertos, os tokens, o tempo e quantas buscas cada uma fez.
  5. Teste também uma base maior, com o dobro e 6 vezes o tamanho, se puder. A vantagem do RAG em base grande não é óbvia: no meu caso não apareceu até 400 mil tokens.
  6. Confira a fonte sem pedi-la no texto da pergunta. No meu caso, uma linha de regra igualou o Grep ao RAG.
  7. Confira à mão o que a IA juíza marcar como erro. No meu caso, 2 de 13 marcadas eram erro dela.
  8. Olhe o custo de manter. O Grep não exige nada. O RAG exige índice, modelo local, servidor e atualização.
  9. Escolha vendo os números. A escolha é sua.

Cuidados que aprendi: o tempo do RAG só vale com o servidor ligado antes, e o teste de fonte só vale se a pergunta não pedir a fonte. Os números do meu caso estão em acerto, fonte sem pedir, cota e base maior.

Pesquisa em andamento08/11/2026broto

O RAG vale a pena?

Palavras desta nota (5)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
Claude e Claude Code
O Claude é a IA que responde. O Claude Code é o programa em que ele trabalha com os meus arquivos.
token
O pedaço de texto que a IA conta. Quanto mais tokens, mais cota se gasta.
cota
Quantos tokens o Claude usa. Nas conversas, conto tudo o que ele lê em cada passo; nos testes de 10 perguntas, o tamanho que a conversa dele tinha no fim.

Uso o Claude Code para consultar as 72 notas do mundo do meu RPG de mesa. Pedi a ele que medisse o que muda quando consulta as notas por RAG (uma busca com índice) em vez de buscar por palavras com o Grep. Tudo grátis e local.

Resposta curta: o acerto empata. Em conversa, que é como eu uso o Claude, o RAG gastou de 6% a 36% menos cota que o Grep; em pergunta solta, gastou mais e demorou mais. A fonte por padrão também sai com uma linha de regra no Grep. Falta medir o trabalho de manter o RAG e o teste de dia a dia.

Em andamento

Falta o teste de dia a dia, de 1 a 2 semanas. Esta página será atualizada quando ele terminar.

01As opções, lado a lado

Fichas dos três jeitos de consultar

Palavras desta nota (4)
vault
A pasta de notas do Obsidian. O meu tem 72 notas do mundo de um RPG de mesa, cerca de 66 mil tokens.
token
O pedaço de texto que a IA conta. Quanto mais tokens, mais cota se gasta.
cota
Quantos tokens o Claude usa. Nas conversas, conto tudo o que ele lê em cada passo; nos testes de 10 perguntas, o tamanho que a conversa dele tinha no fim.
cópia do Claude
Uma cópia do Claude que faz uma tarefa sozinha, sem ver o gabarito.

Cada ficha reúne o que foi medido. Escolha um cenário para ver cota e tempo. Campo tracejado e em itálico é o que não foi medido.

Vault do RPG: 72 notas, cerca de 66 mil tokens (estimativa). As bases de 150 e 400 mil misturam as notas do RPG com notas reais de outros assuntos.

x

Palavras desta nota (5)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
gabarito
A nota certa de cada pergunta, escrita antes do teste.
cópia do Claude
Uma cópia do Claude que faz uma tarefa sozinha, sem ver o gabarito.
erros de propósito
Erros colocados nas perguntas (uma premissa falsa, nomes parecidos) para ver se a IA cai.

Mesmas perguntas para os dois jeitos, com cópias do Claude que não viam o gabarito.

x

Palavras desta nota (4)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
token
O pedaço de texto que a IA conta. Quanto mais tokens, mais cota se gasta.
pedaço
Cada parte de uma nota que a busca devolve. Normalmente 12; na repetição, 20.
palavras diferentes
Pergunta que não usa nenhuma palavra da nota. Exemplo: “quem briga com papel em vez de espada?” para uma nota sobre um advogado.

O RAG trabalha em duas etapas, uma depois da outra. Na 1ª, a busca escolhe alguns pedaços das notas. Na 2ª, a IA lê só esses pedaços e responde. Se a nota certa não estiver entre os pedaços escolhidos, a IA nem chega a ver essa nota, e costuma responder “não consta”. Por isso mandei medir a 1ª etapa separada, sem a IA.

Como mandei medir: 46 perguntas, cada uma com a nota certa anotada antes. Exemplo: para “quem é a Lívia?”, a nota certa é a da Lívia. Se ela veio entre os pedaços que a busca devolveu, conto 1 acerto.

Quantos pedaços a busca devolve

Quanto mais pedaços, mais vezes a nota certa vem. O custo é que a IA tem mais texto para ler.

Com 12 pedaços, que é o normal, a nota certa vem em 86 de cada 100 perguntas. Se a IA responde “não consta”, o RAG repete a busca com 20 pedaços. Para perguntas sobre um assunto só, 8 pedaços bastam; as que juntam várias notas precisam de 20.

Quando a base cresce

Repeti a medida, sempre com 12 pedaços, em bases maiores (as notas extras são de outros assuntos). Há dois tipos de pergunta: as comuns, que usam palavras que estão na nota, e as de palavras diferentes, que não usam nenhuma, como “quem briga com papel em vez de espada?” para a nota de um advogado.

BasePerguntas comunsPalavras diferentes
66 mil tokens (a minha)89 de cada 10079 de cada 100
150 mil tokens88 de cada 10064 de cada 100
400 mil tokens88 de cada 10057 de cada 100

Nas perguntas de palavras diferentes a busca perde com a base maior; nas comuns quase não muda. Cada grupo tem poucas notas: 2 notas a mais ou a menos mudam 14 pontos.

x

Palavras desta nota (4)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
mensagens soltas
Mensagens curtas, escritas como eu escrevo para o Claude, sem dizer qual nota procurar nem como responder.
regra fixa
Uma linha permanente que manda a IA dizer de qual nota veio cada informação.

Seis perguntas soltas, nenhuma menção a fonte. De cada 100 afirmações, quantas vieram com a nota de origem.

O RAG já manda citar a fonte dentro do próprio comando. O Grep só cita se houver uma regra fixa. A fonte conferiu em 98% (RAG) e 100% (Grep com regra).
JeitoAfirmações com fonteA fonte confere
Grep puro, sem pedir0 de 46não se aplica
RAG, sem pedir46 de 4745 de 46
Grep com a regra fixa36 de 3636 de 36
Regra permanente: sempre diga de qual nota veio cada informação.

x

Palavras desta nota (12)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
vault
A pasta de notas do Obsidian. O meu tem 72 notas do mundo de um RPG de mesa, cerca de 66 mil tokens.
token
O pedaço de texto que a IA conta. Quanto mais tokens, mais cota se gasta.
cota
Quantos tokens o Claude usa. Nas conversas, conto tudo o que ele lê em cada passo; nos testes de 10 perguntas, o tamanho que a conversa dele tinha no fim.
mensagens soltas
Mensagens curtas, escritas como eu escrevo para o Claude, sem dizer qual nota procurar nem como responder.
pedaço
Cada parte de uma nota que a busca devolve. Normalmente 12; na repetição, 20.
erros de propósito
Erros colocados nas perguntas (uma premissa falsa, nomes parecidos) para ver se a IA cai.
palavras diferentes
Pergunta que não usa nenhuma palavra da nota. Exemplo: “quem briga com papel em vez de espada?” para uma nota sobre um advogado.
“já tem algo sobre X?”
Pergunta em que eu quero saber se um personagem ou uma missão já existe nas notas.
servidor
Um programa pequeno que fica ligado no meu computador e mantém o modelo de busca na memória, para a busca responder em menos de 1 segundo.
ajustado
O RAG depois dos ajustes medidos: fusão por posição, aviso de nota vazia e regra de repetir a busca.

Aviso antes dos números: contei a cota de dois jeitos, e eles não se misturam. Nas conversas, somei tudo o que o Claude leu em cada passo, inclusive o que já estava na conversa (isso se repete a cada passo). Nos testes de 8 a 10 perguntas, usei o tamanho que a conversa dele tinha no fim. Para ter uma régua: colar o vault inteiro (66 mil tokens) no pedido gastou 182.710 tokens num teste de perguntas. No gráfico, barra à esquerda: o RAG gastou menos. Barra à direita: gastou mais.

A diferença muda com o tipo de uso. Depende de quantas buscas o assistente faz, e isso depende da instrução que ele recebe. As duas últimas linhas são as perguntas “já tem algo sobre X?” e as de palavras diferentes (sem nenhuma palavra da nota).

As porcentagens escondem a base. Os mesmos testes, com os tokens. Eu uso o Claude principalmente em conversas longas, por isso elas vêm primeiro.

Em conversa

TesteTokens: Grep → RAGDiferença
Conversa numa missão, 3 vezes~551 mil → ~352 mil por mensagem, somando cada passo−36%
Conversa numa missão, 1ª medida (2 conversas)~395 mil → ~304 mil por mensagem, somando cada passo−23%
11 conversas com erros de propósito (64 mensagens)~200 mil → ~188 mil por mensagem, somando cada passo−6%

Em pergunta solta

TesteTokens: Grep → RAGDiferença
Base de 400 mil, pergunta solta~93 mil → ~124 mil no fim do teste de 10+33%
Base de 150 mil, pergunta solta~84 mil → ~133 mil no fim do teste de 10+59%
“Já tem algo sobre X?” (RAG ajustado)~70 mil → ~111 mil no fim do teste de 8+59%
Palavras diferentes (RAG ajustado)~87 mil → ~144 mil no fim do teste de 10+66%

Por que o sinal muda? O que os dados mostram:

  • Todo teste começa com cerca de 45 mil tokens de texto fixo, igual nos dois jeitos (conferi nos quatro testes de base grande). O que muda é o resto.
  • Cada busca do RAG devolve 12 pedaços, precise ou não: de 10 mil a 12 mil caracteres por busca nesses quatro testes. Isso pesa no tamanho final de um teste curto.
  • Numa conversa, o Claude relê tudo a cada passo, então o tamanho da conversa pesa. Repeti 3 vezes por jeito uma conversa de trabalho numa missão (6 mensagens soltas: ver o que está em aberto, pedir o contexto da missão, propor mudanças e pedir o resumo). O RAG gastou menos nas 3 (de 284 mil a 425 mil por mensagem) e o Grep gastou mais nas 3 (de 466 mil a 631 mil). A média foi 36% menos; tirando uma das conversas do Grep, em que digitei uma palavra a mais por engano, 31% menos. Na primeira vez que mandei medir, com 2 conversas por jeito, tinha dado 23% menos.
  • Calculei dos registros por que isso acontece: cada passo do Grep relê uma conversa maior (cerca de 118 mil tokens contra 87 mil do RAG), porque o Grep abre as notas inteiras e elas ficam na conversa. O número de passos por mensagem foi parecido (4,7 contra 4,1).
  • Nas 11 conversas com erros de propósito, o RAG da primeira versão gastou 27% menos (145 mil contra 200 mil por mensagem). Depois que mandei buscar as duas fontes quando o dado pode divergir, gastou 6% menos (188 mil): a regra faz o assistente buscar mais. O lado do Grep não foi repetido nessa rodada, então os 200 mil são da primeira medida.
  • Quando a base cresce, o Grep devolve mais texto (de 107 mil para 134 mil caracteres, de 150 mil para 400 mil tokens de base) e o RAG não (de 162 mil para 136 mil). Por isso a diferença caiu de +59% para +33%.

E se o RAG fosse mais enxuto?

Nada obriga um RAG a devolver 12 pedaços por busca. Refiz o teste de 150 mil com 8 e com 4 pedaços, um teste de cada vez, com o servidor ligado:

JeitoTokens no fim do testeTempo
Grep, para comparar~84 mil32 s
RAG com 12 pedaços~133 mil53 s
RAG com 8 pedaços~142 mil73 s
RAG com 4 pedaços~98 mil51 s

Com 4 pedaços o RAG chegou perto do Grep, mas não ficou abaixo, e o acerto foi o mesmo dos outros (9,5 de 10). Com 8 pedaços ele gastou mais que com 12, porque repetiu mais buscas (19 comandos contra 13). O que isso sustenta: nas perguntas soltas, o RAG que mandei testar não gastou menos que o Grep, nem enxuto. O que não sustenta: “todo RAG gasta mais”. Só mandei testar uma montagem de RAG, variando apenas o número de pedaços.

Depois repeti a conversa numa missão 3 vezes com 4 pedaços. Deu cerca de 330 mil tokens por mensagem, contra 352 mil com 12 pedaços e 551 mil com o Grep. Os 4 pedaços gastaram 6% menos que os 12, uma diferença menor do que a variação entre conversas do mesmo jeito (de 284 mil a 425 mil com 12 pedaços; de 286 mil a 356 mil com 4). As 3 conversas apontaram as mesmas divergências que as de 12 pedaços. Então, numa conversa, usar 4 pedaços não perdeu contexto nesse teste, mas também não economizou de forma clara. A ressalva continua valendo: com poucos pedaços a busca acha a nota certa de primeira menos vezes (68 contra 86 de cada 100, com 5 e 12 pedaços), e numa conversa isso não apareceu.

O que eu ainda não sei: cada teste rodou uma vez (menos a conversa numa missão, que rodou 3 vezes por jeito, sempre a mesma missão), e o que o Claude escreve varia de um teste para outro (de 20 mil a 39 mil tokens nos quatro testes de base grande). Para a conta ficar firme, falta repetir cada teste 3 vezes e contar tudo do mesmo jeito.

x

Palavras desta nota (4)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
cópia do Claude
Uma cópia do Claude que faz uma tarefa sozinha, sem ver o gabarito.
servidor
Um programa pequeno que fica ligado no meu computador e mantém o modelo de busca na memória, para a busca responder em menos de 1 segundo.

Segundos por resposta. O servidor do RAG estava ligado e aquecido, e cada teste de base grande rodou sozinho, um agente por vez.

GrepRAG

x

Palavras desta nota (3)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
token
O pedaço de texto que a IA conta. Quanto mais tokens, mais cota se gasta.

Cota por teste de 10 perguntas, em milhares de tokens.

GrepRAG
03Quem faz o quê

O que cada um fez que o outro não fez

Palavras desta nota (7)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
token
O pedaço de texto que a IA conta. Quanto mais tokens, mais cota se gasta.
cota
Quantos tokens o Claude usa. Nas conversas, conto tudo o que ele lê em cada passo; nos testes de 10 perguntas, o tamanho que a conversa dele tinha no fim.
pedaço
Cada parte de uma nota que a busca devolve. Normalmente 12; na repetição, 20.
servidor
Um programa pequeno que fica ligado no meu computador e mantém o modelo de busca na memória, para a busca responder em menos de 1 segundo.
citam
O comando que lista todas as notas que citam um nome.

Os nomes que aparecem aqui (Tibio, Mira, Zifel, Lívia, Liga do Caos) são personagens e grupos do mundo de RPG usado nos testes.

O RAG

  • Mostra a fonte por padrão: 46 de 47 afirmações com nota de origem, sem ninguém pedir.
  • Achou as pendências da Liga do Caos que o Grep perdeu ao resumir várias notas.
  • Achou a Mira pelo sentido ("a religiosa de Porto Altheris e a organização secreta"), onde a palavra não batia.
  • Na "sereia", citou a Lívia como a mais parecida. O Grep só disse que não tem.
  • Numa conversa de trabalho numa missão, gastou 36% menos cota (3 repetições).
  • Avisa quando a nota existe mas está vazia, e se atualiza sozinho a cada nota nova.

O Grep

  • Lista todas as notas que citam um nome: 5 de 5, contra 2 de 5 do RAG antes da busca por nome.
  • Achou a Zifel, que o RAG nunca achou, nem com 20 pedaços.
  • Aguenta a base crescer: 84 mil tokens no fim de um teste de 10 perguntas com 150 mil de base, 93 mil com 400 mil.
  • Mais rápido em pergunta solta: 32 s e 45 s por teste, contra 53 s e 65 s do RAG, mesmo com o servidor do RAG ligado e aquecido.
  • Não precisa de índice, modelo nem servidor para manter.
  • Com uma linha de regra, cita fonte em tudo.

O erro típico do RAG é a omissão: dizer "não consta" para o que existe. O do Grep é juntar mal várias notas. Os dois erraram coisas diferentes, e nenhum inventou nome, parentesco ou motivo.

04Todos os testes

A tabela completa

Procure por uma palavra, filtre por tipo ou clique no título de uma coluna para ordenar.

Resultado Tipo
Nenhum teste com esse filtro.

x

Palavras desta nota (12)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Grep
A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
Claude e Claude Code
O Claude é a IA que responde. O Claude Code é o programa em que ele trabalha com os meus arquivos.
vault
A pasta de notas do Obsidian. O meu tem 72 notas do mundo de um RPG de mesa, cerca de 66 mil tokens.
pedaço
Cada parte de uma nota que a busca devolve. Normalmente 12; na repetição, 20.
gabarito
A nota certa de cada pergunta, escrita antes do teste.
cópia do Claude
Uma cópia do Claude que faz uma tarefa sozinha, sem ver o gabarito.
busca por palavra (BM25)
Procura as palavras da pergunta nas notas e dá mais peso às palavras raras.
busca por sentido (mE5)
Um modelo pequeno, gratuito e local transforma o texto em números, para achar notas parecidas mesmo com outras palavras.
fusão por posição (RRF)
Junta a lista da busca por palavra e a da busca por sentido olhando só a posição de cada nota (1ª, 2ª, 3ª…), sem somar notas.
ajustado
O RAG depois dos ajustes medidos: fusão por posição, aviso de nota vazia e regra de repetir a busca.
juiz
Um modelo (o Gemini, pelo programa agy) que confere se a nota citada sustenta a frase.

Esta nota diz quem fez cada parte e com qual versão. Datas dos testes: 07 e 08/11/2026.

PapelModelo e versãoDetalhe
Assistente que respondeu aos testesclaude-sonnet-5-5, no Claude Code 2.1.319Agentes que não viam o gabarito. Parâmetros no padrão do Claude Code: nenhum foi alterado.
Juiz das fontesgemini-3.8-flash-high, pelo agy 1.5.3Onde ele falhou, o mesmo pedido foi refeito com claude-sonnet-5-5-high pelo agy. Em 3 conversas nenhum dos dois respondeu e elas ficaram sem juiz.
Correção do acertoO próprio Claude que escreveu o artigoNas provas de busca o gabarito é a nota certa (conferência mecânica). Nas conversas a correção não foi cega.
Busca por sentidointfloat/multilingual-e5-small, no computadorsentence-transformers 6.2.0, torch 2.15.0. O mE5-base foi testado e não ajudou.
Busca por palavra e fusãoBM25 próprio e fusão por posição (RRF, constante 60)A constante 60 é o valor padrão da literatura, não foi ajustada a este vault. Pedaços de 200 a 1.500 caracteres. 12 pedaços por busca; 20 na repetição.

Textos que os agentes receberam

Os dois modelos de instrução do teste “fonte sem pedir”, sem os caminhos de pasta. Nas provas de acerto o texto também pedia “cite o nome do arquivo de cada fonte”; só neste teste esse pedido foi tirado.

Com RAG
Você ajuda um mestre de RPG de mesa a consultar as notas do mundo dele. Você NÃO pode ler nem buscar nos arquivos de notas diretamente (nada de Grep, Glob ou Read nas notas). O único jeito de consultar é este comando, rodado dentro da pasta do teste:

python -m rag.consulta perguntar "<pergunta>" --k 12

Regras de uso do comando:
- "O que as notas dizem sobre X": perguntar "..." --k 12 (use --k 20 se a pergunta junta várias notas).
- "Quais notas falam de X / onde aparece X": troque perguntar por citam "X".
- Se a resposta for "não consta" ou "não achei", repita com --k 20 e, se há um nome específico, com citam "X" antes de desistir.
O comando devolve pedaços das notas. Responda usando SOMENTE esses pedaços.

O mestre vai mandar 6 mensagens, uma de cada vez. Responda cada uma como se ele tivesse acabado de mandar, em português simples e curto. Não carregue suposições de uma mensagem para a outra.

Mensagens: 1. me fala do tibio  2. quem é a lívia?  3. o que está em aberto na liga do caos?  4. qual missão paga mais?  5. a igreja caça não-humanos?  6. como funciona o conselho oculto da ordem?

No final, devolva as 6 respostas EXATAMENTE como você as mostraria ao mestre, numeradas, sem resumir e sem acrescentar nada. Depois, em uma linha, quantas vezes rodou o comando.
Com Grep (sem RAG)
Você ajuda um mestre de RPG de mesa a consultar as notas do mundo dele. Pasta das notas: a pasta do teste (arquivos .md). Use SOMENTE as ferramentas Grep, Glob e Read dentro dessa pasta. Não olhe nenhuma outra pasta nem rode outros comandos.

O mestre vai mandar 6 mensagens, uma de cada vez. Responda cada uma como se ele tivesse acabado de mandar, em português simples e curto, só com o que está nas notas. Não carregue suposições de uma mensagem para a outra.

Mensagens: as mesmas 6 do teste com RAG.

No final, devolva as 6 respostas EXATAMENTE como você as mostraria ao mestre, numeradas, sem resumir e sem acrescentar nada. Depois, em uma linha, o número de chamadas de ferramenta que usou.

Onde estão os registros

  • Um arquivo compactado de 4,9 MB com a transcrição de 37 dos assistentes, até as 02h17 de 08/11/2026.
  • 253 respostas dos assistentes, uma por arquivo.
  • O código do RAG, os testes e os scripts de medição, as perguntas das provas e as mensagens das conversas.

Nada disso está publicado nesta página: os arquivos ficam no meu projeto rag-rpg. Pela data do arquivo compactado, os 13 agentes das provas de busca, de fonte e de base maior (tarde de 08/11) ficaram de fora. Os registros deles existem só no histórico do Claude Code, ainda não exportado.

x

Palavras desta nota (13)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
Claude e Claude Code
O Claude é a IA que responde. O Claude Code é o programa em que ele trabalha com os meus arquivos.
vault
A pasta de notas do Obsidian. O meu tem 72 notas do mundo de um RPG de mesa, cerca de 66 mil tokens.
pedaço
Cada parte de uma nota que a busca devolve. Normalmente 12; na repetição, 20.
gabarito
A nota certa de cada pergunta, escrita antes do teste.
palavras diferentes
Pergunta que não usa nenhuma palavra da nota. Exemplo: “quem briga com papel em vez de espada?” para uma nota sobre um advogado.
busca por palavra (BM25)
Procura as palavras da pergunta nas notas e dá mais peso às palavras raras.
busca por sentido (mE5)
Um modelo pequeno, gratuito e local transforma o texto em números, para achar notas parecidas mesmo com outras palavras.
fusão por posição (RRF)
Junta a lista da busca por palavra e a da busca por sentido olhando só a posição de cada nota (1ª, 2ª, 3ª…), sem somar notas.
servidor
Um programa pequeno que fica ligado no meu computador e mantém o modelo de busca na memória, para a busca responder em menos de 1 segundo.
LlamaIndex e Chroma
Uma biblioteca pronta para montar RAG (LlamaIndex) e o banco que guarda os pedaços (Chroma).
citam
O comando que lista todas as notas que citam um nome.
skill
Um roteiro que o Claude Code segue quando eu o chamo, como /rag.

Esta nota explica por que o RAG deste artigo foi escrito peça por peça, o que cada peça faz e o que cada decisão mudou nos números.

O motivo

Segundo o registro do projeto, o RAG foi um projeto de treino: construir à mão, sobre o vault de RPG, para aprender a técnica e tirar dela um fluxo que se repete em outras bases (as skills /rag e /rag-montar). As regras eram três: nada pago; a busca por palavra, a busca por sentido e a fusão escritas no próprio projeto; e bibliotecas prontas só no fim, para comparar com a mesma prova.

As peças que mandei escrever

PeçaO que fazO que se mediu
CortadorCorta cada nota por seção, de 200 a 1.500 caracteres, com o nome da nota e da pasta no começo de cada pedaço. Nota vazia vira um pedaço-aviso: “a nota existe, mas está vazia”.Sem o aviso, o RAG dizia “não existe” para o que estava vazio (o Borin e a Leona).
Busca por palavraBM25 próprio, sem acento.Sozinha, acha 36% das notas certas nas perguntas com palavras diferentes (12 pedaços).
Busca por sentidoO modelo local mE5-small, com os prefixos query: e passage:.Sozinha, acha 50% (12 pedaços). O mE5-base, maior, não ajudou.
Fusão por posiçãoJunta as duas listas pela posição de cada nota, sem peso para ajustar.De 57% para 79% nas perguntas com palavras diferentes, e de 86% para 89% nas perguntas comuns, contra a soma de notas (12 pedaços).
Busca por nomeO comando citam lista todas as notas que citam um nome.Achou 19 de 19 notas do gabarito nas 4 perguntas “quais notas falam de X”. Devolveu 33 notas; só 58% eram do gabarito.
Atualização automáticaAntes de cada busca, refaz só as notas novas, alteradas ou apagadas.Conferir se algo mudou: 0,02 s. Refazer 1 nota: 0,17 s. Refazer tudo (72 notas): 17 s.
Servidor localMantém o modelo na memória e só responde no próprio computador. Liga sozinho e desliga após 4 horas parado.De cerca de 8 s para 0,3 s por consulta.
Registro de usoAnota uma linha por consulta: tempo, buscas vazias e repetidas.Alimenta o teste de dia a dia.

Decisões que os testes derrubaram

  • Soma de notas com peso 0,8 pareceu melhor (93% nas perguntas com palavras diferentes, com 20 pedaços). Mas o peso foi escolhido olhando as mesmas perguntas, então não virou regra. A fusão por posição não tem peso para decorar.
  • O modelo de busca maior (mE5-base) levou 3 minutos para indexar, contra 1,5 minuto, e não deu ganho claro. Ficou o pequeno.
  • A busca acha mais com mais pedaços: nas perguntas com palavras diferentes, de 57% com 12 pedaços para 86% com 20. Por isso a regra de repetir a busca com 20 pedaços antes de dizer “não consta”.

O que deu de trabalho

Hoje o RAG tem 16 arquivos de código (1.287 linhas) e 14 arquivos de teste, com 175 testes passando. Escrever à mão custou mais linhas do que o script da biblioteca. Em troca vieram o nome da nota em cada pedaço, o tratamento da nota vazia, a busca por nome, a atualização automática, o servidor e os links para a fonte, que o script da biblioteca não tinha.

O que não sei

Só mandei testar uma biblioteca (LlamaIndex com Chroma), com uma configuração por variante e sem afinar o tamanho do corte nem a sobreposição: afinando, ela pode melhorar. O BM25 dela usa radicais em inglês e não mandei testar a troca. Escrever à mão foi uma escolha de aprendizado; estes números não provam que à mão é sempre melhor.

x

Palavras desta nota (6)
vault
A pasta de notas do Obsidian. O meu tem 72 notas do mundo de um RPG de mesa, cerca de 66 mil tokens.
cota
Quantos tokens o Claude usa. Nas conversas, conto tudo o que ele lê em cada passo; nos testes de 10 perguntas, o tamanho que a conversa dele tinha no fim.
pedaço
Cada parte de uma nota que a busca devolve. Normalmente 12; na repetição, 20.
palavras diferentes
Pergunta que não usa nenhuma palavra da nota. Exemplo: “quem briga com papel em vez de espada?” para uma nota sobre um advogado.
“já tem algo sobre X?”
Pergunta em que eu quero saber se um personagem ou uma missão já existe nas notas.
servidor
Um programa pequeno que fica ligado no meu computador e mantém o modelo de busca na memória, para a busca responder em menos de 1 segundo.

O mesmo teste nas duas: o mesmo modelo de busca, a mesma cópia do vault e as mesmas 64 perguntas. A busca devolve 12 pedaços de nota e contamos quantas das notas certas aparecem entre eles, sem IA no meio. Barra maior é melhor.

Feito à mãoBiblioteca pronta
Feito à mão: 89, 79 e 83 de cada 100 notas certas. Biblioteca pronta: 90, 57 e 78. Para a biblioteca mostrei a melhor das duas configurações testadas em cada tipo de pergunta. Ela só chega perto nas perguntas comuns (90 contra 89), e com pedaços de nota 2,7 vezes maiores. Nas outras a diferença é de 22 pontos (palavras diferentes) e 5 pontos (“já tem algo sobre X?”). São 46, 10 e 8 perguntas; uma nota a mais ou a menos mexe 7 pontos nas de palavras diferentes e 4 nas de “já tem algo sobre X?”.

Perguntas comuns: as 46 do começo dos testes (detalhe de uma nota, relação entre notas e confusão entre nomes). Palavras diferentes: a pergunta não usa nenhuma palavra da nota, como “quem briga com papel em vez de espada?” para uma nota sobre um advogado. “Já tem algo sobre X?”: eu pergunto se um personagem ou uma missão já existe nas notas.

Além do que a busca achou, o que cada uma exigiu:

ItemFeito à mãoBiblioteca pronta
Pedaços de nota362 pedaços, de cerca de 631 caracteres400 pedaços de cerca de 571 caracteres (corte por título) ou 132 de cerca de 1.731 (corte padrão)
Notas vaziasMantém as 72 notas; as vazias viram um avisoO corte por título perdeu as 3 vazias (69 de 72). O corte padrão manteve as 72, mas com um pedaço de texto vazio.
Modelo de linguagem pagoNão precisaA junção das duas buscas tenta usar o da OpenAI, que é pago. Foi trocado por um modelo de mentira, que não chama nada.
Pacotes instalados2 dependências73 pacotes novos
Linhas de código880 na época (hoje 1.287), com comando, servidor, atualização automática, busca por nome e links139, só a busca
Velocidade da buscaNão medida nesta comparação18 a 30 milissegundos
  • Com pedaços do mesmo tamanho (571 contra 631 caracteres), a versão feita à mão ganha nos três tipos: 89 contra 79, 79 contra 57 e 83 contra 74.
  • O corte padrão da biblioteca tem pedaços 2,7 vezes maiores. Isso manda 2,7 vezes mais texto ao Claude e gasta mais cota.
  • O que a biblioteca faz bem: poucas linhas para o básico e busca rápida. Mas esse script só fazia a busca.
05Linha do tempo

Do primeiro teste até hoje

Palavras desta nota (1)
RAG
O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
    06Como foi montado

    O caminho de uma pergunta

    Palavras desta nota (3)
    RAG
    O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
    busca por palavra (BM25)
    Procura as palavras da pergunta nas notas e dá mais peso às palavras raras.
    fusão por posição (RRF)
    Junta a lista da busca por palavra e a da busca por sentido olhando só a posição de cada nota (1ª, 2ª, 3ª…), sem somar notas.

    O RAG deste teste foi escrito à mão, com um modelo de busca local e gratuito. Depois ele ganhou ajustes medidos um a um. As versões estão em método.

    Notasarquivos .md Pedaçospor seção, com o nome Busca por palavratexto escrito igual Busca por sentidomodelo local gratuito Fusãopor posição (RRF) 12 pedaçoscom fonte e link Claude respondesó com os pedaços se vier "não consta": repete com 20 pedaços e com a busca por nome nota nova ou editada: refaz só ela (0,17 s)
    A fusão por posição, em âmbar, foi a decisão que mais pesou: nas perguntas sem palavra em comum, a busca achou 79 de cada 100 notas certas, contra 57 com a soma de notas.

    As decisões medidas, uma a uma, e a comparação com a biblioteca pronta estão em feito à mão.

    07Conclusãoprovisória

    O que eu concluí

    Palavras desta nota (11)
    RAG
    O jeito em que a IA primeiro busca, nas notas, só os pedaços que parecem certos e então responde com base neles.
    Grep
    A busca por palavras que o Claude Code já traz: procura o texto escrito igual e lê as notas que achou. “Sem RAG” não quer dizer “sem busca”.
    vault
    A pasta de notas do Obsidian. O meu tem 72 notas do mundo de um RPG de mesa, cerca de 66 mil tokens.
    token
    O pedaço de texto que a IA conta. Quanto mais tokens, mais cota se gasta.
    cota
    Quantos tokens o Claude usa. Nas conversas, conto tudo o que ele lê em cada passo; nos testes de 10 perguntas, o tamanho que a conversa dele tinha no fim.
    pedaço
    Cada parte de uma nota que a busca devolve. Normalmente 12; na repetição, 20.
    cópia do Claude
    Uma cópia do Claude que faz uma tarefa sozinha, sem ver o gabarito.
    servidor
    Um programa pequeno que fica ligado no meu computador e mantém o modelo de busca na memória, para a busca responder em menos de 1 segundo.
    juiz
    Um modelo (o Gemini, pelo programa agy) que confere se a nota citada sustenta a frase.
    Obsidian
    O programa de notas em que o vault é guardado.
    skill
    Um roteiro que o Claude Code segue quando eu o chamo, como /rag.
    Para mim, no uso local, ele traz poucos benefícios.O que escrevi em 08/11/2026, antes de repetir as conversas

    O que os números mostram agora: o acerto empata. Nas conversas, que é como eu uso o Claude, o RAG gastou de 6% a 36% menos cota que o Grep (40% menos com 4 pedaços); nas perguntas soltas, gastou mais e demorou mais. A fonte por padrão também sai com uma linha de regra no Grep. Ainda não mandei medir o trabalho de manter o RAG (índice, modelo e servidor). A resposta que os números sustentam, portanto, não é “poucos benefícios”, e sim “depende do uso”: vale mais em conversas longas sobre as mesmas notas e não compensa em pergunta avulsa. A decisão final continua dependendo do teste de dia a dia.

    Há outros casos em que o RAG pode ser o único jeito ou o melhor, e não mandei medi-los: o modelo não tem ferramenta de busca, a base chega a milhões de tokens ou o vocabulário das perguntas foge das notas (quando compensa). A base só foi testada até 400 mil tokens.

    Decisão em curso: eu vou usar o RAG sempre no RPG por 1 a 2 semanas, com cada consulta registrada (tempo, buscas vazias, repetidas), para comparar a sensação do dia a dia com o que foi medido.

    Limites desta pesquisa

    • Um caso só: o meu vault de RPG, com 72 notas. Em outro tipo de base o resultado pode ser outro.
    • A maioria dos testes rodou uma vez, com 10 a 18 perguntas, então o acaso ainda pesa. As conversas da missão rodaram 3 vezes por jeito, sempre a mesma missão.
    • As notas extras das bases grandes são de outros assuntos, distrações fáceis. Notas muito parecidas entre si seriam mais difíceis para o Grep.
    • O juiz das fontes é um modelo (o Gemini). O Claude conferiu à mão só as afirmações que ele marcou; as outras não foram conferidas por pessoa.
    • 400 mil tokens ainda é pouco. Bases de milhões de tokens não foram testadas.
    • A correção das conversas foi feita sabendo qual jeito era qual: não foi cega.
    • O tempo de cada base grande vem de uma rodada só por jeito. Não sei o quanto varia de uma vez para outra.
    • Os registros brutos de 13 agentes ainda não foram exportados (método).

    O que ainda falta

    • Teste de dia a dia, de 1 a 2 semanas em andamento
    • Repetir as provas 3 vezes para medir o acaso (feito só na conversa da missão) em andamento
    • Testar o link que abre a nota direto no Obsidian pendente
    • Usar as skills /rag e /rag-montar em uma base nova pendente
    • Exportar os registros brutos dos agentes que ficaram fora do arquivo pendente

    Referências

    • Mensh B, Kording K (2017). Ten simple rules for structuring papers. PLoS Computational Biology. link
    • Ten Simple Rules for Better Figures. PLoS Computational Biology. link
    • Guidelines for Empirical Studies in Software Engineering involving Large Language Models (arXiv 2508.15503). link
    • Helping doctors and patients make sense of health statistics. link
    • Appleton M. A Brief History & Ethos of the Digital Garden. link
    • Matuschak A. Evergreen notes should be atomic. link
    Rascunho vivo, atualizado em 09/11/2026. Dados do projeto rag-rpg (etapa3, comparação, base maior). Tudo gratuito: Claude Code, agy e modelo local, nenhuma API paga.

    Para repetir no seu caso

    Transformei o roteiro desta pesquisa em duas skills do Claude Code. A /rag mede, na sua base de notas, o Grep, o Grep com a regra de fonte, o RAG e colar tudo no pedido, e mostra os números para você escolher. Se você escolher o RAG, a /rag-montar monta a receita testada aqui: índice, servidor e atualização automáticos e o registro de uso. As duas foram feitas a partir de um caso só, o meu vault de RPG, e ainda não as usei em outra base. O passo a passo para fazer à mão está em medir no seu caso.