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.