Typed tool definitions
Tags, direction, units, magnitude and rate limits, verification strategy and owner, enforced at call time.
The Glasent SDK is typed Python. Tools carry their limits, agents carry their goals, and the policy engine enforces both at call time.
The Glasent SDK is typed Python. Tools are declared with schemas and limits; the policy engine enforces them at call time, not in a review meeting.
# Bound the anneal agent to twelve lehr zones on FL-2.
from glasent import Agent, Tool, Limit, Autonomy
lehr = Tool(
name="lehr.write_curve",
tags=["FL2.LEHR.Z01..Z12.TEMP_SP"],
limits=[Limit(max_step="4 C", per="60s")],
)
anneal = Agent(
id="agent.anneal_stress",
goal="residual stress inside spec, min energy",
tools=[lehr, Tool("optic.read_birefringence", read_only=True)],
# bounded writes; a technologist still gates pull steps
autonomy=Autonomy.L3,
# simulate on Glastwin before every write
verify="twin",
)
run = anneal.start(line="FL-2", product="CLR-4MM")
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.
$ glasent run "thickness change FL-2 to 4 mm" --autonomy L3
→ plan composed 10 steps · 1 approval gate
→ twin.simulate 36 candidates · best #19 · stress in spec
→ policy.evaluate 11 writes permitted · 1 held for human
→ executing melt.pull ....... ok 6m20s
→ executing form.ribbon ..... ok 4m05s
→ executing anneal.curve .... ok 3m12s
! seed cluster ribbon edge · attributed to pull transient
! approval required pull step 2 · above site threshold
→ approved glass technologist on shift · 02:29:33
→ run complete scenario · stress in spec · 0 escaped seeds
$ glasent runs show scenario_fl2_01 --format genealogy
Typed Python for agents, tools and policy, with the same run engine the review console uses.
Tags, direction, units, magnitude and rate limits, verification strategy and owner, enforced at call time.
A goal statement, a tool binding, an autonomy level and a verification mode. Nothing else is needed to run.
Level definitions, tag classes, approval chains, shift and interlock conditions, versioned and reviewed like code.
Any historical run replayed against a new model or policy before either ships.
A recipe simulated on Glastwin from the SDK before it reaches a line.
Every step, tool call and approval streamed as typed events over SSE or the Python client.
REST for control, SSE for streams. Every endpoint is tenant-scoped and every write is policy-checked.
| Endpoint | Method | Purpose | Notes |
|---|---|---|---|
| /v1/runs | POST | Start a run from a goal | Returns plan and approval gates |
| /v1/runs/{id} | GET | Run record | Steps, status, genealogy link |
| /v1/runs/{id}/stream | GET (SSE) | Live step and tool-call events | Resumable by event id |
| /v1/runs/{id}/approve | POST | Approve a held step | Named approver required |
| /v1/agents | GET | Registered agents and tools | Per tenant |
| /v1/policy | GET / PUT | Autonomy policy | Versioned; PUT requires policy owner role |
| /v1/twin/simulate | POST | Rank candidate recipes | Returns ranked list with discards |
| /v1/audit | GET | Audit log export | JSON or CSV, hash-chained |
Every Glasent run is an ordered, inspectable sequence. This is scenario_fl2_01 on FL-2 · float line · clear soda-lime: Thickness change FL-2 · 6 mm to 4 mm clear float, residual stress inside spec, zero escaped seeds. It is a worked scenario that shows the shape of a run, not a measured customer result.
Plant Orchestrator · Pulled the 4 mm clear float spec, optical-grade tolerances and the standing energy window from plant MES; locked the target envelope for the run.
Glastwin · Simulated 36 candidate transition recipes across furnace pull, tin-bath ribbon speed and lehr curve; ranked them on seed risk, residual stress and energy per tonne.
Meltrix · Stepped furnace pull toward the new ribbon mass flow while holding melt temperature and fining; chemistry stayed inside the composition window.
Formeon · Raised ribbon speed and re-angled the top rollers to thin the ribbon toward 4 mm; thickness converged inside the design tolerance.
Anneon · Re-shaped the lehr cooling curve for the thinner, faster ribbon so residual stress stays inside spec at the higher speed.
Seedscan · 8 camera, optical and stress stations streaming; a seed cluster flagged at the ribbon edge and attributed to the pull transient, routed to cullet.
Plant Orchestrator · Re-sequenced cut sizes so transition ribbon routes to cullet recovery and good ribbon to the highest-value open order.
Plant Orchestrator · The second pull step exceeded the site autonomy threshold. Held for the glass technologist on shift; approved and written to the audit log.
Panebot · Re-planned pick and stack paths for the thinner panes; plates flagged by Seedscan diverted to cullet, good plates stacked to rack A3.
Plant Orchestrator · Lot released with full genealogy: batch, melt, forming, lehr curve, defect map, stress map and the technologist's approval.
Every tool invocation, argument and result is written to an immutable, human-readable log, and every reasoning step is expandable. Nothing about a run is hidden from the plant.
Plan, thought, action, observation, exactly as the orchestrator would record it.
Move FL-2 from 6 mm to 4 mm clear float with residual stress inside spec and zero escaped seeds.
Simulate the transition on the twin first. Lead with furnace pull so the ribbon mass flow is right before the forming change, then thin the ribbon, then re-shape the lehr curve. Watch the ribbon continuously; hold the second pull step for a human.
The standing recipe changes pull and ribbon speed together. On the twin that produces a fining transient that seeds the ribbon edge. Sequencing the pull step ahead of the forming change and holding fining removes most of it.
twin.simulate(candidates=36) returned recipe #19: pull in two steps, forming change after fining settles, lehr curve re-shaped before belt speed rises.
Recipe #19 scored lowest on seed risk with stress inside spec. Two candidates scored lower on energy but pushed residual stress over the site limit and were discarded.
Execute recipe #19 under autonomy level L3: eleven setpoint writes permitted, the second pull step routed to the glass technologist.
Seed cluster at the ribbon edge at 02:28:41, attributed to the pull transient. cuOpt routed that ribbon to cullet recovery; no flagged plate reached a customer stack.
Scenario run complete. Thickness at 4.0 mm, residual stress inside spec, one approval gate, full genealogy written to the lot record.
The path a new agent or tool takes before it can write to production equipment.
Declare the tool with tags, units, limits and owner. Declare the agent with a goal and a tool binding.
Run it against historical runs and inspection data. Compare recommendations to what technologists actually did.
Run it on Glastwin. Check that proposed moves stay inside stress and seed limits.
Deploy at L1 on one line. Score recommendations against the baseline.
Move to L2, then L3, with the site's sign-off. Every promotion is a policy change, versioned and signed.
A plant does not go from manual to unattended in one step. Glasent makes the level explicit, auditable and reversible at any time, and the first release plan is shadow, then assist, then graduated autonomy.
| Level | What the agent does | What the person does | When |
|---|---|---|---|
| L1 · Shadow and advisory | Observes, predicts and recommends setpoints with its reasoning | Enters every change manually; a baseline is measured | Pilot weeks 1 to 3 |
| L2 · Assist | Proposes a write; it executes on approval | Approves each write in the review console | Pilot weeks 4 to 8 |
| L3 · Bounded | Writes inside tag, rate and magnitude limits on low-risk loops | Approves pull steps, grade releases and anything above threshold | Pilot week 9 onward |
| L4 · Unattended | Runs the approved envelope without prompting | Sets the envelope; reviews the shift record | Planned, after graduated autonomy proves out |
Two agents will want the same actuator. The orchestrator arbitrates on the run goal, not on who asked first, and the handoff is logged like any other step.
Formeon wants pull held while the ribbon thins, to protect thickness convergence.
Meltrix wants the second pull step now, to settle fining before the seed rate climbs.
Seed risk outranks a short thickness excursion under the run goal "zero escaped seeds". Meltrix wins the actuator, and because the step is above threshold it goes to the technologist.
Actuator returned; Formeon recovers thickness with roller angle instead. Both requests, the score and the reason are in the run record.
Glasent reads and writes through the furnace, forming, lehr, inspection and MES systems already on the floor. No rip-and-replace, no parallel historian, no new HMI to learn.
Furnace SCADA and PLC, batch-plant weighing, redox and fining instruments
Setpoint reads and guarded writes over OPC UA and Modbus
Float-bath and IS-machine controls, gob-weight and timing systems
Gob, pull, ribbon speed and roller reads; guarded writes
Lehr zone controllers and belt drives
Zone temperature and curve reads; guarded writes
Camera, optical, thermal, polariscope and birefringence stations
Frames, stress maps, defect records, line-speed streams
Orders, grades, lots and ware genealogy
Spec and tolerance reads; genealogy and release writes
Time-series stores and lab information systems
Backfill, replay and lab chemistry
Robot cells, conveyors and stackers via NVIDIA Isaac
Pick, path and stack commands inside the safety envelope
SSO and RBAC via SAML or OIDC; NVIDIA Jetson Orin edge nodes
Named approvers, tag-level roles, sub-100 ms inference
Glasent 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.
| Standard | Scope | Status |
|---|---|---|
| SOC 2 Type I | Cloud control plane | RUNNING Planned in the first six months |
| SOC 2 Type II | Cloud control plane | QUEUED Planned in months six to twelve |
| IEC 62443 | Plant-edge OT security | RUNNING Design-aligned |
| ISO 9001 / IATF 16949 | Quality and genealogy records | SUCCEEDED Record formats supported |
| Container and safety-glass standards | Stress and defect conformance records | SUCCEEDED Record formats supported |
The questions plant directors and glass technologists 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 site has set. Every pilot starts in shadow mode, where Glasent predicts and recommends and a person enters everything. Writes come later, after the recommendations have earned it.
Control returns to your existing furnace, forming and lehr systems at their last known-good state. Glasent is a supervisory layer on top of the control system you already run, never a replacement for it, so an outage degrades the plant to its current way of running, not to a stop.
Shadow mode starts on the first day from existing SCADA, forming, lehr and inspection data. Defect and stress prediction improve as site history and labelled outcomes accumulate; the pilot plan sets a baseline period before any recommendation is scored.
Only if you choose cloud training. Compositions, forming recipes and defect libraries are tenant-isolated and never used to train another customer's models. On-prem training and an air-gapped plant edge are available for IP-sensitive producers.
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 reasoning, the limits applied and the human decision.
A 90 to 120 day line pilot in three stages: shadow mode to measure the baseline, assist mode where a technologist approves each recommendation, then bounded write-back on low-risk forming, annealing or inspection loops if the plant is satisfied with the results.
SDK access comes with a design-partner pilot. Ask for it when you scope the line.
↑↓ navigate↵ openesc close