Skip to main content

Module extensions

Module extensions 

Source
Expand description

Extensions: the composable, hot-pluggable facade over every pluggable runtime element.

Every category of plug-in — chat providers, embedding providers, tools, context adapters, session stores, execution stores, embedding stores, artifact stores, run stores, event publishers, session data stores, runtime event stores, snapshot stores, and RAG adapters — is exposed here as an ExtensionPoint<T>. Operators compose a runtime by registering implementations by name, and can hot-swap any registered instance at runtime.

§Construction

Extensions::default returns a fresh, empty facade suitable for greenfield construction. Existing AgentRuntime instances expose their built-in components via AgentRuntime::extensions, which materializes an Extensions from the runtime’s internal registries on demand.

§Threading

Every field is an ExtensionPoint<T>, which is internally Arc-backed and uses RwLock for storage. Cloning Extensions is cheap and all clones observe the same set of registered entries.

§Examples

use std::sync::Arc;
use behest_provider::{ChatProvider, ProviderId, ChatRequest, ChatResponse, ProviderResult};
use behest_runtime::extensions::Extensions;

let exts = Extensions::default();
let _ = exts;

Structs§

Extensions
The composable, hot-pluggable facade over every pluggable runtime element.