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.
The Forgiron SDK is a design preview of how an agent is defined, bounded and run: tools with unit-aware ranges, rate limits and process envelopes, 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.
Illustrative scenario: Cell F-2 · 2,500 t closed-die press · 42CrMo4 connecting rod, one lot, one approval gate
Everything in the SDK is one of these.
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.
Tools name tags, units and whether they are read-only. Write tools carry Limits and a process envelope.
max_step per period, absolute floors and ceilings, and the qualified envelope per part family, enforced at call time by the policy engine and again at the OT boundary.
The level the forge has set for this agent, this tag, this shift. Approvals are routed to named humans above the threshold.
Start, stream, replay. Every step has an agent, a tool, a duration and a status, and the whole record is kept per part and lot.
Simulate a move on the as-forged twin before it is written. Required for any agent configured with it.
The Forgiron SDK is typed Python. Tools are declared with schemas, limits and the qualified process envelope, 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.
# Design preview. Bound the heating agent to induction heater IH-2.
from forgiron import Agent, Tool, Limit, Autonomy
power = Tool(
name="induction.set_power",
tags=["IH2.STAGE3_KW", "IH2.SOAK_S"],
limits=[Limit(max_step="4%", per="60s", envelope="42CrMo4-CR118")],
)
heat = Agent(
id="agent.heat_billet",
goal="surface 1180 to 1230 C, core-to-surface spread <= 20 C, least kWh",
tools=[power, Tool("pyro.read_surface", read_only=True)],
# bounded writes on heating; press schedule stays with a human
autonomy=Autonomy.L3,
# simulate on the twin before every write
verify="twin",
)
run = heat.start(cell="F-2", part="CR-42CrMo4-118")
for step in run.stream():
print(step.name, step.status, step.duration)
The same run engine, the same policy checks, the same audit trail, from the terminal, the review console or the SDK. Design preview.
$ forgiron run "lot CR-42CrMo4-118 on F-2" --autonomy L2+
→ plan composed 10 steps · 1 approval gate
→ twin.simulate 24 candidates · best #9 · lap risk 0.08
→ policy.evaluate 7 writes permitted · press_schedule held for human
→ executing heat.soak ........ ok 2m10s
→ executing die.spray ........ ok 48s
! approval required press_schedule blow2 −3%
→ approved shift forging engineer · 05:47:31
→ executing forge.stroke ..... ok 1m36s
→ executing inspect.fuse ..... ok continuous
→ scenario complete laps escaped 0 · lot L-80412 released
$ forgiron runs show run_7c2e41 --format genealogy
Every Forgiron run is an ordered, inspectable sequence. This is run_7c2e41 on Cell F-2 · 2,500 t closed-die press · 42CrMo4 connecting rod. Scenario completes in 10 steps with one approval gate. Surface temperature held at 1,205 °C with a 14 °C core-to-surface spread, fill predicted and confirmed complete, one lap precursor at the flash land cleared by a blow-energy trim, lot L-80412 released with full genealogy.
Plant Orchestrator · Pulled the part spec for the 42CrMo4 connecting rod from MES: forging window 1,180 to 1,230 °C, two-blow closed-die schedule, flash land 2.4 mm, temper to 28 to 32 HRC, 1,200 pieces. Locked the qualified process envelope.
Forge Twin · Simulated 24 candidate heat-and-stroke recipes on the as-forged twin for soak time, blow energy and spray timing, ranked on predicted fill, lap risk at the flash land, die load and kWh per piece.
Heat-and-Billet · Induction power on IH-2 stepped down 4% in the final soak stage as the pyrometer read 1,205 °C at the surface. Core-to-surface spread estimated at 14 °C against a 20 °C limit, no overheat, scale growth inside the window.
Die-and-Lube · Lower-die spray dose raised 6% and cooling extended 0.3 s as die surface temperature climbed through 240 °C. Heat-check growth on cavity 2 flagged at 0.31 of the die-change threshold.
Plant Orchestrator · Recipe #9 moves second-blow energy 3% below the standing schedule. Press-schedule changes stay supervised on this part family, so the step was held for the shift forging engineer and approved at 05:47:31.
Forge-and-Press · Two-blow schedule executed with the approved energy. High-speed vision and force curves confirmed complete fill on the first ten pieces; predicted lap risk at the flash land fell from 0.27 to 0.08.
Defect-and-Inspect · Eight cameras, two thermal cameras and the ultrasonic station fused at the edge. One lap precursor at the flash land on piece 212 flagged and cleared by a 1.5% blow-energy trim inside the approved envelope; the piece was routed to MPI and passed.
Robot-and-Handling · Press-to-trim transfer planned and executed by the handling robot at 11 s per piece, temperature loss in transfer 38 °C against a 60 °C limit, interlock zones clear throughout.
Trim-and-Heat · Temper furnace HT-1 zone 2 trimmed 5 °C against the predicted hardness from the recorded heat and stroke history. First hardness checks read 30 HRC, inside 28 to 32.
Quality-and-Conformance · Lot L-80412 released: genealogy written (billet lot, heat curve, stroke record, die cycles, inspection map, approvals, temper record) and dispositioned against IATF 16949 criteria with cited evidence for the quality engineer's sign-off.
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 forge.
Plan, thought, action, observation, exactly as the orchestrator would record it.
Run the 42CrMo4 connecting-rod lot on cell F-2 inside the qualified window, hold full fill with zero laps at the flash land, and land hardness between 28 and 32 HRC.
Simulate heat-and-stroke recipes on the twin first. Lead with heating so the billet state is right before the stroke, then set spray against die temperature, then execute the approved press schedule. Fuse inspection continuously. Hold any press-schedule change for a human.
The standing schedule runs the second blow hot enough to guarantee fill on a cold billet. With the induction soak held at 1,205 °C the twin predicts the same fill at 3% less energy and lower flash-land lap risk, because the metal arrives more uniform.
twin.simulate(candidates=24) returns recipe #9: stage-3 induction power down 4%, lower-die spray up 6%, second-blow energy down 3%.
Recipe #9 predicts fill 1.00, lap risk 0.08 and 1.9 kWh per piece. Two candidates scored lower on energy but pushed predicted die load past the cavity-2 limit and were discarded.
Execute recipe #9: seven bounded writes permitted on heating, spray, handling and heat-treat; the press-schedule write routed to the shift forging engineer.
Lap precursor at the flash land on piece 212 at 06:21:40. A 1.5% blow-energy trim inside the approved envelope cleared it in 17 s; the piece was routed to MPI and passed.
Scenario complete. Fill confirmed, no laps escaped, hardness 30 HRC. Lot L-80412 released with full genealogy.
A forge does not go from manual to unattended in one step. Forgiron makes the level explicit, auditable and reversible at any time. The first release runs shadow mode, then assist mode, then bounded autonomy on low-risk actions. Press control stays supervised until the part family is qualified.
| Level | What the agent does | What the human does | Where it sits in a pilot |
|---|---|---|---|
| L1 · Shadow | Reads thermal, vision, ultrasonic, MPI, press, die, robot and MES signals; predicts and recommends; writes nothing | Runs the cell as today; compares predictions to inspection and engineer outcomes | Shadow mode, baseline 30 to 60 days |
| L2 · Assist | Proposes heating, press, die-lube, routing and handling actions with evidence, confidence, envelope and rollback path | Approves each action in the review console | Assist mode, the remainder of a 90 to 180 day pilot |
| L3 · Bounded | Executes pre-approved low-risk actions: inspection routing, lube timing, heating and soak adjustments, robot path variants, inside PLC and safety limits | Approves press-schedule changes, die changes and lot release | Graduated autonomy, after audited accuracy and ROI |
| L4 · Scaled | Supervised press-schedule adaptation for qualified part families, across cells and sites | Sets the envelope; reviews the shift record and the evaluation results | Planned; after golden-dataset evaluation, simulation validation and quality sign-off |
A stroke lasts a fraction of a second and a billet cools while it waits. Perception has to be local, deterministic and fast, so Forgiron runs GPU inference at the plant edge and keeps training, simulation and optimisation in the cloud or on-prem.
8 to 24 cameras per line plus thermal, ultrasonic, MPI, press and ram streams fused at the cell. Sub-100 ms visual alerts and sub-500 ms recommendations are the design targets. Jetson Thor is planned for higher sensor density.
Defect, ultrasonic and MPI fusion, die-wear, heating, press-fill, property and disposition models behind one orchestrator at the plant edge, routed by latency, tenant, sensitivity and cost, with canary rollout by cell.
Multimodal defect, die-wear, heating, press-fill, property and quality-disposition models trained on thermal images, high-speed vision, ultrasonic and MPI signals, press curves and engineer corrections. Dedicated training capacity is planned.
Billet heating, die thermal state, press stroke, fill, stress, die load and robot handling simulated before the stroke. GPU forging FEM is the workload; physics-informed surrogates are planned so recipes rank at production cadence.
Rare lap, fold, underfill, crack and die-wear scenarios generated and validated against real inspection distributions before promotion. Planned.
Die allocation, press sequencing, heating batches, heat-treat queues, robot and takt coordination and inspection routing.
Hot billet, forging, die and trim handling skills trained and validated in simulation before they run next to a press.
Daily features from thermal, video, ultrasonic, MPI, press and genealogy data for retraining, drift detection and yield, scrap, die-life and energy benchmarks.
Forgiron writes to production equipment. Every capability is scoped, every write is policy-checked against the qualified envelope, and every action is written to an append-only audit log the forge owns.
| Item | Scope | Status |
|---|---|---|
| SOC 2 Type I | Cloud control plane | QUEUED Planned, first 6 months |
| SOC 2 Type II | Cloud control plane | QUEUED Planned, 6 to 12 months |
| SSO and RBAC | Console and approvals | QUEUED Planned, 6 to 12 months |
| AS9100 and NADCAP assurance packages | Disposition and genealogy evidence | QUEUED Planned, 6 to 12 months; not a certification claim |
| Standards-cited reasoning | AS9100, IATF 16949, NADCAP, ASTM documents | RUNNING In the design, every answer cites its source |
| Per-tenant and die-IP isolation | Recipes, die designs, models, memory | RUNNING In the design from day one |
| On-prem and plant-edge deployment | Sensitive producers | RUNNING Design option |
The questions plant directors, forging engineers and quality engineers ask in the first meeting.
Yes, but only within an explicit tag allow-list with per-tag rate and magnitude limits, inside the qualified process envelope, and only at the autonomy level your plant has set. Design partners start in shadow mode, where Forgiron writes nothing. Press-schedule changes stay supervised by a named forging engineer until the part family is qualified.
Control returns to the furnace, press or die controller's last known-good state. Forgiron is a supervisory layer on top of the PLCs and interlocks you already run, never a replacement for them, so an outage degrades the cell to its current way of running, not to a stop.
Advisory recommendations start from the physics-based twin and the part spec in the first weeks. Defect, die-wear and heating prediction improve as cell history and labelled outcomes accumulate per part family. The first training sets are sized at 2 million labelled frames and signals, 20,000 heat and press cycles and 10,000 die-life events per design-partner cohort, all design targets.
Only if you choose cloud training. Die designs, part drawings, recipes, process models and quality records are isolated per tenant and never used to train another customer's models. A fully on-prem deployment at the plant edge is available for sensitive producers, and federated learning across sites is planned and waits on data-rights agreements.
You are, the same as with any control strategy, which is why every write is policy-checked, bounded, logged and reversible, and why anything above your risk threshold waits for a named approver. The audit log records the request, the evidence, the envelope applied and the human decision.
A paid pilot of 90 to 180 days on one cell, scoped to a single wedge with a success metric written into the order form: defect-detection accuracy, scrap reduction, die-change reduction, energy reduction or first-pass-quality improvement. The first 30 to 60 days baseline scrap, die life, energy, inspection escapes and takt in shadow mode.
The SDK and CLI are design previews. Tell us what you would build and we will tell you where it stands.
↑↓ navigate↵ openesc close