{
  "docVersion": 1,
  "id": "template-agentic-ai-platform",
  "name": "Agentic AI platform",
  "purpose": "Agents that act under supervision: orchestrated planning and execution, cross-vendor critique, guard-railed and compensable tool calls, human approval for irreversible actions, and a replayable run log.",
  "nodes": {
    "user": {
      "type": "user",
      "label": "User goal",
      "x": 20,
      "y": 260,
      "runtime": "“fix the failing invoices”"
    },
    "orch": {
      "type": "agent",
      "label": "Orchestrator",
      "x": 270,
      "y": 260,
      "runtime": "owns goal · budget · deadline",
      "color": "purple",
      "notes": "The only component with the whole picture. Enforces token/time budgets — an agent that can't stop is an outage that bills you."
    },
    "planner": {
      "type": "agent",
      "label": "Planner",
      "x": 520,
      "y": 90,
      "runtime": "decomposes into steps"
    },
    "workers": {
      "type": "agent",
      "label": "Worker agents ×N",
      "x": 520,
      "y": 260,
      "runtime": "one step each",
      "patterns": [
        "autoscale",
        "stateless"
      ]
    },
    "critic": {
      "type": "agent",
      "label": "Critic / judge",
      "x": 520,
      "y": 430,
      "runtime": "DIFFERENT vendor · reviews drafts",
      "color": "green",
      "notes": "Cross-vendor on purpose: a model reviewing its own family's work inherits the same blind spots. One revision round, then ship or escalate."
    },
    "hitl": {
      "type": "user",
      "label": "Human checkpoint",
      "x": 770,
      "y": 90,
      "runtime": "approves irreversible actions",
      "color": "amber"
    },
    "tools": {
      "type": "orchestrator",
      "label": "Tool router",
      "x": 770,
      "y": 260,
      "runtime": "schema guardrails · allow-list",
      "color": "blue",
      "notes": "The safety boundary: validates arguments against schemas, blocks tools not on the plan's allow-list, and tags every side effect with its compensation."
    },
    "ext": {
      "type": "partnerapi",
      "label": "External systems",
      "x": 1020,
      "y": 260,
      "runtime": "side effects live here",
      "color": "amber"
    },
    "log": {
      "type": "storage",
      "label": "Run log",
      "x": 770,
      "y": 430,
      "runtime": "every step · replayable",
      "patterns": [
        "backup"
      ]
    }
  },
  "edges": {
    "e1": {
      "from": "user",
      "to": "orch",
      "fromSide": "right",
      "toSide": "left",
      "label": "goal + budget",
      "animated": true
    },
    "e2": {
      "from": "orch",
      "to": "planner",
      "fromSide": "right",
      "toSide": "left",
      "label": "plan ⇄ re-plan",
      "dir": "both"
    },
    "e3": {
      "from": "orch",
      "to": "workers",
      "fromSide": "right",
      "toSide": "left",
      "label": "dispatch steps",
      "animated": true
    },
    "e4": {
      "from": "workers",
      "to": "critic",
      "fromSide": "bottom",
      "toSide": "top",
      "label": "drafts for review"
    },
    "e5": {
      "from": "critic",
      "to": "orch",
      "fromSide": "left",
      "toSide": "bottom",
      "label": "approve / revise (max 1 round)",
      "style": "dashed",
      "color": "green"
    },
    "e6": {
      "from": "workers",
      "to": "tools",
      "fromSide": "right",
      "toSide": "left",
      "label": "tool calls",
      "animated": true,
      "patterns": [
        "timeout",
        "retry",
        "circuit-breaker"
      ]
    },
    "e7": {
      "from": "tools",
      "to": "hitl",
      "fromSide": "top",
      "toSide": "bottom",
      "label": "irreversible? pause",
      "style": "dashed",
      "dir": "both",
      "color": "amber"
    },
    "e8": {
      "from": "tools",
      "to": "ext",
      "fromSide": "right",
      "toSide": "left",
      "label": "guarded execution · compensable",
      "patterns": [
        "idempotent"
      ]
    },
    "e9": {
      "from": "workers",
      "to": "log",
      "fromSide": "bottom",
      "toSide": "left",
      "label": "every step traced",
      "style": "dashed"
    }
  },
  "boxes": {
    "b1": {
      "x": 740,
      "y": 30,
      "w": 480,
      "h": 340,
      "label": "the action boundary — nothing acts without passing here",
      "color": "amber",
      "opacity": 0.04
    }
  },
  "texts": {
    "t1": {
      "x": 20,
      "y": 440,
      "text": "compensation, saga-style: if step 4 of 5 fails,\nthe tool router replays steps 1-3's registered\nundo actions. Agents don't get to leave a mess.",
      "color": "amber",
      "size": 12
    },
    "t2": {
      "x": 20,
      "y": 560,
      "text": "the run log makes agents debuggable: replay any\ntrajectory deterministically, diff two runs, and\nfeed failures back into evals.",
      "color": "purple",
      "size": 12
    }
  },
  "meta": {
    "createdAt": "2026-07-13T09:00:00.000Z",
    "modifiedAt": "2026-07-13T09:00:00.000Z"
  }
}