Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

DAI Studio

Element Types

The full typed vocabulary: the free Domains types (AI/ML, Business, Product, Software, Workflow), plus the Cloud and Open Source catalogs.

Element types are the semantic vocabulary of a .dai file. Rather than a fixed notation, each type names a concept — a rule, a tool, a risk, a persona — so an AI reading the file understands the intent of every element, not just its shape.

How typing works

A typed element carries a dai:type — its id in the DAI Studio type catalog, written as a dot path dai.types.<category>.<leaf> — plus that type’s values. The 42 original types also carry a legacy dai:stepType, which DAI Studio keeps writing alongside dai:type; newer types have only dai:type.

<bpmn:task id="Task_1" name="web_search"
  dai:type="dai.types.ai.tool" dai:stepType="tool"
  dai:language="python" dai:returns="list[dict]"
  dai:notes="Search the web and return up to n results." />

Each value lives in one place, published per field by the catalog: a dai: attribute, a <dai:field> child, or the dai:properties list — see Where values go.

Any type can be a container. An element with no children is a bpmn:task; once you nest elements inside it, it is a bpmn:subProcess. Its type and values don’t change. Some types — Agent, MCP Server, Session, Initiative, Release, Roadmap, Environment, System, and most cloud hierarchy and network types — are placed as containers by default. A bpmn:subProcess with no dai:type is a plain untyped group — see Flow & Structure Elements.

Where types come from

Types are published in a signed catalog served at https://dai.studio/api/catalog. The editor ships a built-in copy of the free Domains types, so it works offline. In the editor, Types in the top bar opens the catalog as views → categories → groups:

ViewCategoriesAccess
DomainsWorkflow (BPMN), AI/ML, Business, Product, SoftwareFree
CloudGeneric, AWS, Azure, Google Cloud, CloudflareOne-time unlock — see Cloud & Open Source Types
Open Source17 categories, from OS and Containers to AI & ML and Business AppsOne-time unlock — see Cloud & Open Source Types
OtherAnything not assigned to a viewFree

When a file uses a type the editor doesn’t know, the element is drawn grey with a dashed outline, its values are shown read-only, and it is saved unchanged.

The Domains vocabulary

Choose whichever types are semantically meaningful for your domain — the vocabulary is a toolkit, not a prescription. Within each category the editor lists types A–Z.

AI/ML Types

Primitives that shape how an AI thinks and acts — the core building blocks of AI workflows.

Namedai:typeLegacy dai:stepTypeDocuments
Agentdai.types.ai.agentagentAn autonomous AI agent (container by default)
Contextdai.types.ai.contextcontextBackground knowledge, grounding data, or reference material that informs downstream steps
Datasetdai.types.ai.datasetdatasetA training, fine-tuning, or evaluation dataset
Evaluationdai.types.ai.evaluationevaluationAn evaluation suite or benchmark for AI behaviour
Guardraildai.types.ai.guardrailguardrailA runtime enforcement or detection mechanism
Humandai.types.ai.human—A human-in-the-loop step: a person approves, reviews, provides input or handles an escalation before the flow continues
Knowledgedai.types.ai.knowledge—A knowledge base that AI steps retrieve from (RAG): documents, sites, wikis or databases indexed for search
Markdowndai.types.ai.markdown-notemarkdown-noteA freeform note with markdown content rendered on canvas
MCP Serverdai.types.ai.mcp-server—A Model Context Protocol (MCP) server that exposes Tools, resources and prompts to AI clients (container by default)
Memorydai.types.ai.memorymemoryA persistent or long-term memory store
Modeldai.types.ai.model—An AI/ML model that Agents and Prompts use: an LLM, embedding, vision, speech or classical ML model
Outputdai.types.ai.output—A result an Agent or workflow produces: a response, document, file, structured data or action payload
Promptdai.types.ai.promptpromptA reusable prompt template with system instructions, a user message, and an expected output format
Routerdai.types.ai.router—Routes a request to one of several Agents, Models or Tools based on intent, rules, similarity, or cost and latency
Ruledai.types.ai.ruleruleA constraint, policy, or business rule the AI must respect and enforce throughout the workflow
Sessiondai.types.ai.session—One conversation or run scope (container by default)
Skilldai.types.ai.skillskillAn autonomous capability the AI can invoke when it judges the context appropriate
Tooldai.types.ai.tooltoolA callable function with a concrete implementation

Business Types

Strategy, governance, and analysis artefacts.

Namedai:typeLegacy dai:stepTypeDocuments
Assumptiondai.types.business.assumptionassumptionA documented assumption the project or model depends on
Budgetdai.types.business.budgetbudgetA budget or cost allocation for a project, initiative, or resource
Competitordai.types.business.competitor—A competing company or product
Constraintdai.types.business.constraint—A fixed limit the work must fit within: a deadline, budget cap, legal or regulatory limit, technical limit or resource limit
Customerdai.types.business.customer—A customer segment or named account the business serves
Decisiondai.types.business.decision-recorddecision-recordA business decision: documents the context, the choice made and its consequences for future reference
Dependencydai.types.business.dependency—Something the work needs from another team, vendor, decision or approval before it can proceed
Initiativedai.types.business.initiative—A funded body of work that pursues one or more Objectives (container by default)
Key Resultdai.types.business.key-result—A measurable outcome that shows progress on an Objective, with a baseline, a target and the current value
KPIdai.types.business.kpi-metrickpiA Key Performance Indicator — defines a measurable target used to evaluate the success of a process or initiative
Milestonedai.types.business.milestonemilestoneA significant checkpoint or delivery target on the project timeline
Objectivedai.types.business.objectiveobjectiveA strategic goal or OKR — a time-bound target the team aims to achieve
Partnerdai.types.business.partner—An outside organisation the business works with: a technology, reseller, supplier, integration or strategic partner
Policydai.types.business.policypolicyAn organisational or regulatory policy that governs how work is done
Questiondai.types.business.question—An open question the team needs to answer
Requirementdai.types.business.requirementrequirementA business or functional requirement with priority, source, acceptance criteria, and status
Riskdai.types.business.risk-itemriskA potential threat or uncertainty that could negatively affect the project or outcome
Stakeholderdai.types.business.stakeholderstakeholderA person, role, or organisation with interest or influence in the project outcome

Product Types

User needs, product structure, and discovery artefacts.

Namedai:typeLegacy dai:stepTypeDocuments
Criteriadai.types.product.criteria—The conditions work must meet to count as done: acceptance criteria, success criteria, a definition of done or exit criteria
Epicdai.types.product.epicepicA large body of work grouping multiple features or stories under a common strategic theme
Experimentdai.types.product.experimentexperimentA product experiment or A/B test — a structured hypothesis with a success metric, audience, and captured result
Featuredai.types.product.featurefeatureA discrete product capability that delivers value to users
Feedbackdai.types.product.feedbackfeedbackUser feedback or insight as a distinct input artifact
Hypothesisdai.types.product.hypothesis—A testable belief about a change and its effect: we believe [change] for [who] will [result]; we will know when [signal]
Insightdai.types.product.insight—A learning drawn from research, feedback or data, and what it means for the product
Journeydai.types.product.journeyjourneyA user journey map — the sequence of steps a persona takes to achieve a goal
Metricdai.types.product.metricproduct-metricA product or feature-level metric
Outcomedai.types.product.outcome—The change in user or customer behaviour the product aims for, and how you will measure it
Personadai.types.product.personapersonaA research-based user archetype that represents a segment of your target audience
Problemdai.types.product.problem—A user or customer problem worth solving: who has it, the evidence for it, how often and how badly it hurts, and how people cope today
Releasedai.types.product.release—A versioned delivery to users (container by default)
Roadmapdai.types.product.roadmaproadmapA release or roadmap container that sequences Epics, Features, and Milestones over a planning horizon (container by default)
Storydai.types.product.storystoryA user story that defines a desired outcome from a specific persona’s perspective
To-dodai.types.product.todo—A small action item for the team

Software Types

Technical architecture, implementation, and quality artefacts.

Namedai:typeLegacy dai:stepTypeDocuments
Clientdai.types.software.client—An application people use to reach the system: a web, mobile or desktop app, a CLI or an SDK
Componentdai.types.software.componentcomponentA UI or software component — its type, props/interface, and usage description
Configdai.types.software.config—Configuration for a service or environment: settings, feature switches and secret references, and where they come from
Databasedai.types.software.databasedatabaseA database or data store — its engine, host, schema name, and access patterns
Decisiondai.types.software.decision—A technical or architecture decision record (ADR): the context, the options considered, the decision and its consequences
Dependencydai.types.software.dependencydependencyAn external library, package, service, API, or resource the project relies on
Endpointdai.types.software.api-endpointapi-endpointDefines a REST or GraphQL API endpoint — its method, path, auth, and request/response schemas
Environmentdai.types.software.environmentenvironmentA deployment environment — dev, staging, production, or any named runtime target (container by default)
Eventdai.types.software.eventeventA domain event in an event-driven or microservice architecture — its producer, consumers, payload schema, and broker
Feature Flagdai.types.software.feature-flag—A runtime toggle that turns behaviour on or off without a deploy, for releases, experiments, operations or permissions
Interfacedai.types.software.interface—A contract between parts of the system that is more than one HTTP endpoint: an OpenAPI, GraphQL, gRPC or AsyncAPI spec, a library or SDK interface, a CLI or a file format
Issuedai.types.software.issueissueA bug, defect, or blocker that needs to be tracked and resolved
Jobdai.types.software.job—A background or scheduled worker that runs to completion: triggered by a schedule, a queue, an event or by hand
Modeldai.types.software.modelmodelA data schema or structured type definition
Pipelinedai.types.software.pipelinepipelineA CI/CD or release pipeline
Queuedai.types.software.queue—A message queue, topic or stream that carries messages between services
Repositorydai.types.software.repositoryrepositoryA source control repository
Servicedai.types.software.serviceserviceAn external or internal service — its base URL, auth scheme, and version
Systemdai.types.software.system—A software system: the Services, Clients, Databases, Queues and Jobs that are owned and released together (container by default)
Testdai.types.software.testtestA test case or verification condition — documents what is being tested, how to run it, and what constitutes a pass

Workflow (BPMN)

The BPMN control-flow vocabulary underneath the typed elements — events, gateways, tasks, containers, and connections, plus annotations, data stores, and categories. Every one of them accepts a dai:notes description, and a generic Task with no dai:type remains available for steps that don’t fit a more specific type.

Cloud & Open Source

Hundreds of further types for cloud architecture (Generic, AWS, Azure, Google Cloud, Cloudflare) and self-hosted open-source stacks. They follow the same rules — dai:type, fields, containment — and have no dai:stepType.