Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

DAI Studio

The .dai Format

A .dai file is BPMN 2.0 XML with a dai: namespace extension layered on top; an abstract tree where SubProcess nests freely. Shows the minimal skeleton.

A .dai file is a BPMN 2.0 XML document extended with a custom dai: namespace. It describes a process, system, or domain as an abstract tree of semantically typed nodes:

  • Typed elements carry a dai:type (plus, for the original types, a legacy dai:stepType) and their values as dai: attributes or <dai:field> children.
  • Every typed element is either a bpmn:task or a bpmn:subProcess, decided only by whether it has children: no children, bpmn:task; children, bpmn:subProcess. That applies to every type — an Agent, an Epic, a VPC — and its type and values are identical in both forms.
  • bpmn:subProcess elements nest freely and at any depth to express containment, scope, and hierarchy. A container can contain other containers, which can contain steps, which can contain further containers. There is no depth limit.
  • Because the file is valid BPMN 2.0, any standard BPMN tooling can read the structure, while the dai: attributes carry the semantic typing that LLMs and agents act on.

.dai files carry the .dai extension and live in your DAI Studio account at dai.studio: open one from your dashboard, bring files you already have in with Upload .dai, and take them back out with Download .dai. Author or edit a diagram, then hand it to a model: Copy for AI in the editor’s top bar copies a link to the live raw XML, and Document → Export → Copy XML puts the complete file on the clipboard — see Copying to LLMs.

Minimal skeleton

Every .dai file follows this shape — a bpmn:definitions root declaring the namespaces, one bpmn:process holding the workflow metadata and the element tree, plus a diagram-interchange section that stores the visual layout:

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions
  xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
  xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
  xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
  xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
  xmlns:dai="https://dai.studio/schema/dai/1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  id="Definitions_1"
  targetNamespace="https://dai.studio/workflow">

  <bpmn:process id="Process_1" name="Untitled" isExecutable="false">
    <bpmn:extensionElements>
      <dai:workflowMeta
        description=""
        defaultModel="gpt-4o"
        targetLanguage=""
        targetFramework=""
        version="1.0" />
    </bpmn:extensionElements>

    <!-- flow elements go here -->

  </bpmn:process>

  <bpmndi:BPMNDiagram id="BPMNDiagram_1">
    <bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
      <!-- shape and edge layout go here -->
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>

</bpmn:definitions>

The two document zones

A .dai file has two distinct zones, and only the first one carries meaning for an AI reading the file:

  1. The semantic tree — the bpmn:definitions / bpmn:process content: typed tasks and containers, events, gateways, and connections, together with the dai: workflow metadata. This is what the LLM reads and reasons over.
  2. The diagram interchange (DI) — the bpmndi:BPMNDiagram section: one bpmndi:BPMNShape per element (with a dc:Bounds x/y/width/height rectangle) and one bpmndi:BPMNEdge per connection. Expanded sub-processes carry isExpanded="true" on their shape. This zone records visual layout only — DAI Studio needs it to reopen the diagram exactly as drawn, and other tools may ignore it.

Extension attributes use the dai: prefix

DAI Studio serializes its extension attributes in the dai: namespace, directly on the BPMN elements they extend:

<bpmn:task id="Task_1" name="Price Rule" dai:type="dai.types.ai.rule" dai:stepType="rule" dai:rulePriority="critical" dai:notes="…" />

Values that are stored as fields rather than attributes go in <dai:fields> inside bpmn:extensionElements. id and name are standard BPMN attributes and never take a prefix. See Universal Attributes for the attributes shared across types, where values go, and the Element Types pages for the per-type vocabulary.

Where to go next