OptionalDefaultCatalog layers only. Whether prompts run against this model default to native tool calling when they express no preference of their own. POLICY flag — subordinate to LLMConfigurationSettings.SupportsNativeToolCalling.
OptionalNativeCatalog layers only. How control flow is expressed when a request resolves to native tool
calling. 'envelope' (the default when absent) is the hybrid: Actions are tools, everything
else — completion, chat, delegation, payload changes — is the JSON envelope. 'implicit' is the
implicit protocol: sub-agents, payload_change_request and ask_user are tools too, a tool call
continues the loop, and plain text with no call ends the turn as task completion. Consulted only
when the gate resolves native; subordinate to LLMConfigurationSettings.SupportsNativeToolCalling.
OptionalNativeCatalog layers only. Whether action results are returned to the model as native tool-result
turns instead of a markdown "Action results" user message. Absent means false. Consulted
only when the gate resolves native.
OptionalPrefixCatalog layers only. Whether this serving path's prompt cache is an exact BYTE-PREFIX match:
it reuses a prior request only when that request's entire prompt is a prefix of the new one
(OpenAI's automatic cache, xAI). Per-iteration framework state must then be appended, never
replaced, or the reusable prefix ends at the system prompt. Absent or false means a block or
segment cache (Anthropic's explicit breakpoints, Gemini's implicit cache, Cerebras's sliding
cache), where a trailing per-iteration message can be replaced in place — the safe default,
since replace-in-place costs a block-cache provider nothing whereas append-only only grows the
context.
Set true under Configuration.ModelDefaults on the VENDOR row of a prefix-cache provider so
every model it serves inherits it (the vendor default beats the model's own bag); a MODEL-VENDOR
row overrides it, so a host that serves many models (Fireworks, Cerebras, Azure, Bedrock) can
carry a per-model answer that differs from the vendor default.
Consumed by the loop agent's trailing runtime-state layout: see TrailingStateMode in
@memberjunction/ai-agents.
OptionalSupportsCatalog layers only. Whether this model accepts a forced tool choice — a named tool or
'required'. Absent means it does. When false, the prompt runner sends 'auto' in place of a
forced choice, and the agent's prompt is what steers the model to the tool.
OptionalSupportsCatalog layers only. Whether this model — or this vendor's serving of it — supports native tool/function calling. CAPABILITY flag, and a hard gate: no policy or preference at any layer can force tools onto a (model, vendor) whose resolved value is not true.
Set false only for a model or serving path verified NOT to support tools; leave absent when
support is unknown, because absent is the honest value and it inherits.
OptionalUsePrompt layers only. Whether THIS prompt asks for native tool calling. PREFERENCE — it
outranks the catalog's DefaultToNativeToolCalling and is still subordinate to the capability
gate. Absent means "no preference; fall through to the model's default".
The
LLMsection — knobs the LLM drivers and the prompt runner consume at call time.Every flag here is TRI-STATE (
boolean | null | absent), and the three differ. The cascade REPLACES on any explicit value (includingnull) and only skips a layer that OMITS the property. So absent means "inherit", while an explicit value at a higher layer overrides a lower one even when that value isfalse.Properties are marked with the layers that HONOR them. Setting one at a layer that does not honor it is inert rather than an error — deliberate tolerance, so a knob can move between layers without a schema change.
Deliberately NO index signature: this interface must stay structurally identical to the JSONType source, because CodeGen emits per-entity copies of that source and runtime code assigns those generated types straight into this one. An index signature here (and not there) makes the two incompatible. Unknown keys in stored JSON still round-trip fine at runtime — the parse is tolerant; what is lost is only a compile-time affordance nothing needs.