Governed, vendor-neutral industrial data tap for AI agents — read-first tools across 14 field protocols (OPC-UA, Modbus, S7, EtherNet/IP, BACnet, MQTT/Sparkplug …), a cross-protocol intelligence layer, and an AI downtime root-cause copilot
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/industrial-aiops/industrial-aiops && cp industrial-aiops/*.md ~/.claude/agents/10 items en este repositorio
Resumen de Subagents
<!-- mcp-name: io.github.industrial-aiops/iaiops --> # Industrial-AIOps **English** · [中文](README.zh-CN.md) **Ask an AI agent why the line stopped — and get an answer that cites its evidence.** A vendor-neutral, **read-first** data tap for the factory floor. It speaks **14 field protocols**, correlates what it reads *across* them, and hands your agent an evidence-cited verdict instead of a guess. Every call is audited, and no reading ever phones home. ```bash pip install "iaiops[opcua]" # pick your protocol — or [all] iaiops init # write ~/.iaiops/config.yaml iaiops doctor # check the setup before you trust it ``` Prefer a container? The published image is **cosign-signed** and runs **non-root**. It speaks MCP over stdio, so keep stdin open and mount a volume for the audit store: ```bash cosign verify --key deploy/margo/cosign.pub ghcr.io/industrial-aiops/iaiops:0.30.0-factory docker run -i --rm -v iaiops-state:/home/iaiops/.iaiops \ ghcr.io/industrial-aiops/iaiops:0.30.0-factory ``` For a hardened or air-gapped deployment (read-only rootfs, `cap_drop: ALL`, no-new-privileges, optional on-box LLM) use [`deploy/margo/compose.yaml`](deploy/margo/compose.yaml) and [`deploy/airgap/`](deploy/airgap/). The analysis engine needs **no GPU and no model API** — it is deterministic; an LLM is optional and only *phrases* the verdict. ## What you get | | | |---|---| | **Reads** | OPC-UA (+ Historical Access, tag auto-discovery) · Modbus TCP/RTU · S7comm · Mitsubishi MC · Omron FINS · MTConnect · MQTT/Sparkplug B · EtherNet/IP · EtherCAT · PROFINET · SECS/GEM · HART-IP · BACnet/IP · IO-Link — plus read-only REST layers for BAS supervisors (Metasys / Niagara) and Ignition Gateway | | **Figures out** | downtime root cause (the flagship copilot), alarm floods (ISA-18.2), broken dataflows, data trustworthiness, OEE, asset inventory, legacy PLC program explainer (ST/AWL/L5X) | | **Governs** | audit · budget · risk-tier · undo — on *every* call, through one engine, from both MCP and CLI | | **Stays yours** | no telemetry, no phone-home. Six tools *can* send data off-box by design (`stream_publish`, `stream_publish_event`, `uns_publish`, `historian_push`, `mqtt_publish`, `rca_narrate`) — `IAIOPS_NO_EGRESS=1` withholds all six for an air-gapped posture | Eleven editions ship in this package — ten per industry (fab · factory · process · building · water · warehouse · clinical · pharma · renewables · plcnext), each adding its own read-only advisory checks, and one cross-protocol: sensor (connect, decode and read a sensor; `IAIOPS_MCP=sensor`). Substation / utility telecontrol (IEC-104 · DNP3 · IEC-61850) ships separately as [`iaiops-energy`](https://github.com/industrial-aiops/industrial-aiops-energy). ## Your first five minutes Four commands. Only one of them touches a device, and it prints what it will send before it sends anything. ```bash pip install "iaiops[modbus]" # pick the protocol you actually have, or [all] iaiops onboard status # ← run this first. Contacts NOTHING. iaiops doctor # config, secrets, reachability — and the version iaiops readiness # every scenario, and what each gap needs ``` `onboard status` answers the smaller questions you have first: **which journey is this site on — reading its devices directly, or subscribing to a UNS broker its data already flows through — which step of it are you on, and what is the one command that advances it?** It is derived from your store and `config.yaml` every time. The one thing it keeps is a namespace audit verdict, and that counts only for the broker and topic filter it was taken on and always shows its age — so edit `config.yaml` by hand and the answer stays true. `readiness` reads your config and local store and answers one question: **which scenarios can this site run today, and what does each gap need?** Every gap comes with the command that closes it, ranked by how much it unlocks. No agent, no cloud, no account, and nothing on the wire. Then the path, in the order that matters — survey what is there, take a bounded sample, and only then explain it: | | | contacts a device? | |---|---|---| | **Survey** | `iaiops scan plan` → `iaiops scan run` | preview sends nothing; the run itemises every packet class it sent | | **Configure** | `iaiops onboard draft` → you merge it into `config.yaml` | **no** — it reads the stored scan, and writes nothing | | **Tap** | `iaiops collect run line1 --duration 7d` | yes — and it reports what it saw **and what it missed** | | **Declare** | `iaiops tags export` → a person fills in `role` → `iaiops tags apply --by <you>` | **no** — the `role` column comes out empty on purpose | | **Explain** | `iaiops oee measure --since … --until …` · `iaiops investigate open` · `iaiops diag rca` | **no** — all over collected history | **See the whole thing run against a real device in about two minutes**, including a genuine mid-run outage, with `./demo/oee-line/run_demo.sh` — no hardware, no configuration, nothing written outside a temporary directory. [demo/oee-line/](demo/oee-line/) explains what each step is for and what the numbers do and do not claim. ## Why read-first OT is exactly where you want an agent on a tight leash. The read paths are the product; the few write paths are OT-dangerous, off by default, and gated by MOC discipline — dry-run, one-shot approval, undo capture, hash-chained audit. ## Proving the analysis needs no model The analysis layers cannot reach a language model. That is a guard, not a slogan: `tests/test_brain_is_llm_free.py` scans eight packages — `brain`, `discovery`, `runtime`, `readiness`, `collect`, `knowledge`, `retain`, `connectors` — for any import that could reach one, and an empty result is the guarantee. A model is used in exactly two places, and neither is load-bearing: `rca_narrate` rephrases a verdict that was already computed and already cited, and an agent front-end decides *which* tool to call. Remove both and the numbers are the same numbers. That guard is static — it proves nothing *can* call a model. For a validation team the sentence they are asked to accept is the executed one, so it is executed: ```bash iaiops verify determinism --out determinism-record.json ``` A pinned in-repo dataset goes through availability, production counts, the Six Big Losses, ISA-18.2 alarm load, control charts, the conservative baseline and the RCA copilot. Each result is canonically encoded and digested; the suite runs **twice in this process and once in each of two fresh interpreters started at different `PYTHONHASHSEED` values** — the arm that catches a set or dict iteration order reaching a result, which a single run never can. The socket API raises throughout, so a computation that reached for a device or a hostname fails here instead of quietly working on a machine that happened to be online. Afterwards the run is asked what it pulled in: a model library that was *already* loaded (an MCP server holds `iaiops.core.llm` for the opt-in narration tool) is recorded, not judged — only what the suite itself imported can condemn it. The record separates `result` (identical every run — the part to sign) from `context` (when and where this run happened). **Two good runs are not byte-identical records**, and someone will diff them, so the halves are named rather than mixed. This is the form the claim has to take to be usable: not "our model is accurate", which is not evidence in a GxP context, but a test case someone can write into an IQ/OQ protocol — *remove the model, block the network, re-run the standard dataset, compare the hash* — execute, and sign. `verify_determinism` is the same check from the MCP side; `iaiops verify suite` lists what it covers without running it. ## How far it's actually been verified Short version: **verified against real protocol libraries, containers and in-process servers — not yet against real plant gear.** We grade evidence rather than saying "tested", because a real container round-trip and a synthetic fixture are not the same claim. | Rung | Who judges our frames | Protocols at this rung today | |---|---|---| | **2a** — real wire to a **third-party** server | somebody else's implementation of the spec | OPC-UA (Microsoft `opc-plc`; certificate trust enforced both ways) · Modbus TCP (`pymodbus`) · Modbus RTU (`pymodbus` over a `socat` PTY) · MQTT / Sparkplug B (a real `mosquitto` broker) · BACnet/IP (`bacpypes3`, two IPs on one subnet) · MTConnect (the Institute's own `cppagent`) · SECS/GEM (`secsgem` equipment side) · EtherNet/IP (identification) | | **2b** — real wire to a server **we wrote** from the spec | the third-party *client* parses our frames | S7comm (`pyS7`) · Mitsubishi MC (`pymcprotocol`) · EtherNet/IP (tag layer — `pycomm3`, all three driver routes) · PROFINET-DCP | | **2c** — real wire, but **both ends are ours** | nobody independent | Omron FINS · IO-Link · HART-IP (codec itself at rung 1, against `hart-protocol`) | | **mock only** — protocol logic exercised, nothing on the wire | — | EtherCAT · BAS (Metasys / Niagara) · Ignition gateway | | **3** — real physical / vendor device | the device | **zero, for every protocol** | Each row's detail — and, per protocol, *what is still not covered* — is in [`docs/VERIFICATION-RECORD.md`](docs/VERIFICATION-RECORD.md). That file is the record; this table is its summary, and a test fails if the two disagree. **Per-protocol evidence — including what each test does *not* cover — is in [docs/VERIFICATION-RECORD.md](docs/VERIFICATION-RECORD.md)**, one row per protocol, naming the test behind each claim. Every `待核实` is hardware-gated, not forgotten — each one names the equipment that would settle it. ## 🧪 测试与共创 / Beta testing & co-creation **我们在找现场测试伙伴。** 软件里能验证的我们都验证了(真实 in-process 服务器、真实协议库、Docker 容器 loopback)——剩下的 `待核实` 清单只有真设备能回答:物理 Modbus-RTU(RS-485)、EtherCAT 从站、HART 网关、在线 BACnet 楼宇设备、在线 Metasys/Niagara BAS 控
Lo que la gente pregunta sobre industrial-aiops
¿Qué es industrial-aiops/industrial-aiops?
+
industrial-aiops/industrial-aiops es subagents para el ecosistema de Claude AI. Governed, vendor-neutral industrial data tap for AI agents — read-first tools across 14 field protocols (OPC-UA, Modbus, S7, EtherNet/IP, BACnet, MQTT/Sparkplug …), a cross-protocol intelligence layer, and an AI downtime root-cause copilot Tiene 7 estrellas en GitHub y su última actualización registrada es del 2026-10-18.
¿Cómo se instala industrial-aiops?
+
Puedes instalar industrial-aiops clonando el repositorio (https://github.com/industrial-aiops/industrial-aiops) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar industrial-aiops/industrial-aiops?
+
Nuestro agente de seguridad ha analizado industrial-aiops/industrial-aiops y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene industrial-aiops/industrial-aiops?
+
industrial-aiops/industrial-aiops es mantenido por industrial-aiops. La última actividad registrada en GitHub es del 2026-10-18, con 1 issues abiertos.
¿Hay alternativas a industrial-aiops?
+
Sí. En ClaudeWave puedes explorar subagents similares en /categories/agents, ordenados por popularidad o actividad reciente.
Despliega industrial-aiops en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/industrial-aiops-industrial-aiops)<a href="https://claudewave.com/repo/industrial-aiops-industrial-aiops"><img src="https://claudewave.com/api/badge/industrial-aiops-industrial-aiops" alt="Featured on ClaudeWave: industrial-aiops/industrial-aiops" width="320" height="64" /></a>Más Subagents
The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.
The agent that grows with you
Makes your AI agent think like the laziest senior dev in the room. The best code is the code you never wrote.
Java 面试 & 后端通用面试指南,覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发
Build Agentic workflows, RAG pipelines, with rich AI model and tool support on one collaborative workspace. Deploy on cloud, VPC, or self-hosted, so teams move from prototype to production without rebuilding the stack.
The agent engineering platform.