For the complete documentation index, see llms.txt. This page is also available as Markdown.

Choose a RAG helper

Compare the built-in and installable RAG retrieval strategies available in Hexabot 3.4.x.

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

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

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.

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.

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.

Last updated

Was this helpful?