Orkena
▸ Browse docs — Reference

▸ SECTION D · Reference

DSL reference

Last updated: 2026-08-16

The graph DSL is a YAML definition language. It is the code-parity surface of the visual canvas: the same definition, either surface, zero drift.

Top-level schema

graph: <name>            # required, unique per workspace
version: <semver>        # immutable once published
description: <string>    # optional
nodes: { <name>: <node-config> }
edges: [ <from> -> <to> ]  # or conditional: <from> -> <to> when <condition>

Node config by type

Each type’s purpose is described in Nodes; this table is the config schema.

TypeConfig keys
agentmodel, system_prompt, temperature, tools, max_steps
toolmcp_server, tool, args
transformcode (pure function) or template
routerfield, cases: {value: target}
trigger`type: inbound_email
terminateoutput
gate.hitlquorum, roles, sla, escalate
gate.policypack, version
gate.evalsuite, threshold
human_taskassignee_roles, instructions
mapover, subgraph
subgraphgraph, version, inputs
wait`until: duration
memory.readkey, scope
memory.writekey, value, scope
rag.retrievestore, query, top_k

Example

graph: refund-approval
version: v1.3
nodes:
  trigger: { type: trigger, input: inbound_email }
  triage:
    type: agent
    model: anthropic/claude-sonnet-4
    tools: [search, classify]
  gate:
    type: gate.policy
    pack: baseline-security
  approve:
    type: gate.hitl
    quorum: 2
    roles: [ops_lead, compliance]
    sla: 4h
    escalate: vp_ops
  pay:
    type: tool
    mcp_server: payments
    tool: issue_refund
edges:
  - trigger -> triage
  - triage -> gate
  - gate -> approve
  - approve -> pay

Versioning

  • Drafts are mutable; published versions are immutable.
  • Activation pins a version; every run records the pin in the ledger.
  • Editing a published graph creates a draft, never a mutation.

Was this helpful?