Skip to main content

Quick App manifest

A Quick App's manifest is the applicationProperties object of its DIAL application. It describes the orchestrator, contexts, Toolsets, and features, and DIAL Core validates it against the Quick Apps JSON schema. This reference lists the top-level fields and the settings that apply to the whole app. It is for app developers who write manifests through the API or the DIAL Core configuration. It assumes you know the Quick Apps capabilities. It describes Quick Apps Backend 0.13.2.

Schema​

  • ID. Quick App applications set applicationTypeSchemaId to https://mydial.epam.com/custom_application_schemas/quickapps2, or to the backend's APP_SCHEMA_ID.
  • Source. The backend serves its schema at /v1/configuration-support/application-schema, and DIAL Core fetches it from there. See Register the application type.
  • Editor. The Quick App editor in DIAL Chat writes this manifest, and its Edit JSON opens the agent's configuration as JSON. See Build a Quick App.

Top-level fields​

FieldRequiredDescriptionReference
orchestratorYesThe orchestrator model, system prompt, iteration limit, attachment strategy, and tool discoveryOrchestrator
contextsYesFixed text, files, and folders; pass [] when there are noneContexts
tool_setsYesThe Toolsets; pass [] when there are noneTool sets
featuresNoPer-app features, listed belowFeatures
skillsNoDIAL prompts and DIAL skill resources used as skillsSkills
hooksNoTools called at the start or end of every turnHooks
tool_defaultsNoSettings for every tool call; today, timeout_secondsTimeouts
conversation_startersNoSuggested first messagesConversation starters

The smallest valid manifest:

{
"orchestrator": {
"deployment": { "deployment_id": "<MODEL_ID>" },
"system_prompt": { "type": "custom", "variables": {}, "content": "You are a helpful assistant." }
},
"contexts": [],
"tool_sets": []
}

More complete manifests are in Examples.

Features​

features turns per-app capabilities on and narrows deployment-wide limits. Leaving it out, or setting {}, keeps the defaults; time awareness is then on. "features": null turns the defaults off.

FieldDefaultCapability
timestampOnTime awareness
file_loadingBackend limitFile size
external_url_fetchBackend policyExternal URL fetch
web_fetchOffWeb fetch
dial_filesOn, all tools (from 0.14.0; off before)DIAL files tools
representation_toolingOffFiles in the answer
stage_displayinfo levelStages
tool_access_filterOffTool access filter

Conversation starters​

conversation_starters shows buttons with suggested messages before the conversation starts.

{
"conversation_starters": {
"intro_text": "Pick a starting point",
"starters": [
{ "title": "Summarize", "text": "Summarize the attached document." },
{ "title": "Translate", "text": "Translate the last user message to English." }
]
}
}
FieldRequiredDefaultDescription
startersYes—The buttons, each with a title and the text it sends
intro_textNoSelect an actionText above the buttons
auto_submitNotrueSends the text at once. With false, it fills the input for the user to edit.
chat_message_input_disabledNofalseWith true, users can start only from a button

Predefined templates​

The backend ships named templates for system prompts, Toolsets, and tools, such as the ChatHub prompts and the chathub Toolset. A manifest refers to them by name:

ReferenceTemplate
"system_prompt": { "type": "predefined", "template": "<name>" }A system prompt
{ "type": "predefined", "template_name": "<name>" } in tool_setsA Toolset
{ "type": "predefined-tool", "template_name": "<name>" } in a Toolset's toolsA tool
  • Overrides. A predefined Toolset or tool takes an override: a JSON Merge Patch applied to the template. It can't change type. See Customize a variant.
  • Your own templates. The backend's PREDEFINED_EXTRA_PATHS adds folders of templates over the built-in ones.

Localized names​

A Toolset's name and description can be a locale map, such as {"en": "Search", "de": "Suche"}, in place of a string. On dial-mcp, only description can. The backend picks the request's Accept-Language, then en, then any entry. A proxy that rewrites Accept-Language can pass the locale in another header, named by the backend's PROXY_LANGUAGE_HEADER.

Deprecated fields​

These fields are still accepted but will be removed.

DeprecatedUse instead
Top-level starters, a list of stringsconversation_starters
deployment.namedeployment.deployment_id
dial_id on dial-mcpdeployment_id
Fallback strategy stophard_stop
Fallback strategy retrycontinue
forward_tool_error_messageNothing: tool errors always reach the model
content_propagation.propagate_historyconversation_mode.resumable
display.stage.show on a toolNothing named in the schema