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
| Field | Required | Default | Description |
|---|---|---|---|
deployment | Yes | — | The orchestrator model. See Deployment. When the backend's DEFAULT_ORCHESTRATOR_DEPLOYMENT_ID is set, a manifest can leave it out. |
system_prompt | No | An empty custom prompt | See System prompt |
max_iterations | No | 15 | The most agent loop iterations in one turn. There is no unlimited setting; 0 or less fails the request before the first LLM call. |
propagate_stages | No | true | Shows the model's own stages, such as reasoning steps, in the answer |
attachment_strategy | No | — | How the model receives attachments. See Attachment strategy. |
tool_discovery | No | — | Finds deferred tools on demand. See Tool discovery. |
Deployment
| Field | Required | Description |
|---|---|---|
deployment_id | Yes | The DIAL model's deployment ID |
parameters | No | Parameters sent to the model, listed below |
name | — | Deprecated alias for deployment_id |
| Parameter | Description |
|---|---|
temperature | Sampling temperature |
top_p | Nucleus sampling |
seed | A seed for more reproducible answers |
stop | Up to 4 stop sequences |
n | The number of choices to generate |
max_tokens | The most tokens to generate |
presence_penalty, frequency_penalty | Penalties between -2.0 and 2.0 |
reasoning_effort | none, 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
| Field | Required | Description |
|---|---|---|
type | — | custom |
content | Yes | The prompt text. {name} placeholders are filled from variables. |
variables | Yes | Values for the placeholders; {} when there are none |
dial
| Field | Required | Description |
|---|---|---|
type | Yes | dial |
path | Yes | The prompt's relative path in DIAL, bucket included |
variables | No | Values for the prompt's placeholders |
{ "system_prompt": { "type": "dial", "path": "<PROMPT_PATH>", "variables": { "language": "English" } } }
predefined
| Field | Required | Description |
|---|---|---|
type | Yes | predefined |
template | Yes | The 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
| Field | Required | Description |
|---|---|---|
type | Yes | lazy_on_demand, the only strategy: the model loads attachments with internal_attachments_get_content |
accepted_types | No | MIME 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
| Field | Default | Description |
|---|---|---|
enabled | false | Leaves deferred Toolsets out of the first LLM request, for internal_tool_search to find |
service_model | The orchestrator's model | The model for the search call |
min_tools_for_deferral | MIN_TOOLS_FOR_DEFERRAL, 10 | Toolsets with fewer tools are always sent |
Further reading
- Tool sets — the Toolset types and their fields
- Orchestration — how the orchestrator runs a turn
- Examples — complete manifests
- Contexts and files — how Quick Apps use contexts, attachments, and file tools
- Quick Apps capabilities: Tools — how tool calls run, appear in Chat, fail, and time out
- ChatHub — the family of productivity-agent Quick App variants