Skip to main content

Orchestrator

orchestrator is the required manifest field that configures the LLM driving a Quick App: the model, its system prompt, and how it handles attachments and many tools. This reference lists every field. It is for app developers who write Quick App manifests. It assumes you know orchestration.

{
"orchestrator": {
"deployment": {
"deployment_id": "<MODEL_ID>",
"parameters": { "temperature": 0.5, "seed": 820288 }
},
"system_prompt": { "type": "custom", "variables": { "company": "ACME" }, "content": "You are an assistant for {company}." },
"max_iterations": 10,
"attachment_strategy": { "type": "lazy_on_demand" },
"tool_discovery": { "enabled": true }
}
}

Fields​

FieldRequiredDefaultDescription
deploymentYes—The orchestrator model. See Deployment. When the backend's DEFAULT_ORCHESTRATOR_DEPLOYMENT_ID is set, a manifest can leave it out.
system_promptNoAn empty custom promptSee System prompt
max_iterationsNo15The most agent loop iterations in one turn. There is no unlimited setting; 0 or less fails the request before the first LLM call.
propagate_stagesNotrueShows the model's own stages, such as reasoning steps, in the answer
attachment_strategyNo—How the model receives attachments. See Attachment strategy.
tool_discoveryNo—Finds deferred tools on demand. See Tool discovery.

Deployment​

FieldRequiredDescription
deployment_idYesThe DIAL model's deployment ID
parametersNoParameters sent to the model, listed below
name—Deprecated alias for deployment_id
ParameterDescription
temperatureSampling temperature
top_pNucleus sampling
seedA seed for more reproducible answers
stopUp to 4 stop sequences
nThe number of choices to generate
max_tokensThe most tokens to generate
presence_penalty, frequency_penaltyPenalties between -2.0 and 2.0
reasoning_effortnone, minimal, low, medium, or high. Dropped, with a warning, when the model doesn't advertise features.reasoningEfforts.
custom_fields{ "configuration": {...} }, the model's own configuration, such as Anthropic betas
{
"deployment": {
"deployment_id": "<CLAUDE_MODEL_ID>",
"parameters": {
"temperature": 1.0,
"custom_fields": { "configuration": { "betas": ["token-efficient-tools-2025-02-19"] } }
}
}
}

System prompt​

system_prompt takes one of three types.

custom​

FieldRequiredDescription
type—custom
contentYesThe prompt text. {name} placeholders are filled from variables.
variablesYesValues for the placeholders; {} when there are none

dial​

FieldRequiredDescription
typeYesdial
pathYesThe prompt's relative path in DIAL, bucket included
variablesNoValues for the prompt's placeholders
{ "system_prompt": { "type": "dial", "path": "<PROMPT_PATH>", "variables": { "language": "English" } } }

predefined​

FieldRequiredDescription
typeYespredefined
templateYesThe template name, such as gpt_prompt, anthropic_prompt, or gemini_prompt for ChatHub

A predefined prompt has no override. To change it, copy its text into a custom prompt.

Attachment strategy​

FieldRequiredDescription
typeYeslazy_on_demand, the only strategy: the model loads attachments with internal_attachments_get_content
accepted_typesNoMIME types, such as image/*, that narrow what the model's deployment accepts. An empty list is rejected; leave the field out to accept everything the deployment does.

See Attachments for the orchestrator.

Tool discovery​

FieldDefaultDescription
enabledfalseLeaves deferred Toolsets out of the first LLM request, for internal_tool_search to find
service_modelThe orchestrator's modelThe model for the search call
min_tools_for_deferralMIN_TOOLS_FOR_DEFERRAL, 10Toolsets with fewer tools are always sent

See Dynamic tool discovery.

Further reading​