Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

DAI Studio

Typed Properties (dai:properties)

dai:properties / dai:property child elements define typed fields, parameters, inputs, and key-value lists. Supported types: str, int, float, bool, date, datetime, list, dict.

Several element types carry lists of typed fields inside bpmn:extensionElements:

  • Model — its schema fields
  • Tool — its call parameters
  • Agent — its typed inputs
  • MCP Server — its environment variables
  • Router — its routes
  • Config — its settings
  • Cloud and open-source types — their tags

The container is dai:properties; each row is a dai:property with a name and a type:

<bpmn:task id="Task_model" name="OrderLine" dai:type="dai.types.software.model" dai:stepType="model" dai:modelFormat="plain"
  dai:notes="A single line item within an order.">
  <bpmn:extensionElements>
    <dai:properties>
      <dai:property name="productId" type="str" />
      <dai:property name="quantity"  type="int" />
      <dai:property name="unitPrice" type="float" />
      <dai:property name="confirmed" type="bool" />
    </dai:properties>
  </bpmn:extensionElements>
</bpmn:task>

Supported property types

TypeMeaning
strString
intInteger
floatFloating-point number
boolBoolean
dateCalendar date
datetimeDate and time
listOrdered collection
dictKey/value mapping

Tool parameters

The Tool type declares its typed parameters the same way:

<bpmn:task id="Task_tool" name="fetchPrice" dai:type="dai.types.ai.tool" dai:stepType="tool" dai:language="python" dai:returns="float"
  dai:notes="Fetch the current price for a product SKU from the pricing service.">
  <bpmn:extensionElements>
    <dai:properties>
      <dai:property name="sku"      type="str" />
      <dai:property name="currency" type="str" />
    </dai:properties>
  </bpmn:extensionElements>
</bpmn:task>

Agent inputs

Agent uses the same container for its typed inputs, whether it is a bpmn:task or — with children — a bpmn:subProcess:

<bpmn:subProcess id="Agent_1" name="Research Agent" dai:type="dai.types.ai.agent" dai:stepType="agent" …>
  <bpmn:extensionElements>
    <dai:properties>
      <dai:property name="query"      type="str" />
      <dai:property name="maxSources" type="int" />
    </dai:properties>
  </bpmn:extensionElements>
  …
</bpmn:subProcess>

In DAI Studio these rows are edited directly in the Properties panel — labelled Properties on a Model, Parameters on a Tool, Inputs on an Agent — with a name field and a type dropdown per row; the panel writes the dai:properties element for you.