Blog

One graph, not two products

The canvas, the workflow JSON, and the node registry describe one thing. A second editor should never mean a second product.

Linea Labs
  • SDK
  • Builder

Status: today you author workflows in the visual builder. The TypeScript SDK starts runs and reads their results; it does not write graphs. The rule below, one definition and never two, is the one any second editor will have to follow.

Teams split here for no good reason. One group wants a canvas. The other wants a file in git. Those are two editors. They are not two products.

We keep one graph: the same nodes, the same registry, the same run. That graph is the workflow — the versioned executable behind the agent you ship. The builder draws it. The host executes that JSON. If two editors ever produced different graphs, you would operate two products. We will not ship that.

One document

This is the thing the builder saves and the host runs. The canvas is a view of it. The run does not care how you drew it.

JSON

{
  "version": 1,
  "trigger": { "type": "webhook" },
  "entryNodeId": "fetch",
  "nodes": [
    {
      "id": "fetch",
      "type": "http",
      "config": { "method": "GET", "url": "https://billing.internal/invoices" }
    },
    {
      "id": "reason",
      "type": "ai",
      "config": { "prompt": "Explain the failed invoice in one paragraph." }
    }
  ],
  "edges": [{ "from": "fetch", "to": "reason" }]
}

The useful test is boring. Can you open a run and see the same nodes you drew, the same checkpoints, the same replay target? If not, the product has split, even if the marketing has not.

Who authors what

SurfaceYou use it whenIt writes
BuilderYou want to see the pathThe same workflow JSON
SDKYour app starts a runNo graph; it calls the host
HostA trigger firesA run against that JSON

Whatever draws the graph, the checkpoint and the replay loop stay the same.

More on that in Why replay needs the checkpoint.

The Linea newsletter

What we learn from every run.

New releases and field notes on running agents in production.

One email when something ships. Unsubscribe anytime.