OptionalAIOptional ID of the AIAgent on whose behalf this search runs. When set, the engine stamps it onto the SearchExecutionLog row so analytics can attribute usage back to the calling agent. Pass-through only — permission resolution does its own agent lookup separately via the resolver caller.
OptionalFiltersOptional filters to narrow results
OptionalFusionOptional per-agent fusion weight override. When set, the engine applies these weights
during cross-scope RRF fusion and honors them per-provider when weighting
within-scope lists. Resolution order: this > SearchScope.ScopeConfig.fusionWeights >
engine defaults. Example: { vector: 2.0, fulltext: 1.0, entity: 1.0, storage: 1.0 }.
OptionalMaxMaximum number of results to return (default: 20)
OptionalMinMinimum score threshold (0-1). Results below this are excluded after RRF fusion.
OptionalModeSearch mode: 'full' applies enrichment, 'preview' skips it for speed
OptionalPermissionOptional per-provider topK overfetch multiplier. Compensates for residual late
permission filtering by requesting more candidates from each provider than the caller
strictly wants. The final result count is still bounded by MaxResults. Default: 2.
The search query text
OptionalScopeOptional array of MJ: Search Scopes record IDs. When provided, the engine resolves
each scope's metadata (providers, external indexes, entities, storage accounts) and
runs only those constrained providers. Results from multiple scopes are combined via
cross-scope RRF fusion. When omitted/empty, behaves as if the Global scope was used
(backward compatible). A single scope marked IsGlobal=true is also treated as no
filter.
OptionalSearchOptional multi-tenant runtime context. Interpolated into each scope's Nunjucks-rendered MetadataFilter, ExtraFilter, UserSearchString, and FolderPath values so the same scope definition can serve many tenants. See Section 9 of plans/search-scopes-rag-plus.md.
Parameters for executing a search.