Hexabot 3.4.0 is here: rebuilt RAG and a cleaner admin experience

We have released Hexabot 3.4.0.

This release includes a broad set of fixes and usability improvements, including a responsive redesign of the data grids and page headers used across CRUD pages. The biggest change, however, is a complete rewrite of Retrieval-Augmented Generation (RAG).

RAG is now helper-based

Hexabot no longer depends on LlamaIndex for retrieval.

The previous implementation maintained separate lexical and embedding indexes and tried to keep them synchronized with CMS content through lifecycle events. That design was behind several recurring consistency problems: stale entries after deactivation, missed cascade deletes, drift while RAG was disabled, reset races, silent delete failures, and confusing differences between lexical and embedding error handling.

In 3.4.0, retrieval is selected through global_settings.default_rag_helper:

  • fulltext-search is built into @hexabot-ai/api and selected by default. It uses PostgreSQL full-text search or SQLite FTS5, requires no embedding provider, and treats the main content database as the source of truth.
  • hexabot-helper-sqlite-vector adds embedding-based semantic search to SQLite through sqlite-vec.
  • hexabot-helper-pgvector adds embedding-based semantic search to PostgreSQL through pgvector.

The vector implementations are installable extensions because RAG is not one-size-fits-all. Keeping them outside the core lets deployments choose the retrieval strategy, database integration, embedding provider, and indexing behavior that best fit their use case. Installed helpers are discovered automatically, and only the vector helper compatible with the active database is made available.

The old RAG enable/disable switch is gone. Retrieval is always available through the selected helper. Configuration and availability problems are also surfaced consistently by retrieve_rag_content through a visible warning field instead of looking like a legitimate query with no matches.

Upgrading from Hexabot 3.3.x

If keyword or exact-term retrieval is enough, no vector package or embedding credential is required. Upgrade to 3.4.0 and keep global_settings.default_rag_helper set to fulltext-search.

To keep or enable semantic vector retrieval, add the helper that matches your database. You may also install both; Hexabot will expose only the compatible one:

{
  "dependencies": {
    "hexabot-helper-pgvector": "^3.4.2",
    "hexabot-helper-sqlite-vector": "^3.4.2"
  }
}

After installing dependencies and restarting the API:

  1. Create an OpenAI or OpenAI-compatible embedding credential in the admin UI.
  2. Configure the sqlite-vector or pgvector helper settings, including the provider, model, credential, dimensions, and chunking options.
  3. Set global_settings.default_rag_helper to sqlite-vector or pgvector.

For PostgreSQL, the database server must provide the vector extension. If you use Docker Compose, the simplest option is to use the pgvector image in docker-compose.postgres.yml:

services:
  postgres:
    image: pgvector/pgvector:pg16

If you use a managed or existing PostgreSQL server, install or enable the pgvector extension there instead.

The 3.4.0 API migration automatically removes the obsolete LlamaIndex tables and triggers from SQLite. On PostgreSQL, legacy LlamaIndex structures are deliberately retained for rollback. Remove them only after validating the new helper and closing your rollback window.

New projects created from the updated Hexabot starter template already include both vector helper packages. Its PostgreSQL Docker overlay also uses pgvector/pgvector:pg16.

A better experience across the admin UI

Hexabot 3.4.0 also refreshes the data-heavy areas of the admin:

  • redesigned data grids and page headers across CRUD pages;
  • responsive filters that remain usable on smaller screens;
  • clearer pagination, actions, timestamps, and page context;
  • more consistent layouts across users, settings, sources, workflow runs, and other entity lists.

More fixes and enhancements

The release also includes:

  • workflow-run navigation and restored execution state after a page refresh;
  • improved graph layout for start/end nodes, nested loops, attachments, and terminal branches;
  • stronger workflow action and tool-settings validation;
  • protection against tool-name collisions in the visual editor;
  • better OpenAI-compatible provider and base URL handling;
  • correct aggregation of tool calls and results across agent steps;
  • enforcement of required CMS content-type fields;
  • fixes for content timestamps, drawers, YAML completions, and schema forms;
  • a substantial set of dependency and security updates.

Try Hexabot 3.4.0, and let us know how the new retrieval helpers work for your deployment.