AI agents

Six agents. One plant. No collisions.

Each Glasent product is an agent with a section of the plant, a bounded tool set and a measured outcome. They negotiate for shared actuators through the orchestrator and never write outside their allow-list.

Agent roster

Six products and an orchestrator

Each product owns a section of the glass plant, a bounded tool set and a measured outcome. They negotiate for shared actuators through the orchestrator, never directly.

agent.batch_melt

Meltrix · Batch-and-Melt

Batching, furnace melting, pull rate, melt chemistry

Autonomous batching and furnace melting, held on chemistry every second. Real-time batch, melt-chemistry and homogeneity modelling with closed-loop furnace control.

scada.read_furnacelab.read_chemistryscada.write_setpoint

Watches: Furnace zone temperatures, pull rate, batch weights, redox and fining signals, lab chemistry, Seedscan seed and stone rate

agent.form_shape

Formeon · Form-and-Shape

Float-bath and IS-machine forming, gob weight, dimension

Autonomous float-bath and IS-machine forming, dialled to exact dimension. Real-time gob-weight, pull-rate and dimension modelling with closed-loop forming control.

is.read_gobdim.read_thicknessfloat.write_ribbon

Watches: Gob weight and temperature, ribbon speed, top-roller angle, tin-bath conditions, thickness and flatness scans, Seedscan check risk

agent.anneal_stress

Anneon · Anneal-and-Stress

Lehr zones, cooling curve, residual stress

Autonomous lehr annealing that relieves stress before it becomes breakage. Real-time lehr-zone and residual-stress modelling with closed-loop cooling control.

lehr.read_zonesoptic.read_birefringencelehr.write_curve

Watches: Lehr zone temperatures, belt speed, cooling rate, birefringence and polariscope readings, product thickness from Formeon

agent.defect_inspect

Seedscan · Defect-and-Inspect

Seeds, stones, cords, checks, stress at line speed

See every seed, stone, cord and stress before it escapes the plant. Multi-sensor fusion of vision, optical, thermal and stress or birefringence at the edge.

vision.streamoptic.stress_mapalarm.raise

Watches: Every camera, optical, thermal and stress station on the line, at 30 to 60 frames a second

agent.robot_handling

Panebot · Robot-and-Handling

Pick, transfer, orient and stack hot, fragile ware

Autonomous handling of hot, fragile glass: panes, ware and stacks. Vision-guided robotic pick, transfer, orient and stack for panes, ware and substrates.

isaac.plan_pathrobot.gripwms.route

Watches: Cell cameras, ware geometry and temperature, Seedscan defect flags per piece, robot and conveyor state

agent.twin

Glastwin · Glass-line twin

Simulate melt, form and anneal; optimise before the run

Hit target quality, stress and takt before the run, in simulation first. GPU-accelerated furnace-CFD, glass-flow and annealing-stress simulation of the full chain.

twin.simulatecuopt.sequencepolicy.replay

Watches: The as-run state of the furnace, forming line and lehr, plus every candidate recipe the orchestrator proposes

agent.orchestrator · coordinates all six

Plant Orchestrator

Planning, arbitration, human approval

Plans the run, arbitrates between agents competing for the same actuator, enforces the autonomy level and routes anything above the risk threshold to a glass technologist.

plan.composepolicy.evaluateapproval.request

100% of writes policy-checked

Additional scopes

Four more scopes in the Plant tier

The six products are the first agents. The architecture names four more scopes that ship inside the Plant tier as the downstream lines are connected.

agent scope

Coat-and-Temper

Coating, tempering and finishing to exact spec. Ships inside the Plant tier as the lines downstream of the lehr are connected.

agent scope

Quality-and-Dimension

Thickness, flatness, dimension and grade optimisation across the line, built on Seedscan and Formeon signals.

agent scope

Yield-and-Takt

Yield, cullet, energy and line balancing, priced in tonnes, megawatt-hours and minutes, solved with cuOpt.

agent scope

Glass-Knowledge

Retrieval over batch recipes, forming and annealing specs, glass standards and site procedures, with a citation on every answer.

Run timeline · scenario

Agents in a single run

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.

scenario_fl2_01 · agent graph · FL-2 10 nodes · 1 approval gate · scenario
01 · orchestrator ingest.order ✓ SUCCEEDED 02 · twin twin.simulate ✓ SUCCEEDED 03 · batch_melt melt.pull ✓ SUCCEEDED 04 · form_shape form.ribbon ✓ SUCCEEDED 05 · anneal_stress anneal.curve ✓ SUCCEEDED 06 · defect_inspect inspect.ribbon ✓ SUCCEEDED 07 · orchestrator yield.balance ✓ SUCCEEDED 08 · orchestrator approve.human ◆ APPROVAL 09 · robot_handling handle.stack ✓ SUCCEEDED 10 · orchestrator ware.qualify ✓ SUCCEEDED
scenario_fl2_01 FL-2 · float line · clear soda-lime scenario SUCCEEDED
  1. 01 ingest.order SUCCEEDED 0.9 s

    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.

  2. 02 twin.simulate SUCCEEDED 41 s

    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.

  3. 03 melt.pull SUCCEEDED 6 m 20 s

    Meltrix · Stepped furnace pull toward the new ribbon mass flow while holding melt temperature and fining; chemistry stayed inside the composition window.

  4. 04 form.ribbon SUCCEEDED 4 m 05 s

    Formeon · Raised ribbon speed and re-angled the top rollers to thin the ribbon toward 4 mm; thickness converged inside the design tolerance.

  5. 05 anneal.curve SUCCEEDED 3 m 12 s

    Anneon · Re-shaped the lehr cooling curve for the thinner, faster ribbon so residual stress stays inside spec at the higher speed.

  6. 06 inspect.ribbon SUCCEEDED continuous

    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.

  7. 07 yield.balance SUCCEEDED 2.4 s

    Plant Orchestrator · Re-sequenced cut sizes so transition ribbon routes to cullet recovery and good ribbon to the highest-value open order.

  8. 08 approve.human APPROVAL 48 s

    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.

  9. 09 handle.stack SUCCEEDED 1 m 10 s

    Panebot · Re-planned pick and stack paths for the thinner panes; plates flagged by Seedscan diverted to cullet, good plates stacked to rack A3.

  10. 10 ware.qualify SUCCEEDED 1 m 02 s

    Plant Orchestrator · Lot released with full genealogy: batch, melt, forming, lehr curve, defect map, stress map and the technologist's approval.

Multi-agent handoff

Agents negotiate, they do not collide

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.

Contested move: furnace pull rate

  1. 01form_shape.request(pull hold) SUCCEEDED0.2 s

    Formeon wants pull held while the ribbon thins, to protect thickness convergence.

  2. 02batch_melt.request(pull step) SUCCEEDED0.2 s

    Meltrix wants the second pull step now, to settle fining before the seed rate climbs.

  3. 03orchestrator.arbitrate SUCCEEDED0.4 s

    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.

  4. 04form_shape.handoff(returned) SUCCEEDED90 s

    Actuator returned; Formeon recovers thickness with roller angle instead. Both requests, the score and the reason are in the run record.

Arbitration rules

  • Run goal first. Every request is scored against the declared goal, not the requesting agent's local objective.
  • Safety and escaped defects outrank throughput. A stress fault in the field costs a recall; a thickness excursion costs minutes of ribbon.
  • Time-boxed ownership. An agent holds a contested actuator for a bounded window, then must re-justify.
  • Everything is logged. The losing request, the score and the reason all appear in the run record.
  • Deadlocks escalate to a person rather than resolving by timeout.

See the agent roster

Tool calls · scenario

What an agent actually calls

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.

tool-call stream · scenario_fl2_01
  1. 02:14:03mes.read_orders({ line: "FL-2", next: "CLR-4MM" })
  2. 02:14:03ok spec locked · 4.0 mm · optical grade · stress limit set
  3. 02:14:04twin.simulate({ candidates: 36, horizon: "22 min" })
  4. 02:14:45ok best recipe #19 · seed risk low · stress inside spec
  5. 02:14:46policy.evaluate({ recipe: 19, autonomy: "L3" })
  6. 02:14:46ok 11 writes permitted · 1 write requires human approval
  7. 02:14:47scada.write_setpoint({ tag: "F1.PULL_SP", step: 1 })
  8. 02:21:07ok pull step 1 settled · fining stable · chemistry in window
  9. 02:21:08float.write_ribbon({ speed: "+", rollers: "re-angle" })
  10. 02:25:13ok thickness converging to 4.0 mm · flatness in tolerance
  11. 02:25:14lehr.write_curve({ zones: 12, profile: "4mm-fast" })
  12. 02:28:26ok residual stress inside spec at new belt speed
  13. 02:28:27vision.stream({ stations: 8, model: "seedscan-v3" })
  14. 02:28:41seed cluster · ribbon edge · attributed to pull transient
  15. 02:28:42cuopt.sequence({ objective: "cullet+energy" })
  16. 02:28:44ok transition ribbon routed to cullet · good ribbon to order
  17. 02:28:45approval.request({ action: "pull_step_2" })
  18. 02:29:33ok approved by the technologist on shift · logged
  19. 02:31:02isaac.plan_path({ stack: "A3", thickness: "4.0 mm" })
  20. 02:32:12ok paths validated in Isaac Sim · flagged plates diverted
  21. 02:33:15mes.log_lot({ lot: "FL2-4MM", genealogy: "full" })
  22. 02:34:17ok scenario run complete · stress in spec · 0 escaped seeds

Reasoning trace

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

GoalMove FL-2 from 6 mm to 4 mm clear float with residual stress i…

Move FL-2 from 6 mm to 4 mm clear float with residual stress inside spec and zero escaped seeds.

PlanSimulate the transition on the twin first. Lead with furnace p…

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.

ThoughtThe standing recipe changes pull and ribbon speed together. On…

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.

Actiontwin.simulate(candidates=36) returned recipe #19: pull in two …

twin.simulate(candidates=36) returned recipe #19: pull in two steps, forming change after fining settles, lehr curve re-shaped before belt speed rises.

ObservationRecipe #19 scored lowest on seed risk with stress inside spec.…

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.

ActionExecute recipe #19 under autonomy level L3: eleven setpoint wr…

Execute recipe #19 under autonomy level L3: eleven setpoint writes permitted, the second pull step routed to the glass technologist.

ObservationSeed cluster at the ribbon edge at 02:28:41, attributed to the…

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.

OutcomeScenario run complete. Thickness at 4.0 mm, residual stress in…

Scenario run complete. Thickness at 4.0 mm, residual stress inside spec, one approval gate, full genealogy written to the lot record.

Tool registry

Every tool is typed and bounded

Agents do not get a shell. They get a registry of typed tools, each with a direction, units, limits and an owner, enforced at call time.

Tool registry for the six products and the orchestrator
ToolOwnerDirectionLimits
scada.read_furnaceMeltrixreadRead-only
lab.read_chemistryMeltrixreadRead-only
scada.write_setpointMeltrixwriteAllow-listed tags, rate and magnitude limits
is.read_gobFormeonreadRead-only
dim.read_thicknessFormeonreadRead-only
float.write_ribbonFormeonwriteAllow-listed tags, rate and magnitude limits
lehr.read_zonesAnneonreadRead-only
optic.read_birefringenceAnneonreadRead-only
lehr.write_curveAnneonwriteAllow-listed tags, rate and magnitude limits
vision.streamSeedscanreadRead-only
optic.stress_mapSeedscanreadRead-only
alarm.raiseSeedscanwriteAllow-listed tags, rate and magnitude limits
isaac.plan_pathPanebotwriteAllow-listed tags, rate and magnitude limits
robot.gripPanebotwriteAllow-listed tags, rate and magnitude limits
wms.routePanebotwriteAllow-listed tags, rate and magnitude limits
twin.simulateGlastwinreadRead-only
cuopt.sequenceGlastwinreadRead-only
policy.replayGlastwinreadRead-only
plan.composeOrchestratorcontrolPolicy-checked; approvals routed to a named person
policy.evaluateOrchestratorcontrolPolicy-checked; approvals routed to a named person
approval.requestOrchestratorcontrolPolicy-checked; approvals routed to a named person
Design rules

How we build an agent

An agent is narrow, auditable and action-bound. Each one has a playbook, allowed tools, hard stop conditions, approval thresholds and replayable logs.

  • One section of the plant. Meltrix never touches the lehr; Anneon never touches the furnace.
  • A measured outcome. Each agent is scored against a number the plant already counts.
  • Typed tools only. No free-form writes, no undeclared tags.
  • Hard stops. Interlock state, operator presence and safety limits end a run before the model does.
  • Replayable. Any historical run can be replayed against a new model or policy before it ships.

The model router puts the best or cheapest model on each step: fine-tuned open models on high-volume perception and control, frontier models on glass-technology reasoning and question answering. Every output carries a citation to the recipe, standard or procedure it rests on, and continuous evaluation against golden datasets gates every model and prompt change in CI.

Autonomy

Four levels, set per agent and per tag

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.

Autonomy levels and the human role at each
LevelWhat the agent doesWhat the person doesWhen
L1 · Shadow and advisoryObserves, predicts and recommends setpoints with its reasoningEnters every change manually; a baseline is measuredPilot weeks 1 to 3
L2 · AssistProposes a write; it executes on approvalApproves each write in the review consolePilot weeks 4 to 8
L3 · BoundedWrites inside tag, rate and magnitude limits on low-risk loopsApproves pull steps, grade releases and anything above thresholdPilot week 9 onward
L4 · UnattendedRuns the approved envelope without promptingSets the envelope; reviews the shift recordPlanned, after graduated autonomy proves out
By section

Agents by plant section

Which agent owns which part of the plant, and what it hands to the next one.

Batch house and furnace

Meltrix

Batching, melt temperature, pull and chemistry. Hands a homogeneous melt to Formeon.

Forming

Formeon

Float-bath or IS-machine forming, gob weight and dimension. Hands dimension-correct ware to Anneon.

Lehr

Anneon

Cooling curve and residual stress. Hands stress-relieved ware to Panebot.

Inspection stations

Seedscan

Seeds, stones, cords, checks, stress and dimension drift. Feeds every control agent and the genealogy.

Cold end and stacking

Panebot

Pick, transfer, orient and stack. Diverts flagged ware on Seedscan's signal.

Before the run

Glastwin

Simulates the whole chain and ranks candidate recipes. Validates every move before promotion.

Developers

Define an agent, bound it, run it

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.

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

fl2_anneal_agent.py
# 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)
Per agent

What each agent watches and moves

No results are claimed yet. This is the loop each agent closes; the pilot measures the number.

Watched signals and moved actuators per agent
AgentWatchesMovesTier
MeltrixFurnace zone temperatures, pull rate, batch weights, redox and fining signals, lab chemistry, Seedscan seed and stone rateBatch dosing, furnace zone temperature, pull rate, inside the approved composition windowLine or Plant
FormeonGob weight and temperature, ribbon speed, top-roller angle, tin-bath conditions, thickness and flatness scans, Seedscan check riskGob weight, forming timing, ribbon speed and top-roller settings, inside per-tag rate and magnitude limitsLine or Plant
AnneonLehr zone temperatures, belt speed, cooling rate, birefringence and polariscope readings, product thickness from FormeonZone setpoints and the cooling curve, inside the approved stress and energy envelopeLine or Plant
SeedscanEvery camera, optical, thermal and stress station on the line, at 30 to 60 frames a secondNothing directly. It raises typed signals and alarms that the control agents and the orchestrator act onLine or Plant
PanebotCell cameras, ware geometry and temperature, Seedscan defect flags per piece, robot and conveyor statePick points, grip force, paths and stack destinations, inside the cell's safety envelopePlant
GlastwinThe as-run state of the furnace, forming line and lehr, plus every candidate recipe the orchestrator proposesNothing on the plant. It ranks and validates candidate moves and hands the winner to the control agentsPlant
From the plant floor

The problems we hear

No customer quotes yet; we are pre-launch. These are the three buyer personas the product is built for and the pain each one describes, in their own terms.

"The furnace has run for years on the same setpoints. The process never has. We find out a melt drifted when the cullet pile grows."

Plant / operations director · ICP persona

"I can tell you why a check appeared from the lehr curve and the gob weight. I cannot be at every line, and the people who could are retiring."

Glass technologist · ICP persona

"A missed seed is a reject. A missed stress fault is a pane that shatters in the field. I need genealogy on every piece, not a spot check."

Quality / reliability engineer · ICP persona
Integrations

It speaks plant, not cloud

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 and batch

Furnace SCADA and PLC, batch-plant weighing, redox and fining instruments

Setpoint reads and guarded writes over OPC UA and Modbus

Forming

Float-bath and IS-machine controls, gob-weight and timing systems

Gob, pull, ribbon speed and roller reads; guarded writes

Annealing

Lehr zone controllers and belt drives

Zone temperature and curve reads; guarded writes

Inspection

Camera, optical, thermal, polariscope and birefringence stations

Frames, stress maps, defect records, line-speed streams

Glass MES

Orders, grades, lots and ware genealogy

Spec and tolerance reads; genealogy and release writes

Historian

Time-series stores and lab information systems

Backfill, replay and lab chemistry

Robotics

Robot cells, conveyors and stackers via NVIDIA Isaac

Pick, path and stack commands inside the safety envelope

Identity and edge

SSO and RBAC via SAML or OIDC; NVIDIA Jetson Orin edge nodes

Named approvers, tag-level roles, sub-100 ms inference

See all integrations

Guardrails

An agent that can move a furnace needs a leash

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.

  • Bounded action space. Each agent can only write to an explicit tag allow-list, inside per-tag rate and magnitude limits.
  • Policy engine before every write. Autonomy level, shift, product, interlock state and operator presence are all evaluated before a setpoint moves.
  • Human-in-the-loop gates. Anything above the site threshold, pull steps, grade releases, safety-adjacent moves, waits for a named approver.
  • Immutable audit log. Append-only, hash-chained, exportable, and retained on the plant's own storage.
  • Hard fallback. Loss of the edge node, the network or the model returns control to the furnace, forming and lehr systems' last known-good state.
  • Tenant and IP isolation. Compositions, forming recipes and defect libraries never cross a customer boundary. On-prem deployment available.

Compliance posture

Compliance and certification status
StandardScopeStatus
SOC 2 Type ICloud control plane RUNNING Planned in the first six months
SOC 2 Type IICloud control plane QUEUED Planned in months six to twelve
IEC 62443Plant-edge OT security RUNNING Design-aligned
ISO 9001 / IATF 16949Quality and genealogy records SUCCEEDED Record formats supported
Container and safety-glass standardsStress and defect conformance records SUCCEEDED Record formats supported

Read the security overview

Enterprise

Standardise autonomy across the group

One policy model, one audit trail, one benchmark across every line in every plant, with the composition and forming models kept private to each site.

Talk to us Enterprise details

  • SSO and role-based access down to the tag level
  • Group-wide autonomy policy with per-site override and approval chains
  • Cross-plant benchmarking on cullet, seeds, energy per tonne and first-pass quality
  • VPC, on-prem and air-gapped plant-edge deployment options
  • Custom composition, forming and tolerance models per site
  • Dedicated deployment engineer and quarterly model review per plant
FAQ

Straight answers

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.

Get started

Put an agent on your line

Pick the section that hurts: melting, forming, annealing or inspection. One agent, one line, one baseline, 90 to 120 days.