Skip to main content
The plugins array only controls explicitly opt-in plugins: semantic_cache, otel, maxim, datadog (enterprise), and custom plugins.Telemetry, logging, and governance are auto-loaded built-ins - they are always active and configured via the client block and dedicated top-level keys, not the plugins array.
In DB-backed deployments, plugin sync depends on the reconciliation mode. Split mode preserves DB plugins unless a file plugin has a higher version or changed placement/order. With source_of_truth: "config.json", a present plugins array is authoritative; plugins: [] removes stored opt-in plugins. See Source of Truth & Reconciliation.

Auto-Loaded Built-ins

These plugins start automatically. You do not add them to the plugins array. See Client Configuration and Governance for full details.

Plugin Array Structure

Every entry in the plugins array supports these common fields:
name, enabled, path, and config are the core plugin config fields. In DB-backed mode, version, placement, and order are persisted on TablePlugin and used during sync/runtime ordering.

Semantic Cache

Caches LLM responses by semantic similarity. Returns a cached response when an incoming request is semantically close enough to a previous one.Requires a vector store to be configured.Semantic mode (embedding-based similarity search):
Hash mode (exact-match caching, no embedding provider needed):
You must also configure a vector_store in config.json. See Storage - vector_store.

Custom / Dynamic Plugins

Load a custom Go plugin binary or WASM plugin at startup using the path field. Custom plugins must implement one of the Bifrost plugin interfaces.
WASM plugin:
See Writing Go Plugins for new plugin development. The WASM plugin guide is deprecated and retained for existing deployments while webhook-based plugins are being added. Placement and ordering (DB-backed only): In DB-backed mode, plugin metadata such as version (1 to 32767), placement, and order can be managed via config sync and DB/UI workflows: Within a placement group, lower order values run earlier.