nav.groups.ref
Migration Guides
Notes for migrating between major versions of behest.
Migration Guides
Notes for migrating between major versions.
0.3 → 0.4
AgentRuntime::new signature changed
AgentRuntime::new now takes Arc<Extensions> instead of individual owned components:
// 0.3
let runtime = AgentRuntime::new(providers, store, tools, context, policy);
// 0.4
let exts = Arc::new(Extensions::default());
exts.chat_providers.register("openai", Arc::new(openai))?;
let runtime = AgentRuntime::new(exts, policy);
ProviderRegistry internals changed
ProviderRegistry now uses ExtensionPoint internally. Public API is unchanged.
ModelRouter takes Arc<ProviderRegistry>
// 0.3
let router = ModelRouter::new(registry, policy);
// 0.4
let router = ModelRouter::new(Arc::new(registry), policy);
New: Extensions facade
The 13-field Extensions struct replaces the individual constructor arguments. See Extensions Facade.
New: Component trait and ComponentRegistry
Components now have a lifecycle contract. See Component Trait.
New: FactoryRegistry
Config-driven construction via FactoryRegistry. See FactoryRegistry.
0.2 → 0.3
ChatRequest::newnow requiresModelNameinstead of&str.ProviderIdis now a newtype, not a type alias.Tool::executereturnsToolResult<ToolOutput>instead ofResult<Value, ToolError>.
See also
- API Reference — the full type index.
- Overview — the high-level picture.