Quick Apps 2.0 Installation Instructions
Introduction
Quick Apps 2.0 is DIAL's open-source, no-code agent composer. It lets users assemble task-oriented workflows from DIAL agents (DIAL-native applications and AI models) and external integrations (REST APIs, MCP servers), with any tool-calling model registered in DIAL Core acting as the agent orchestrator.
Quick Apps 2.0 has two parts:
- The runtime — distributed as a standalone service, ai-dial-quickapps-backend — which executes the agent workflow and serves the configuration schema. You deploy it and register it in DIAL Core as a custom application type.
- The no-code configurator — the editor UI used to create and edit Quick Apps 2.0 instances — which ships as part of DIAL Chat. Its capabilities therefore track the DIAL Chat version, not the backend version; keep DIAL Chat current to get the latest editor features.
Follow this guide to deploy the Quick Apps 2.0 service and wire it into your DIAL installation.
[!NOTE] Quick Apps 2.0 is a schema-rich application: DIAL Core stores the application-type schema and brokers requests, while the agent logic runs in the Quick Apps 2.0 container. The legacy Quick Apps application type is a separate, SaaS-only offering and is not covered here.
- Concepts: DIAL-Native Applications and Quick Apps 2.0.
- Full configuration reference: CONFIGURATION.md.
- Application-type registration reference: application-schema.md.
Prerequisites
- Permissions to deploy and configure Helm charts and services within the Kubernetes cluster.
- DIAL Core
0.41.0or higher — the minimum version that supports the application-type schema endpoint used below. Thedial:applicationTypeRoutesblock additionally requires Core from the DIAL1.44line (0.44.0+); see Step 3. - At least one tool-calling LLM deployment (model or DIAL application) registered in DIAL Core to act as the orchestrator.
Step 1: Update Components
Make sure the following components are at compatible versions. The versions below correspond to DIAL
release 1.44 — check the latest release notes for the current stable line.
| Component | Version |
|---|---|
| ai-dial-quickapps-backend | 0.8.0 or higher |
| DIAL Core | 0.44.0 (0.41.0 minimum — see Prerequisites) |
| DIAL Chat | 0.46.0 or higher |
[!NOTE] The Quick Apps 2.0 configurator ships with DIAL Chat, so the DIAL Chat version determines which editor features are available. Upgrade DIAL Chat to get the latest configurator capabilities.
Step 2: Deploy Quick Apps 2.0 with Helm
The image is published to the public GitHub Container Registry at
ghcr.io/epam/ai-dial-quickapps-backend. Deploy it with the dial-extension Helm chart:
helm upgrade --install quickapps2 dial/dial-extension -f ./values.yaml --version <chart-version> -n dial
Example values.yaml
# This section is an example. Pin the image tag to a released version.
image:
registry: ghcr.io
repository: epam/ai-dial-quickapps-backend
tag: "0.8.0"
pullPolicy: IfNotPresent
fullnameOverride: quickapps2
ingress:
enabled: false
env:
# URL of the DIAL Core API (only required variable).
DIAL_URL: "http://dial-core.dial.svc.cluster.local"
# Default orchestrator model used when an app manifest omits `orchestrator.deployment`.
# Must be a tool-calling deployment registered in DIAL Core. Also pre-fills new apps in the editor.
DEFAULT_ORCHESTRATOR_DEPLOYMENT_ID: "gpt-5.2-2025-12-11"
[!NOTE] The service listens on port
5000and is reachable in-cluster athttp://quickapps2.dial.svc.cluster.local.DIAL_URLis the only required environment variable; see the full Environment Variables reference.
Step 3: Register the Application Type in DIAL Core
Add the Quick Apps 2.0 application type to the "applicationTypeSchemas" array in the DIAL Core
configuration. With this entry, DIAL Core fetches the configuration schema directly from the running
service via dial:applicationTypeSchemaEndpoint, so you never have to maintain a static schema by hand.
Replace <quickapps_base_url> with the service base URL from Step 2
(e.g. http://quickapps2.dial.svc.cluster.local):
{
"applicationTypeSchemas": [
{
"dial:applicationTypeDisplayName": "Quick App 2.0",
"dial:appendApplicationPropertiesHeader": false,
"dial:applicationTypeAssistantAttachmentsInRequestSupported": true,
"dial:applicationTypeCompletionEndpoint": "<quickapps_base_url>/openai/deployments/quick_apps2/chat/completions",
"dial:applicationTypeConfigurationEndpoint": "<quickapps_base_url>/openai/deployments/quick_apps2/configuration",
"dial:applicationTypeSchemaEndpoint": "<quickapps_base_url>/v1/configuration-support/application-schema",
"dial:applicationTypeRoutes": {
"configuration_support_read": {
"dial:paths": ["/v1/configuration-support(/[^/]+)*$"],
"dial:methods": ["GET"],
"dial:rewritePath": true,
"dial:permissions": ["WRITE"],
"dial:upstreams": [
{"dial:endpoint": "<quickapps_base_url>"}
]
},
"configuration_support_skill_validate": {
"dial:paths": ["/v1/configuration-support/skills/validate$"],
"dial:methods": ["POST"],
"dial:rewritePath": true,
"dial:permissions": ["WRITE"],
"dial:upstreams": [
{"dial:endpoint": "<quickapps_base_url>"}
],
"dial:attachmentPaths": {
"dial:requestBody": ["@.url"]
}
}
},
"$id": "https://mydial.epam.com/custom_application_schemas/quickapps2",
"$schema": "https://dial.epam.com/application_type_schemas/schema#"
}
]
}
What each field does:
dial:applicationTypeCompletionEndpoint— where DIAL Core sends chat completion requests.dial:applicationTypeConfigurationEndpoint— where DIAL Core pulls each app instance's configuration, including starter buttons.dial:applicationTypeSchemaEndpoint— where DIAL Core fetches the live configuration schema that powers the editor UI and validation. This keeps the schema in sync with the deployed service version automatically.dial:applicationTypeRoutes— exposes the service's/v1/configuration-support/*endpoints (used by the editor to list predefined skills, prompts, tool sets and tools) to DIAL clients through DIAL Core. Both entries areWRITE-gated since configuration support is only useful to callers with edit access.$id— the application type's identifier. Use exactlyhttps://mydial.epam.com/custom_application_schemas/quickapps2: DIAL Chat recognizes Quick Apps 2.0 (and opens the 2.0 editor) by this specific id, so it must match.
Step 4: Configure DIAL Core to Include Custom Applications
Set the following DIAL Core environment variable so end-users can create their own Quick Apps 2.0 instances:
aidial.applications.includeCustomApps: "true"
Step 5: DIAL Chat Configuration
Add quick-apps to ENABLED_FEATURES so the Quick Apps 2.0 editor is available in DIAL Chat:
ENABLED_FEATURES: "...,quick-apps"
That is all that is required. DIAL Chat recognizes a Quick Apps 2.0 application — and opens the 2.0
editor for it — by the application type's $id
(https://mydial.epam.com/custom_application_schemas/quickapps2, set in Step 3).
[!WARNING]
QUICK_APPS_HOST,QUICK_APPS_SCHEMA_ID, andQUICK_APPS_MODELare legacy settings for the original Quick Apps (1.0) and should be left unset for Quick Apps 2.0. In particular, do not pointQUICK_APPS_SCHEMA_IDat the 2.0 id — DIAL Chat would then open the old Quick Apps editor instead of the 2.0 editor. The default orchestrator model for new Quick Apps 2.0 instances comes from the backend schema (DEFAULT_ORCHESTRATOR_DEPLOYMENT_ID, Step 2).