Developers

Typed tools. Declared limits. Replayable runs.

The Draweon SDK is a design preview of how an agent is defined, bounded and run: tools with unit-aware ranges and rate limits, autonomy policy as code, deterministic replay of any historical run against a new model, and a local twin harness. The API will change before release.

Python SDK · design previewCLI · design previewPolicy as code

run_3d7a1e · agent graph · EX-3 · scenario 10 nodes · 1 approval gate
01 · orchestrator ingest.order ✓ SUCCEEDED 02 · simweon twin.simulate ✓ SUCCEEDED 03 · draw_anneal draw.tension ✓ SUCCEEDED 04 · draw_anneal anneal.current ✓ SUCCEEDED 05 · strand_cable strand.lay ✓ SUCCEEDED 06 · insulate_jacket extrude.wall ✓ SUCCEEDED 07 · defect_inspect inspect.fuse ✓ SUCCEEDED 08 · orchestrator approve.human ◆ APPROVAL 09 · robot_handling reel.change ✓ SUCCEEDED 10 · quality_conf reel.release ✓ SUCCEEDED

Illustrative scenario: EX-3 · 2.5 mm² class 2 PVC building wire, changeover, no spark faults

Concepts

Five objects

Everything in the SDK is one of these.

Agent

A goal, tools and an autonomy level

An agent declares what it is for, what it may call and how far it may go without a human. Its runs are typed and logged.

Agent

Tool

A connector call with a schema

Tools name tags, units and whether they are read-only. Write tools carry Limits.

Toolread_only

Limit

Rate and magnitude

max_step per period, absolute floors and ceilings, enforced at call time by the policy engine and again at the OT boundary.

Limit

Autonomy

L1 to L4

The level the plant has set for this agent, this tag, this shift. Approvals are routed to named humans above the threshold.

Autonomy.L1Autonomy.L3

Run

A goal becoming a graph of steps

Start, stream, replay. Every step has an agent, a tool, a duration and a status, and the whole record is kept per reel.

run.stream()run.replay()

Twin

verify=twin

Simulate a move on the as-run line twin before it is written. Required for any agent configured with it.

twin.simulate
Developers

Define an agent, bound it, run it

The Draweon SDK is typed Python. Tools are declared with schemas and limits and the policy engine enforces them at call time, not in a review meeting. This is a design preview; the API will change before release.

What you get

  • Typed tool definitions with unit-aware ranges and rate limits
  • Deterministic replay of any historical run against a new model
  • Local twin harness so a recipe is simulated before it is shipped
  • Autonomy policy as code, versioned and reviewed like any other change

Read the docs Developer guide

ex3_extrusion_agent.py
# Design preview. Bound the extrusion agent to line EX-3.
from draweon import Agent, Tool, Limit, Autonomy

screw = Tool(
    name="plc.write_setpoint",
    tags=["EX3.SCREW_RPM", "EX3.ZONE3_T"],
    limits=[Limit(max_step="2%", per="30s")],
)

extrude = Agent(
    id="agent.insulate_jacket",
    goal="wall 0.80 mm nominal, min 0.62, concentricity >= 0.90",
    tools=[screw, Tool("gauge.read_wall", read_only=True)],
    # bounded writes; humans still gate ramps
    autonomy=Autonomy.L3,
    # simulate on the twin before every write
    verify="twin",
)

run = extrude.start(line="EX-3", construction="BW-2.5-C2-PVC")
for step in run.stream():
    print(step.name, step.status, step.duration)
CLI

Start a run from anywhere

The same run engine, the same policy checks, the same audit trail, from the terminal, the review console or the SDK. Design preview.

draweon · cli · scenario
$ draweon run "changeover EX-3 to BW-2.5-C2-PVC" --autonomy L3

→ plan composed          10 steps · 1 approval gate
→ twin.simulate          36 candidates · best #22 · spark risk 0.04
→ policy.evaluate        8 writes permitted · 1 held for human
→ executing              draw.tension ..... ok   1m48s
→ executing              anneal.current ... ok   54s
→ executing              strand.lay ....... ok   1m12s
→ executing              extrude.wall ..... ok   2m36s
! approval required      line_speed 1100 → 1250 m/min
→ approved               shift process engineer · 06:41:52
→ scenario complete      spark faults 0 · reel R-30417 released

$ draweon runs show run_3d7a1e --format genealogy
Run timeline · scenario

One scenario run, step by step

Every Draweon run is an ordered, inspectable sequence. This is run_3d7a1e on EX-3 · 2.5 mm² class 2 PVC building wire. Scenario completes in 10 steps with one approval gate. Wall settles at 0.80 mm nominal, minimum 0.66 mm, concentricity 0.93, no spark faults, reel R-30417 released with full genealogy.

run_3d7a1e EX-3 · 2.5 mm² class 2 PVC building wire illustrative scenario SUCCEEDED
  1. 01 ingest.order SUCCEEDED 0.6 s

    Plant Orchestrator · Pulled the construction spec for 2.5 mm² class 2 PVC building wire from MES: 7 × 0.67 mm conductor, 0.80 mm nominal wall, 0.62 mm minimum spot wall, 6 kV spark test, 48 km order. Locked the target envelope.

  2. 02 twin.simulate SUCCEEDED 41 s

    Line Twin · Simulated 36 candidate recipes on the as-run line twin for draw schedule, lay length and extrusion setpoints, ranked on wall variance, concentricity, predicted spark risk and polymer give-away.

  3. 03 draw.tension SUCCEEDED 1 m 48 s

    Draw-and-Anneal · Capstan tension on RB1 stepped down 6% as the die-wear estimate crossed its threshold. Diameter held at 0.670 mm ± 0.004 mm and the break-risk score fell from 0.31 to 0.09.

  4. 04 anneal.current SUCCEEDED 54 s

    Draw-and-Anneal · Annealer current trimmed against the live conductivity reading to hold the softness target without over-anneal through the speed change.

  5. 05 strand.lay SUCCEEDED 1 m 12 s

    Strand-and-Cable · Lay length set to 28 mm on bunching line ST2 with payoff tension balanced across 7 spools. Roundness index held above 0.97 into the extrusion payoff.

  6. 06 extrude.wall SUCCEEDED 2 m 36 s

    Insulate-and-Jacket · Screw speed and zone 3 temperature re-cut against melt pressure and material-lot moisture. Wall settled at 0.80 mm nominal, minimum 0.66 mm, concentricity 0.93.

  7. 07 inspect.fuse SUCCEEDED continuous

    Defect-and-Inspect · 6 cameras, the laser gauge, the eddy-current head and the spark tester fused at the edge. One neckdown precursor at 12,480 m flagged and cleared by a screw-speed trim before it reached the reel.

  8. 08 approve.human APPROVAL 38 s

    Plant Orchestrator · Line-speed ramp 1,100 to 1,250 m/min exceeded the site autonomy threshold. Held for the shift process engineer and approved at 06:41:52.

  9. 09 reel.change SUCCEEDED 2 m 05 s

    Robot-and-Handling · Reel change on take-up TU3 planned and executed by the handling robot. Payoff aligned and tension re-established inside the changeover window.

  10. 10 reel.release SUCCEEDED 1 m 10 s

    Quality-and-Conformance · Reel R-30417 released: genealogy written (conductor lot, draw and anneal record, lay, wall and concentricity trace, defect map, approvals) and checked against the construction spec.

Tool calls · scenario

The agent shows its work

Every tool invocation, argument and result is written to an append-only, human-readable log, and every reasoning step is expandable. Nothing about a run is hidden from the plant.

tool-call stream · run_3d7a1e
  1. 06:30:12mes.read_order({ line: "EX-3", construction: "BW-2.5-C2-PVC" })
  2. 06:30:12ok spec locked · wall 0.80 mm nominal · min 0.62 mm · spark 6 kV
  3. 06:30:13twin.simulate({ candidates: 36, horizon: "14 min" })
  4. 06:30:54ok best recipe #22 · wall var 0.018 · spark risk 0.04 · give-away 2.1%
  5. 06:30:55policy.evaluate({ recipe: 22, autonomy: "L3" })
  6. 06:30:55ok 8 writes permitted · 1 write requires human approval
  7. 06:30:56plc.write_setpoint({ tag: "RB1.CAPSTAN_T", delta: "-6%" })
  8. 06:32:44ok diameter 0.670 mm ±0.004 · break risk 0.31 → 0.09
  9. 06:32:45plc.write_setpoint({ tag: "ANN1.CURRENT", mode: "hold_conductivity" })
  10. 06:33:39ok conductivity on target · softness in window
  11. 06:33:40plc.write_setpoint({ tag: "ST2.LAY", to: "28 mm", spools: 7 })
  12. 06:34:52ok roundness 0.97 · payoff tension balanced
  13. 06:34:53plc.write_setpoint({ tag: "EX3.SCREW_RPM", zone3: "+4 °C" })
  14. 06:37:29ok wall 0.80 nominal · min 0.66 · concentricity 0.93
  15. 06:37:30sensors.fuse({ cams: 6, laser: true, eddy: true, spark: true })
  16. 06:39:04precursor: neckdown risk 0.58 · 12,480 m · zone 3
  17. 06:39:05plc.write_setpoint({ tag: "EX3.SCREW_RPM", delta: "+1.5%" })
  18. 06:39:21ok neckdown risk 0.58 → 0.06 · wall recovered
  19. 06:39:22approval.request({ action: "line_speed", to: "1250 m/min" })
  20. 06:41:52ok approved by shift process engineer · logged
  21. 06:41:53isaac.plan_path({ task: "reel_change", takeup: "TU3" })
  22. 06:43:58ok reel changed · payoff aligned · tension re-established
  23. 06:43:59mes.log_reel({ reel: "R-30417", genealogy: "full" })
  24. 06:45:09ok scenario complete · 10 steps · spark faults 0 · released

Reasoning trace

Plan, thought, action, observation, exactly as the orchestrator would record it.

GoalChange line EX-3 over to 2.5 mm² class 2 PVC building wire, ho…

Change line EX-3 over to 2.5 mm² class 2 PVC building wire, hold 0.80 mm nominal wall and concentricity, and finish the run with zero spark faults.

PlanSimulate the changeover on the twin first. Lead with drawing a…

Simulate the changeover on the twin first. Lead with drawing and annealing so the conductor is right before stranding, then set lay, then re-cut extrusion against the live wall reading. Fuse inspection continuously. Hold the line-speed ramp for a human.

ThoughtThe standing recipe raises line speed and screw speed together…

The standing recipe raises line speed and screw speed together. On the twin that produces a wall dip at zone 3 because the melt pressure lags the speed step. Sequencing the zone 3 temperature move ahead of the speed ramp removes it.

Actiontwin.simulate(candidates=36) returns recipe #22: zone 3 up 4 °…

twin.simulate(candidates=36) returns recipe #22: zone 3 up 4 °C before the ramp, screw speed trimmed to the live wall reading, lay 28 mm.

ObservationRecipe #22 predicts wall variance 0.018 mm, spark risk 0.04 an…

Recipe #22 predicts wall variance 0.018 mm, spark risk 0.04 and give-away 2.1%. Three candidates scored lower on give-away but pushed predicted minimum wall under the spec floor and were discarded.

ActionExecute recipe #22 under autonomy level L3: eight setpoint wri…

Execute recipe #22 under autonomy level L3: eight setpoint writes permitted, the line-speed ramp routed to the shift process engineer.

ObservationNeckdown precursor at 12,480 m at 06:39:04. A 1.5% screw-speed…

Neckdown precursor at 12,480 m at 06:39:04. A 1.5% screw-speed trim cleared it in 16 s with no reel quarantined.

OutcomeScenario complete. Wall 0.80 mm nominal, minimum 0.66 mm, conc…

Scenario complete. Wall 0.80 mm nominal, minimum 0.66 mm, concentricity 0.93, zero spark faults. Reel R-30417 released with full genealogy.

Autonomy

Four levels, set per agent and per tag

A plant does not go from manual to unattended in one step. Draweon makes the level explicit, auditable and reversible at any time. The first release runs shadow mode, then assist mode, then graduated autonomy.

Autonomy levels and the human role at each
LevelWhat the agent doesWhat the human doesWhere it sits in a pilot
L1 · AdvisoryRecommends setpoints and explains why, with citationsEnters every change manuallyShadow mode, weeks 1 to 3
L2 · SupervisedProposes a write; it executes on approvalApproves each write in the review consoleAssist mode, weeks 4 to 8
L3 · BoundedWrites inside tag, rate and magnitude limitsApproves ramps, die changes and reel releaseGraduated autonomy, from week 9 if the plant is satisfied
L4 · UnattendedRuns the envelope without promptingSets the envelope; reviews the shift recordPlanned; after qualification on the construction
Accelerated computing

Physical AI, at the die train

Conductor moves at over a thousand metres a minute. Perception has to be local, deterministic and fast, so Draweon runs GPU inference at the plant edge and keeps training, simulation and optimisation in the cloud or on-prem.

Jetson Orin · DeepStream · Holoscan · TensorRT

Edge perception

4 to 12 cameras per line plus laser, eddy-current and spark streams fused at the line. Sub-50 ms alerting and sub-250 ms bounded control are the design targets. Jetson Thor is planned for higher sensor density.

Triton · NIM

Model serving

Vision, time-series, anomaly and quality models behind one orchestrator at the plant edge, with canary rollout by line and fallback to the previous validated version.

DGX or HGX · NeMo

Training

Defect classifiers, sensor-fusion models, time-series prognostics and cable-process reasoning models trained on reel telemetry and engineer corrections. Dedicated training capacity is planned.

Omniverse · OVX · Modulus

Line twin

As-run drawing, stranding, extrusion, thermal and tension simulation. Physics-informed surrogates are planned so recipes can be optimised at production cadence.

Cosmos · Omniverse Replicator

Synthetic data

Rare spark, pinhole, eccentricity, neckdown and break variants generated and validated against real gauge, spark and vision distributions before promotion. Planned.

cuOpt

Optimisation

Line sequencing, reel changeovers, energy allocation, takt and constrained setpoint proposals.

Isaac · Isaac Sim

Robot handling

Spool, reel and payoff and take-up motion planned and validated in simulation before it runs next to moving conductor.

Guardrails

An agent that can move a screw speed needs a leash

Draweon writes to production equipment. Every capability is scoped, every write is policy-checked, and every action is written to an append-only audit log the plant owns.

  • Bounded action space. Each agent writes only to an explicit tag allow-list, inside per-tag rate and magnitude limits.
  • Policy engine before every write. Autonomy level, shift, construction, interlock state and operator presence are evaluated before a setpoint moves.
  • Human-in-the-loop gates. Anything above the site threshold, such as line-speed ramps, die changes and reel release, waits for a named approver.
  • Immutable audit log. Append-only and exportable. Every action records source signals, retrieved procedures, predicted impact, allowed range, rollback condition, approver and reel scope.
  • Hard fallback. Loss of the edge node, the network or a model returns control to the line controller's last known-good state.
  • Tenant and IP isolation. Construction recipes, defect libraries and process memory never cross a customer boundary. On-prem deployment is available for sensitive producers.

Compliance posture

Compliance and certification status
ItemScopeStatus
SOC 2 Type ICloud control plane QUEUED Planned, first 6 months
SOC 2 Type IICloud control plane QUEUED Planned, 6 to 12 months
SSO and RBACConsole and approvals QUEUED Planned, 6 to 12 months
Standards-cited reasoningUL, IEC, IPC, USCAR documents RUNNING In the design, every answer cites its source
Per-tenant isolationRecipes, models, memory RUNNING In the design from day one
On-prem and plant-edge deploymentSensitive producers RUNNING Design option

Read the security overview

FAQ

Straight answers

The questions plant directors and process engineers ask in the first meeting.

Yes, but only within an explicit tag allow-list with per-tag rate and magnitude limits, and only at the autonomy level your plant has set. Level 1 is advisory: Draweon recommends and a human enters everything. Design partners start there, in shadow mode, before supervised writes.

Get started

Ask for early access

The SDK and CLI are design previews. Tell us what you would build and we will tell you where it stands.