Objetivo: ao final, o consultor decide entre indexar, deixar o agente buscar, ou simplesmente colocar tudo no prompt — e sabe que o índice tem custo de manutenção que a proposta precisa refletir.
| Opção | Como | Quando |
|---|---|---|
| Tudo no prompt | Acervo inteiro no contexto, com cache | Acervo até ~200 mil tokens, estável |
| Busca agêntica | Agente com ferramentas de busca e leitura | Acervo que o agente percorre; consultas exploratórias; acervo que muda muito |
| RAG com índice | Pipeline das aulas 3.8.1 e 3.8.2 | Acervo grande, volume de consultas, latência apertada |
response = client.messages.create(
model="claude-opus-5",
max_tokens=8000,
system=[{
"type": "text",
"text": f"<documentos>\n{ACERVO_INTEIRO}\n</documentos>", # até ~200 mil tokens
"cache_control": {"type": "ephemeral"},
}],
messages=[{"role": "user", "content": pergunta}],
)
O que essa opção elimina de uma vez: fatiamento, escolha de modelo de embedding, vector DB, índice BM25, reranker, reindexação, e o risco de a busca não trazer o pedaço certo. Como não há busca, não há falha de recuperação.
O custo real é o de leitura do cache — cerca de um décimo do preço de entrada — a partir da segunda pergunta dentro da janela do cache. Para um assistente com uso concentrado ao longo do dia, isso é barato. Para uma pergunta isolada por semana, o cache expira entre uma e outra e você paga integral toda vez: aí a conta muda.
Um acervo de 200 mil tokens é maior do que parece. São cerca de 500 páginas — o conjunto de FS de uma fase inteira, ou a documentação funcional de um módulo. Boa parte dos "assistentes de documentação" propostos em projeto cabe nesse limite.
O Claude Code do Nível 2 já faz isso: Grep, Glob, Read, e a decisão de qual usar. Via Agent SDK (aula 3.7.7), o mesmo comportamento entra num produto.
options = ClaudeAgentOptions(
allowed_tools=["Read", "Grep", "Glob"], # somente leitura
max_turns=20,
cwd="/acervo/meridiano/documentacao",
)
| RAG | Busca agêntica | |
|---|---|---|
| Infraestrutura | Vector DB, índice, pipeline | Nenhuma |
| Custo de indexação | Alto, e recorrente a cada atualização | Zero |
| Acervo mudou | Reindexar | Nada a fazer |
| Rodadas de busca | Uma | Várias, cada uma informada pela anterior |
| Latência por consulta | Baixa | Alta |
| Custo por consulta | Baixo | Alto |
| Escala | Milhões de documentos | Limitado ao que o agente percorre |
A linha das rodadas é a vantagem qualitativa. Um exemplo de projeto: a pergunta é "por que o RICEFW 17 mudou de escopo?". O RAG busca "RICEFW 17 mudança de escopo" e devolve o que casar. O agente busca, encontra uma ata que cita "CR-2024-08", descobre esse termo, busca por ele, e acha a change request que explica. A segunda busca não estava na pergunta.
E as linhas de custo são a desvantagem simétrica: várias rodadas de leitura por consulta custam mais que uma recuperação e demoram mais.
O índice se justifica quando pelo menos duas destas forem verdadeiras:
| Condição | Por quê |
|---|---|
| Acervo muito acima de 200 mil tokens | Não cabe no prompt |
| Volume alto de consultas | O custo de indexação se dilui |
| Latência apertada (usuário esperando) | Busca agêntica é lenta demais |
| Acervo relativamente estável | Reindexação frequente corrói o ganho |
| Consultas previsíveis, sem exploração | A rodada única basta |
E o inverso: acervo que muda toda semana é péssimo caso para índice e ótimo para busca agêntica — porque a busca agêntica lê o estado atual, sempre.
| Item | Frequência | Quem faz |
|---|---|---|
| Reindexar quando documento muda | Contínua | Precisa ter dono |
| Reprocessar quando o modelo de embedding muda de versão | Ocasional, e é o acervo inteiro | Wayon |
| Monitorar qualidade de recuperação | Periódica | Wayon |
| Custo do vector DB | Mensal | Cliente ou Wayon — precisa estar definido |
| Custo do fornecedor de embedding | Por indexação e por consulta | Idem |
A primeira linha é a que quebra projetos. Um assistente cuja base foi indexada na entrega e nunca mais responde, com toda a confiança, a partir da documentação de seis meses atrás. E o usuário não tem como perceber: a resposta parece igualmente boa.
É a mesma armadilha da aula 3.4.2 — fluência não é evidência de correção — agora com a informação desatualizada em vez de errada. Por isso, quando o acervo muda com frequência, busca agêntica não é só mais simples: é mais correta, porque lê o estado atual.
Regra Wayon Antes de propor RAG a um cliente, é obrigatório registrar o tamanho do acervo em tokens e por que as duas alternativas mais simples não servem — tudo no prompt e busca agêntica. Se o acervo cabe em 200 mil tokens, RAG é infraestrutura vendida sem necessidade. Toda proposta com índice declara quem reindexa, com que gatilho e a que custo mensal. Índice sem dono de atualização é um passivo entregue ao cliente: ele responde com confiança a partir de documentação vencida, e o usuário não tem como perceber.
📖 Contextual Retrieval · Prompt caching · Agent SDK — aula 3.7.7
Correto. É a recomendação da própria Anthropic abaixo de ~200 mil tokens.
É infraestrutura vendida sem necessidade quando o acervo cabe no contexto.
Ela dispensa infraestrutura, mas é mais cara e mais lenta por consulta que ter tudo no prompt com cache.
É mais lenta: são várias rodadas de leitura em vez de uma recuperação.
Correto. É como um consultor procura de verdade.
É o oposto: a escala é a maior limitação da busca agêntica.
Índices não expiram sozinhos; eles continuam respondendo.
Não há esse mecanismo: o sistema não sabe o que mudou fora dele.
Correto. É a mesma armadilha da aula 3.4.2 — fluência não é evidência de correção.
Cada mudança exige reindexação; a absorção não é automática nem gratuita.
Afeta diretamente — é o principal corrosor do ganho do índice.
Correto. Nesse cenário ela não é só mais simples: é mais correta.