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:
| View | Categories | Access |
|---|---|---|
| Domains | Workflow (BPMN), AI/ML, Business, Product, Software | Free |
| Cloud | Generic, AWS, Azure, Google Cloud, Cloudflare | One-time unlock — see Cloud & Open Source Types |
| Open Source | 17 categories, from OS and Containers to AI & ML and Business Apps | One-time unlock — see Cloud & Open Source Types |
| Other | Anything not assigned to a view | Free |
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.
| Name | dai:type | Legacy dai:stepType | Documents |
|---|---|---|---|
| Agent | dai.types.ai.agent | agent | An autonomous AI agent (container by default) |
| Context | dai.types.ai.context | context | Background knowledge, grounding data, or reference material that informs downstream steps |
| Dataset | dai.types.ai.dataset | dataset | A training, fine-tuning, or evaluation dataset |
| Evaluation | dai.types.ai.evaluation | evaluation | An evaluation suite or benchmark for AI behaviour |
| Guardrail | dai.types.ai.guardrail | guardrail | A runtime enforcement or detection mechanism |
| Human | dai.types.ai.human | — | A human-in-the-loop step: a person approves, reviews, provides input or handles an escalation before the flow continues |
| Knowledge | dai.types.ai.knowledge | — | A knowledge base that AI steps retrieve from (RAG): documents, sites, wikis or databases indexed for search |
| Markdown | dai.types.ai.markdown-note | markdown-note | A freeform note with markdown content rendered on canvas |
| MCP Server | dai.types.ai.mcp-server | — | A Model Context Protocol (MCP) server that exposes Tools, resources and prompts to AI clients (container by default) |
| Memory | dai.types.ai.memory | memory | A persistent or long-term memory store |
| Model | dai.types.ai.model | — | An AI/ML model that Agents and Prompts use: an LLM, embedding, vision, speech or classical ML model |
| Output | dai.types.ai.output | — | A result an Agent or workflow produces: a response, document, file, structured data or action payload |
| Prompt | dai.types.ai.prompt | prompt | A reusable prompt template with system instructions, a user message, and an expected output format |
| Router | dai.types.ai.router | — | Routes a request to one of several Agents, Models or Tools based on intent, rules, similarity, or cost and latency |
| Rule | dai.types.ai.rule | rule | A constraint, policy, or business rule the AI must respect and enforce throughout the workflow |
| Session | dai.types.ai.session | — | One conversation or run scope (container by default) |
| Skill | dai.types.ai.skill | skill | An autonomous capability the AI can invoke when it judges the context appropriate |
| Tool | dai.types.ai.tool | tool | A callable function with a concrete implementation |
Business Types
Strategy, governance, and analysis artefacts.
| Name | dai:type | Legacy dai:stepType | Documents |
|---|---|---|---|
| Assumption | dai.types.business.assumption | assumption | A documented assumption the project or model depends on |
| Budget | dai.types.business.budget | budget | A budget or cost allocation for a project, initiative, or resource |
| Competitor | dai.types.business.competitor | — | A competing company or product |
| Constraint | dai.types.business.constraint | — | A fixed limit the work must fit within: a deadline, budget cap, legal or regulatory limit, technical limit or resource limit |
| Customer | dai.types.business.customer | — | A customer segment or named account the business serves |
| Decision | dai.types.business.decision-record | decision-record | A business decision: documents the context, the choice made and its consequences for future reference |
| Dependency | dai.types.business.dependency | — | Something the work needs from another team, vendor, decision or approval before it can proceed |
| Initiative | dai.types.business.initiative | — | A funded body of work that pursues one or more Objectives (container by default) |
| Key Result | dai.types.business.key-result | — | A measurable outcome that shows progress on an Objective, with a baseline, a target and the current value |
| KPI | dai.types.business.kpi-metric | kpi | A Key Performance Indicator — defines a measurable target used to evaluate the success of a process or initiative |
| Milestone | dai.types.business.milestone | milestone | A significant checkpoint or delivery target on the project timeline |
| Objective | dai.types.business.objective | objective | A strategic goal or OKR — a time-bound target the team aims to achieve |
| Partner | dai.types.business.partner | — | An outside organisation the business works with: a technology, reseller, supplier, integration or strategic partner |
| Policy | dai.types.business.policy | policy | An organisational or regulatory policy that governs how work is done |
| Question | dai.types.business.question | — | An open question the team needs to answer |
| Requirement | dai.types.business.requirement | requirement | A business or functional requirement with priority, source, acceptance criteria, and status |
| Risk | dai.types.business.risk-item | risk | A potential threat or uncertainty that could negatively affect the project or outcome |
| Stakeholder | dai.types.business.stakeholder | stakeholder | A person, role, or organisation with interest or influence in the project outcome |
Product Types
User needs, product structure, and discovery artefacts.
| Name | dai:type | Legacy dai:stepType | Documents |
|---|---|---|---|
| Criteria | dai.types.product.criteria | — | The conditions work must meet to count as done: acceptance criteria, success criteria, a definition of done or exit criteria |
| Epic | dai.types.product.epic | epic | A large body of work grouping multiple features or stories under a common strategic theme |
| Experiment | dai.types.product.experiment | experiment | A product experiment or A/B test — a structured hypothesis with a success metric, audience, and captured result |
| Feature | dai.types.product.feature | feature | A discrete product capability that delivers value to users |
| Feedback | dai.types.product.feedback | feedback | User feedback or insight as a distinct input artifact |
| Hypothesis | dai.types.product.hypothesis | — | A testable belief about a change and its effect: we believe [change] for [who] will [result]; we will know when [signal] |
| Insight | dai.types.product.insight | — | A learning drawn from research, feedback or data, and what it means for the product |
| Journey | dai.types.product.journey | journey | A user journey map — the sequence of steps a persona takes to achieve a goal |
| Metric | dai.types.product.metric | product-metric | A product or feature-level metric |
| Outcome | dai.types.product.outcome | — | The change in user or customer behaviour the product aims for, and how you will measure it |
| Persona | dai.types.product.persona | persona | A research-based user archetype that represents a segment of your target audience |
| Problem | dai.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 |
| Release | dai.types.product.release | — | A versioned delivery to users (container by default) |
| Roadmap | dai.types.product.roadmap | roadmap | A release or roadmap container that sequences Epics, Features, and Milestones over a planning horizon (container by default) |
| Story | dai.types.product.story | story | A user story that defines a desired outcome from a specific persona’s perspective |
| To-do | dai.types.product.todo | — | A small action item for the team |
Software Types
Technical architecture, implementation, and quality artefacts.
| Name | dai:type | Legacy dai:stepType | Documents |
|---|---|---|---|
| Client | dai.types.software.client | — | An application people use to reach the system: a web, mobile or desktop app, a CLI or an SDK |
| Component | dai.types.software.component | component | A UI or software component — its type, props/interface, and usage description |
| Config | dai.types.software.config | — | Configuration for a service or environment: settings, feature switches and secret references, and where they come from |
| Database | dai.types.software.database | database | A database or data store — its engine, host, schema name, and access patterns |
| Decision | dai.types.software.decision | — | A technical or architecture decision record (ADR): the context, the options considered, the decision and its consequences |
| Dependency | dai.types.software.dependency | dependency | An external library, package, service, API, or resource the project relies on |
| Endpoint | dai.types.software.api-endpoint | api-endpoint | Defines a REST or GraphQL API endpoint — its method, path, auth, and request/response schemas |
| Environment | dai.types.software.environment | environment | A deployment environment — dev, staging, production, or any named runtime target (container by default) |
| Event | dai.types.software.event | event | A domain event in an event-driven or microservice architecture — its producer, consumers, payload schema, and broker |
| Feature Flag | dai.types.software.feature-flag | — | A runtime toggle that turns behaviour on or off without a deploy, for releases, experiments, operations or permissions |
| Interface | dai.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 |
| Issue | dai.types.software.issue | issue | A bug, defect, or blocker that needs to be tracked and resolved |
| Job | dai.types.software.job | — | A background or scheduled worker that runs to completion: triggered by a schedule, a queue, an event or by hand |
| Model | dai.types.software.model | model | A data schema or structured type definition |
| Pipeline | dai.types.software.pipeline | pipeline | A CI/CD or release pipeline |
| Queue | dai.types.software.queue | — | A message queue, topic or stream that carries messages between services |
| Repository | dai.types.software.repository | repository | A source control repository |
| Service | dai.types.software.service | service | An external or internal service — its base URL, auth scheme, and version |
| System | dai.types.software.system | — | A software system: the Services, Clients, Databases, Queues and Jobs that are owned and released together (container by default) |
| Test | dai.types.software.test | test | A 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.