Assign models to servers and tools
Public documentation preview — incomplete. The SDK and optional AI SDK peers remain private and unpublished. Binding guidance does not grant permission to invoke a model or tool.Model aliases identify host-configured adapters (
models[alias] = { routing?, ranking? }); they do not discover providers or create credentials. Configure the models, server array and policy first.
For execute, routing preference precedence is:
- Explicit per-call
modeloverride. - Exact remote
{ serverId, toolName }or registered{ localKey }rule inpolicy.modelBindings.tools. policy.modelBindings.servers[serverId].- Router-level
modeldefault.
database-server to database, billing-server to general, and its get_customer_balance tool specifically to billing. A billing request scoped to that exact tool therefore uses models.billing.routing. For a local tool, configure { localKey: 'balance', model: 'billing' } under policy.modelBindings.tools when constructing the router; it can target a localKey that is registered later. There is no post-registration binding mutation API on an existing router. Bindings are not authorization and do not decide the ranker for filterTools or switch a host’s generateText model.
policy.modelAccess is a separate, intersecting restriction on model-backed operations. Global, selected-server and eligible-tool allowlists must all permit the chosen adapter; a filtered-out or empty selected server can still constrain exposure. Restrictions are checked before ranking/top-K and inference, so limit: 1 does not bypass them. Lexical model-free filtering does not send tool data to a model.
A missing, unsupported or changed target never silently falls back to a different binding. Always obtain a current bound descriptor and recheck host authorization before a real call. See filtering and bounded execution.
