Skip to content

Interface: WebSearchPluginConfig

AppKit config accepted by the web-search plugin.

  • BasePluginConfig

[key: string]: unknown

optional allowedUrls?: string | string[]

Optional URL allow-list. Each entry is a glob (or bare host) tested against a URL’s full href. When set, web_search silently filters citations to the permitted set and web_fetch refuses a disallowed URL. Accepts a string[] or a comma-/whitespace-separated string; falls back to WEB_SEARCH_ALLOWED_URLS. Omit (or leave empty) for no restriction. See allowlist.ts.


optional approval?: ApprovalGate | ApprovalPolicy

Approval gate applied to BOTH tools (per-tool overrides via WebSearchToolOptions.approval win). true gates every call; a URL-pattern (or list) gates only matching calls; an ApprovalPolicy states the mode directly. Omit for no approval.


optional fetchMaxLength?: number

Hard cap on the character length of a single web_fetch result. Falls back to WEB_SEARCH_FETCH_MAX_LENGTH, then DEFAULT_FETCH_MAX_LENGTH.


optional host?: string

BasePluginConfig.host


optional maxCitations?: number

Hard cap on the number of citations a single search returns. Falls back to WEB_SEARCH_MAX_CITATIONS, then DEFAULT_MAX_CITATIONS.


optional model?: string

The web-search model to use by default: a Databricks serving endpoint name ("databricks-gemini-3-pro"), a loose name ("gemini", "gpt"), or a capability class. Fuzzy-matched against the live catalogue. Falls back to WEB_SEARCH_MODEL, then DATABRICKS_SERVING_ENDPOINT_NAME, then the modelFallbacks order. Chosen independently of the calling agent’s chat model.


optional modelFallbacks?: string | string[]

Priority-ordered web-search model candidates tried when model is unset, each fuzzy-matched and checked for web-search support. Falls back to WEB_SEARCH_MODEL_FALLBACKS (comma/space-separated), then DEFAULT_MODEL_FALLBACKS (Gemini, then GPT).


optional modelFuzzyMatch?: boolean

Enable fuzzy matching of loose model names against the catalogue. Defaults to true; falls back to WEB_SEARCH_FUZZY.


optional modelFuzzyThreshold?: number

Fuse.js fuzzy threshold. Falls back to WEB_SEARCH_FUZZY_THRESHOLD, then the shared default.


optional name?: string

BasePluginConfig.name


optional scrapeFallback?: boolean

Fall back to a DuckDuckGo scrape when the workspace has NO deployed web-search-capable model (no GPT / Gemini serving endpoint). The native Databricks tool is always preferred; this only kicks in when there is no native option, so the tool still returns results instead of erroring. Defaults to true; set false (or WEB_SEARCH_SCRAPE_FALLBACK=0) to require a native model and error otherwise.


optional telemetry?: TelemetryOptions

BasePluginConfig.telemetry


optional timeoutMs?: number

Per-request network timeout in ms for search + fetch. Falls back to WEB_SEARCH_TIMEOUT_MS, then DEFAULT_TIMEOUT_MS.


optional urlPolicy?: UrlPolicyMode

Which URLs the tools may reach (UrlPolicyMode). Falls back to WEB_SEARCH_URL_POLICY, then to "allowlist" when allowedUrls has entries and "unrestricted" when it does not. Naming the mode explicitly is the way to state that an open deployment is intended; "allowlist" with no entries, or "unrestricted" alongside entries, is a contradiction and fails at resolution.


optional webSearchTools?: Record<string, unknown>

Provider -> tool-spec override map, merged over the built-in WEB_SEARCH_PROVIDERS defaults. Keyed by provider family ("openai", "gemini"); each value may override the tool entry and/or the api surface. Use to change the tool shape as the platform evolves without a code change. Falls back to WEB_SEARCH_TOOLS parsed as JSON. This is the WEB_SEARCH_TOOLS setting.