> For the complete documentation index, see [llms.txt](https://docs.hexabot.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hexabot.ai/retrieval-augmented-generation/choose-a-rag-helper.md).

# Choose a RAG helper

A RAG helper decides how Hexabot indexes, searches, filters, and ranks CMS content. Hexabot can discover several installed helpers, but `global_settings.default_rag_helper` selects the one used by `retrieve_rag_content` and the RAG search API.

### Helper comparison

| Helper or npm package                                                                    | Database                  | Retrieval                                               | Embedding provider | Indexing model                                                     | Best for                                                                             |
| ---------------------------------------------------------------------------------------- | ------------------------- | ------------------------------------------------------- | ------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
| `fulltext-search` (built in)                                                             | SQLite or PostgreSQL      | Lexical/full-text                                       | No                 | Database-native; Content remains the source of truth               | Exact terms, names, codes, policies, FAQs, low-operational-overhead deployments      |
| [`hexabot-helper-sqlite-vector`](https://hexabot.ai/extensions/6a6daf6d147efb889b884892) | SQLite                    | Semantic vector similarity                              | Yes                | Vector data stored in SQLite; content changes are indexed directly | Local or small deployments that need semantic retrieval without PostgreSQL           |
| [`hexabot-helper-pgvector`](https://hexabot.ai/extensions/6a6dafd8147efb889b884994)      | PostgreSQL                | Semantic vector similarity                              | Yes                | Durable, trigger-backed indexing queue in PostgreSQL               | Production PostgreSQL deployments and larger semantic corpora                        |
| Custom `hexabot-helper-*` package                                                        | Depends on implementation | Lexical, semantic, graph, hybrid, reranked, or external | Optional           | Defined by the helper                                              | Pinecone, Weaviate, Elasticsearch, GraphRAG, custom ranking, regulated architectures |

Use the npm package name when installing or referring to an extension. Use the shorter runtime name only when configuring **Default RAG helper** or reading the `source` field of a result.

### Decision guide

#### Choose `fulltext-search` when

* your users and content share important keywords;
* queries include product names, error codes, plan names, policy terms, or identifiers;
* you do not want content sent to an embedding provider;
* you want the lowest setup and maintenance overhead;
* you need a reliable baseline before adding semantic complexity.

Read Full-text search.

#### Choose `hexabot-helper-sqlite-vector` when

* the Hexabot database is SQLite;
* users often paraphrase the source content;
* semantic similarity is more important than exact keyword matching;
* the corpus and deployment size are appropriate for an in-process SQLite setup.

Read `hexabot-helper-sqlite-vector`: SQLite vector search, or view the package in the [Hexabot Extension Library](https://hexabot.ai/extensions/6a6daf6d147efb889b884892).

#### Choose `hexabot-helper-pgvector` when

* the Hexabot database is PostgreSQL;
* you need semantic retrieval with durable asynchronous indexing;
* your PostgreSQL environment can provide the `vector` extension;
* you want vector storage and content records to remain in the same database platform.

Read `hexabot-helper-pgvector`: PostgreSQL vector search, or view the package in the [Hexabot Extension Library](https://hexabot.ai/extensions/6a6dafd8147efb889b884994).

#### Build a custom helper when

* vectors must live in Pinecone, Weaviate, Qdrant, Milvus, or another external store;
* you need GraphRAG, document-level access control, custom metadata filters, reranking, or multilingual retrieval logic;
* you want hybrid ranking that combines lexical and semantic signals;
* your organization already has a search or knowledge platform that should remain authoritative.

Read Develop a custom RAG helper.

### Lexical, semantic, and hybrid retrieval

**Lexical retrieval** matches words and language-specific text-search forms. It is predictable, inexpensive, and strong when terminology is shared between the query and source.

**Semantic retrieval** embeds the query and content chunks into vectors. It can match meaning across different wording, but adds provider cost, indexing time, privacy considerations, and operational dependencies.

### Only one helper answers each retrieval call

Installing multiple helpers gives administrators a choice; it does not make every query search all helpers. The configured default helper handles a retrieval call.

Database-specific helpers advertise their availability. `hexabot-helper-pgvector` is not offered on SQLite, and `hexabot-helper-sqlite-vector` is not offered on PostgreSQL.

Before enabling vector retrieval, confirm:

* which content fields will be embedded;
* whether the embedding endpoint is external or self-hosted;
* where vectors and metadata are stored;
* whether inactive content may be transmitted;
* the provider's retention and regional-processing terms;
* whether your access-control model requires per-user filtering that a custom helper must enforce.

The official vector helpers default to indexing only active content. Retrieved content should still be treated as untrusted data when it is supplied to an LLM.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.hexabot.ai/retrieval-augmented-generation/choose-a-rag-helper.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
