跳到正文
DEV Community· FDE at Trida AI·· 4 小時前AI 評分52

Trida AI 公開 Grid Alarm Triage Agent 電網警報分流藍圖

Grid Alarm Triage Agent Blueprint

AI 導讀

Trida AI 公開 Grid Alarm Triage Agent 藍圖,透過 Amazon Bedrock AgentCore 整理電網警報並生成事故簡報及工作單草稿。

正文

Originally published at Trida AI.

When a feeder trips at 2 a.m., the control room does not get an alarm. It gets a flood: the breaker, the recloser, the relays, the sensors and the transformers all reporting the same event in their own dialects, mixed in with whatever unrelated noise the night was already producing. The operator's real job in that moment is compression — turning forty shouting devices into one incident with a cause, a severity and a plan — while tired, at speed, with a hospital somewhere on the affected feeder. That compression is what this blueprint automates. The judgement, and every action on the grid, stay exactly where they were.

This open blueprint, the Grid Alarm Triage Agent, runs on Amazon Bedrock AgentCore between a utility's alarm streams and its control room. Alarms are correlated into incidents by deterministic rules over the network topology; severity and restoration estimates are computed by versioned formula packs; the agent assembles a cited incident brief and drafts the work order — and stops there, at a named operator's approval. It can read, draft and notify. It holds no tool that can operate the grid, and that is enforced mechanically, not by asking the model to behave.

Forty alarms, one incident

In the blueprint's sample night, 49 alarms arrive. Forty of them are one event on one feeder: a breaker trip at 02:13, followed by voltage sags, transformer temperatures, phase losses and fault indications from the eight devices that felt it. The correlation pack — versioned rules over a versioned topology map — groups them into a single incident, and the incident records not just the member alarms but the exact rule identifiers that formed the group, under the topology and pack versions in force. One further alarm, alone on another feeder, becomes its own small incident.

The remaining eight alarms are the night's nuisance stream, and the design's tell is what happens to them: nothing. They stay uncorrelated and visible, listed as uncorrelated. Correlation here suppresses nothing and deletes nothing — an operator who later wonders whether the flood hid something can look at exactly what was left out and why no rule claimed it. Ingest is append-only, and each incident's alarms are hash-chained, so the evidence set the brief is built on cannot quietly change afterwards.

The night's flood by kind: forty alarms that are one event, told by the devices that felt it.

The night's flood by kind: forty alarms that are one event, told by the devices that felt it.

A severity score with its working shown

Severity is a formula, not a feeling. The pack weighs customers affected, critical loads, alarm volume and elapsed time; on the sample incident it produces SEV-1 at a score of 85, on the record: 1,440 customers out, and a general hospital among the critical loads on the feeder. That combination carries a stated consequence — a named operator's acknowledgement is required — rather than a colour on a dashboard. Root cause is classified by rule the same way: the pattern of a lockout with downstream faults classifies as vegetation contact, and the classification names the rule that fired.

The incident brief the agent assembles follows the citation discipline: every statement carries its member alarm and field, and a citation that does not resolve refuses the whole brief. An operator reading it at 3 a.m. is reading evidence, not prose about evidence.

The restoration estimate carries its basis

Customers and executives will ask one question — when is it back? — and the system's answer is an estimate built from rates, in the open: a 45-minute crew wait taken from the roster, 25 minutes of travel, 150 minutes of repair for the classified cause, landing at a restoration time of 06:23. Every estimate carries its basis label; an estimate that cannot be computed from the packs — a missing rate, an unrostered crew — comes back not computable, naming the gap, instead of a confident guess.

And the estimate is graded afterwards, in a ledger the system keeps on itself. The sample incident restored at 06:43 against an estimated 06:23: a signed error of +20 minutes, recorded against the cause class. A triage system whose estimates are never scored is a system whose next estimate deserves no trust; this one's track record is a queryable artefact, misses included.

Drafts, approvals, and the refusal that matters

The work order is drafted by the system — scope, devices, safety notes, the pinned estimate — and the draft authorises nothing; the words are on the artefact. Assignment is checked against the crew's real commitments: the first attempt is refused because the vegetation crew is already committed to another incident until 03:28, a refusal that names the conflict rather than double-booking a crew at 3 a.m. A revised version is prepared, and then the gate that defines the whole design swings shut: the operator who drafted and revised the version tries to approve it, and self-approval is refused. A second, different operator approves version 2 — the act pins that exact version — and only then do the notifications exist, as drafts marked not sent.

The map changes mid-incident

Halfway through the night the network itself changes: a new line sensor, installed that week, reports under the incident's feeder. Under a naive system its alarm would be swept into the incident by proximity. Here the incident is pinned to topology version 1, in which that sensor does not exist — so its alarm is recorded as unresolvable under the pinned topology, and is not re-correlated under any newer map. A topology change is itself a governed act: version 2 is proposed by one named person and declared effective by another, with the changes on the record — a feeder split, the new sensor, a replaced regulator, a hospital annex moved to another feeder. Re-correlation then produces a new incident under version 2, with thirteen alarms leaving alongside the split section and severity recomputed on both sides of the change (SEV-1 at 85 becomes SEV-2 at 63). The version-1 incident stands untouched, exactly as the night's first hours were understood.

No switch exists

It is worth saying plainly what the agent cannot do, because in grid operations this is the whole ballgame. Its tool catalogue contains read, draft and notify shapes only. A source-scanning gate in the test suite proves no control-shaped tool exists in the registry — a switching, reclosing, load-shedding or setpoint tool cannot be added without failing the build — and an AgentCore policy pack carries the same law at the platform layer. "The agent never operates the grid" is not a prompt instruction or a usage policy. It is a property the codebase is tested for, the way a bridge is tested for load.

Closing takes evidence

Restoration is confirmed, not assumed: the sample incident closes only when three independent classes agree — meter restoration readings, the feeder supply reading, and the crew's own confirmation — 1,440 of 1,440 customers. The next morning's incident shows the harder rule: a partial restoration, 760 customers back and 680 still out, cannot close whole. It splits into a restored part, which closes on its evidence, and a continuing incident, which stays open — and the restored part's outcome is recorded as no computed estimate, because none was ever made for it. The accuracy ledger shows that gap rather than papering over it. In an operations room, a record that displays its own holes is worth more than a cleaner one.

The incident record: severity, cause, the rate-built estimate, the refused self-approval, and the graded outcome.

The incident record: severity, cause, the rate-built estimate, the refused self-approval, and the graded outcome.

Work with us

If your control room's senior operators spend storm nights doing compression by hand — grouping alarms, reconstructing timelines, re-deriving estimates — the compression is buildable, with the authority left exactly where your procedures put it: rules for correlation, formulas for severity and restoration, drafts that authorise nothing, approvals that cannot be self-granted. Bring the problem through Trida AI's intake and we will scope what a triage agent inside your operations should, and should not, be allowed to touch.

Get the Code on GitHub: github.com/tridaai/blueprint-agentcore-grid-alarm-triage

來源:DEV Community · dev.to