Anti-Patterns

Naive-RAG-First

Anti-pattern: reach for naive RAG before checking whether the knowledge actually needs retrieval.

Problem

When the knowledge lives in a structured store, semantic retrieval over embeddings is the wrong shape: the agent gets approximate, stale passages where a typed SQL query or a single API call would return an exact, fresh answer. The team pays embedding pipeline cost, vector store cost, and re-indexing cost on every update, and quality drops compared to the simpler design because retrieval is solving the wrong problem. Naive RAG also adds an entire failure surface — chunking, embedding drift, recall holes — that a typed tool call simply does not have.

Solution

Don't reach for RAG first. Check whether the knowledge lives in a tool (database, API, search service), a scoped system prompt, or a small inlined document. Only adopt RAG when those genuinely do not work. See tool-use, naive-rag for when it does.

When to use

  • Never use this; check whether the knowledge belongs in a tool, database, or scoped prompt before adopting RAG.
  • Use tool-use when the knowledge lives behind an API or query.
  • Adopt naive-rag only when those simpler stores genuinely do not work.

Open the full interactive page

Diagram, neighbourhood map, code examples, related patterns and full provenance.

Related