What a session looks like
Technician: photo of a valve block, HMI screenshot showing E-417, "pressure low three times today, press line 7".
Agent: identifies PL-7 as model X rev C, firmware 3.8; retrieves the E-417 tree for rev C; reads the photo — green deposit on the Y3 connector; returns five steps, the first two safety isolation from §2.1, then alarm history, then Y3 inspection and coil measurement from §7.4, then the part with its superseded number from the catalogue. Each step carries its page.
Technician: "coil reads 31 Ω".
Agent: out of spec (24 ± 2); replace valve 0811-404-602; adapter kit required for rev C connector; torque and procedure page; work-order summary drafted.
How it reasons
The language model reads the evidence and the retrieved manual sections and walks the diagnostic tree. It is constrained to cite a page for every check and to place the safety sequence first. If the tree has no branch for the evidence, it does not improvise: the case escalates.
Photos
Visible conditions are read and named; the agent says what it sees and how confident it is. A blurry nameplate prompts a precise request (the HMI about-screen) rather than "send a better photo".
Alarm logs
Hundreds of entries are clustered by axis, condition and timing; cascades are ordered by timestamp so the first alarm — the probable root — is checked first, not the last one the operator noticed.