Human-in-the-loop: approval gates for AI bots in industrial control
Eventually someone will ask: "Can the bot just make the change?" The answer is a process where the bot drafts and people decide, so every change is reviewed, approved and reversible.
1. Propose
The bot outputs a structured proposal, never a command:
{
"change": "Raise TK-101 high-level alarm from 85% to 88%",
"reason": "12 nuisance alarms this week at 85-87% during normal fills (cite: alarms.csv)",
"risk": "Less margin before HH trip at 92%; HH trip and SIS unchanged",
"rollback": "Restore 85%",
"evidence": ["alarms.csv rows 14-40", "P&ID TK-101 rev C"],
"requires": ["process engineer", "operations supervisor"]
}2. Review
A qualified engineer checks the evidence against the process, P&IDs and alarm philosophy. The bot's citations make this fast; anything uncited is rejected.
3. Approve through MOC
Two people sign (two-person rule) in your existing management-of-change system. The bot has no access to approve.
4. Execute with normal tools
A person makes the change in the engineering workstation or HMI, under their own login. The bot never holds write credentials, so "it went rogue" isn't possible.
5. Verify and record
After the change, the bot can read back the value (read-only) and confirm it matches the approved proposal, then log the result.
Where these facts come from
- ISA/IEC 62443 series: zones, conduits and security levels for industrial automation
- NIST SP 800-82 Rev. 3: Guide to Operational Technology (OT) security
- CISA: Industrial Control Systems: advisories and recommended practices
- Modbus Organization specifications: function codes and the TCP transport
- OPC Foundation: OPC UA specifications and security modes
- llama.cpp on GitHub: building and running local GGUF models on Linux
Checked Oct 29, 2026. Tutorials are educational. Follow your site's safety procedures, management-of-change process and the equipment maker's manual. Never test against live production equipment without authorization.
Industrial control with bots: all lessons →