WattifOperations · Agent team

Methodology · The Seven

How seven agents run a building's energy operation

Every facility that opts in runs seven autonomous agents in parallel. The Operator watches waste. The Engineer watches equipment. The Broker watches contracts. The Accountant assembles the P&L. The Consultant sizes opportunities. The Dispatcher routes the work. The Analyst rolls everything up.

The seven do not overlap. Each agent owns its area through a distinct tool surface; the platform refuses to let an agent file a finding outside its area. They run on different cadences, write to shared tables, and escalate to humans when an action crosses an authority ceiling. This paper covers what each agent does, how the team coordinates, and what stops them.

Prepared by Wattif Technologies Pte. Ltd. · May 2026Singapore
01What the team assumes

Working principles

Each agent owns one area of the bill, and only that area.

The diagnostic framing splits a building's energy spend into five areas (Operations, Waste, Penalty, Silence, Opportunity) and assigns each to one agent, with the Dispatcher and the Analyst running as cross-cutting roles. Boundaries are enforced by each agent's tool surface, not by social convention. An Operator agent that notices a tariff anomaly does not file a tariff finding; it passes the observation to the Broker through the shared event log.

Each session is a deep run, not a query.

Loop tools answer interactive questions in under five seconds. Agents run for five to fifteen minutes per cron tick. In that window an agent refreshes context, forms hypotheses, runs tools to confirm or rule out, sizes findings in dollars, and persists a session record with its reasoning trace. The longer horizon is what makes the output worth a row in the findings ledger.

Cadence matches the period the work is meaningful over.

The Operator runs every fifteen minutes because waste shows up at that cadence. The Engineer runs daily because power signatures shift gradually. The Accountant runs monthly because energy P&L is a monthly artifact. The Consultant runs monthly because opportunity windows are quarterly. The Analyst runs hourly because rollups are cheap and the team produces material continuously. Cadences are fixed in the registry and are not facility-tunable.

All seven write to the same tables.

Findings go to the findings ledger. Work orders go to work_orders. Opportunities go to opportunities. A diagnostic, a verification, or a settlement reads from those tables regardless of which agent wrote the row. No agent has private storage. The downstream platform does not have to know which agent produced what; it only has to know what the row says.

Authority belongs to the action, not the agent.

Each thing an agent does carries its own authority level. Filing a finding is observe. Creating a work order is recommend. Dispatching a contractor is adjust. Writing a control_command is dispatch. Agents do not have global trust. Their specific actions do, and the action's authority is what gates the side effect.

Opt-in per facility.

Agents are off by default. A facility activates them by flipping facilities.settings.managed_agents_enabled. Once on, every agent runs to its own cadence without further configuration. Switching them off does not delete history; sessions and findings persist.

02The five areas

Where money hides

The platform reads every facility's energy spend through one framing: a bill breaks into five areas, and four of them are addressable. Operations is the residual that remains after the other four are accounted for. Waste, Penalty, Silence, and Opportunity each belong to one agent, and the agent's tool surface is what decides which area its findings can file under.

AreaWhat it isWhat a finding looks likeOwning agent
OperationsThe legitimate cost of running the business. The benchmark.Period kWh and dollars after waste, penalty, silence, and opportunity contributions are subtracted. The number that remains.Accountant
WasteMoney leaving with zero return.Equipment running when nobody is using it. Base load that should not exist. Overcooling against the actual setpoint requirement. Each waste finding names a specific source, an evidence window, and a corrective action.Operator
PenaltyCharges that should not be paid.Demand spikes inside the demand window. Wrong tariff for the load shape. Expired or unfavourable contract terms. Low power factor surcharges. A penalty finding annotates a bill line with the avoidable amount and the corrective action.Broker
SilenceEquipment problems that do not announce themselves.Compressor degradation. Motor bearing wear. Missing defrost cycles. Ageing condensers losing approach. A silence finding carries the power-signature evidence, a diagnostic confidence, and a work order.Engineer
OpportunityValue available but not captured.Solar generation in the right tariff. A better tariff for the load shape. DR market participation. Incentive program eligibility. An opportunity finding carries the sizing, the capex, the ROI, and the attribution method.Consultant

The Dispatcher and the Analyst do not own an area. The Dispatcher moves work between agents and routes findings into the human queue when authority requires it. The Analyst rolls everything up into the artefacts a CFO or sustainability officer reads.

03Why each agent runs at its rate

Cadence

Cadence is not a free parameter. Each agent runs at the rate over which its work is meaningful. Waste shows up every fifteen minutes, power signatures shift gradually across days, the P&L is monthly, opportunities have quarterly windows, and rollups are cheap so the Analyst is hourly. The schedule is fixed in code and is not facility-tunable.

15 min

OperatorDispatcher

hourly

Analyst

daily

Engineer

monthly

AccountantBrokerConsultant

Cadence reflects the period the agent's work is meaningful over. Two agents share the fifteen-minute slot because the Operator's evidence and the Dispatcher's queue both move at that rate. The monthly column carries three agents because the bill, the contract review, and the opportunity model are all monthly artefacts.

04One agent per area, plus two cross-cutting roles

The Seven

Each agent below carries its display name, its code key (the internal handle in lib/managed-agents.ts), its cadence, the area it owns, and the tool surface it operates with.

The Operator

every 15 min

operator

Waste

Watches live telemetry across every loop. Detects deviations against the day-type baseline. Investigates waste events and quantifies them in dollars at the prevailing tariff. The first agent every facility meets, because waste is the cheapest finding to file and the most visible to the operator.

Tool surface

Live telemetry queries, baseline lookups, day-type comparisons, dollar sizing against tariff, finding write.

The Accountant

monthly

accountant

Operations

Builds the monthly energy P&L. Subtracts waste, penalty, silence, and opportunity contributions from the period bill and reports the Operations residual. Ranks facilities in a portfolio by area exposure. Files the monthly P&L statement as an artifact the rest of the team reads.

Tool surface

Bill ingestion, period telemetry integration, area attribution, portfolio ranking, statement assembly.

The Broker

monthly

broker

Penalty

Tracks every contract date and tariff term that affects the facility. Models alternative tariffs against the load shape. Recommends switches when the modelled saving exceeds the switch cost. Issues warnings on expiry windows so the customer does not roll into a higher rate by default.

Tool surface

Contract registry, tariff library, load-shape simulator, switch ROI, expiry calendar.

The Engineer

daily

engineer

Silence

Reads power signatures on every metered circuit. Compares each circuit against its asset-class signature library and the facility's own running history. Detects gradual degradation: compressor capacity loss, motor bearing distress, missing defrost cycles, condenser fouling. Writes a work order with the diagnostic confidence and the recommended scope of work, sized by the cost of doing nothing.

Tool surface

Signature library, baseline residual, asset registry, work-order template, contractor catalogue.

The Dispatcher

every 15 min

controller

cross-cutting

Routes the work the other agents produce. Hands work orders to the right contractor. Coordinates schedule with facility operations so a chiller shutdown for repair does not happen during a peak production day. Handles alert escalation when the same finding fires across consecutive sessions. Provides real-time demand advisory ahead of the demand window. Autonomous equipment control sits inside bespoke projects, not this agent.

Tool surface

Work-order queue, contractor registry, facility calendar, alert thresholds, demand forecast.

The Consultant

monthly

consultant

Opportunity

Sizes the opportunities that need a financial model: solar capacity, battery sizing, DR market participation, EV charging, and incentive program eligibility. Produces the full ROI, the payback, the capex stack, the attribution method, the assumed tariff path. The customer decides from the consultant's artifact.

Tool surface

Solar irradiance models, battery sizing, DR program catalogue, incentive registry, financial model template.

The Analyst

hourly

analyst

cross-cutting

Rolls everything up. Computes NABERS or equivalent rating per facility. Updates sustainability metrics. Assembles the board deck and the monthly customer pack from the other six agents' outputs. The aggregator that turns a stream of findings into a coherent statement the customer's CFO can read in five minutes.

Tool surface

Rating engines, sustainability indicators, board-deck template, customer-pack assembly.

05What happens in a five-to-fifteen-minute run

The session pattern

Every agent run follows the same six steps. The step boundary is enforced in the agent's tool wrapper so a session that skips quantification never gets to write a finding. The session record carries the artefacts each step produced, including the rejected hypotheses, so a reviewer reads what was considered and not just what was concluded.

1

Context refresh

The agent reads its window: recent telemetry at its cadence, prior sessions, recently filed findings from the other agents, open work orders, anything its area depends on. Context is loaded once, not re-queried during the session.

2

Hypothesis formation

The agent enumerates the plausible explanations for what it sees: a setpoint drift, a compressor losing capacity, a tariff anomaly, an occupancy schedule that has shifted. Hypotheses are explicit; the session record carries them so a reviewer can see what was considered and what was ruled out.

3

Evidence gathering

The agent runs tools against each live hypothesis. A power signature pull. A baseline residual. A bill-line lookup. A schedule comparison. Each tool call appends to the session's evidence log with the inputs, the outputs, and the elapsed time.

4

Quantification

Surviving hypotheses get sized. Dollars per month at the prevailing tariff, confidence band, attribution method. Findings without a defensible dollar figure do not get written; the session record carries them as 'observed but not sized' so the next session can pick up the thread.

5

Finding write

Sized findings land in the findings ledger with the agent_id, the area, the evidence window, the recommended action, and the authority of the action. The ledger is append-only at the database level.

6

Session persist

agent_sessions row closes with the reasoning trace, the tools called, the findings written, the elapsed wall-clock, and the cost in tokens. The row is the audit trail for the run and the input to the agent's next context refresh.

06How the team coordinates

Handoff

Agents do not call each other directly. They write to shared tables and read each other's output on their next cadence tick. The protocol below covers the four cases that are common enough to be named.

OperatorBrokerEngineerDispatcherContractorobservation flaggedwork order writtendispatchclosure event read on next Operator run

Observation flagged for another agent

An Operator that sees a demand-charge component in a waste event does not file the penalty finding. It logs an observation against the Broker's queue. The Broker's next run picks it up and produces the finding with the right area attribution.

Work-order completion

When the Engineer's contractor closes a work order, the closure event is read by the Operator's next session as a context update. The compressor that was losing capacity should now be running clean, and the Operator's first job is to confirm the signature returned.

Finding supersession

When two agents produce findings against the same root cause from different evidence, the later finding supersedes the earlier one via the supersedes_id column. Neither row is mutated. The customer sees the latest; the audit sees both.

Escalation routing

When an action exceeds the originating agent's authority ceiling, the Dispatcher picks it up and either routes to a human operator or, for time-critical demand windows, executes within the dispatcher's own bounded authority.

07When humans take over

Escalation

The agents are autonomous within their authority. They escalate when the work crosses one of four lines. Each escalation closes the agent's session cleanly, files the partial finding with the reason it was held, and routes to either the human operator queue or the Dispatcher for time-critical handling.

Confidence below the area's threshold

Each area carries a minimum confidence for a finding to land. The Engineer's signature diagnostics require eighty-five percent confidence; the Broker's tariff switches require ninety-five percent. Sessions that exhaust hypotheses without crossing the threshold close with an 'observed but not actionable' note.

Conflicting hypotheses across agents

When two agents conclude opposite things about the same load (the Operator says waste; the Engineer says the equipment is degraded), the Dispatcher pauses both findings and escalates to a human. Conflicting evidence is more valuable as a flag than as a vote.

Action above the agent's authority ceiling

An Engineer that would otherwise dispatch a contractor on a chiller pulldown event below ten percent of nominal capacity escalates if the facility's contract authority caps that action at Recommend. The work order is filed; the dispatch waits for human approval.

Customer-facing communication required

When a finding needs an explanation rather than just an action (a tariff switch that changes the demand-charge structure, a control change that customers may notice), the Analyst is invoked synchronously to draft the customer pack and the Dispatcher holds dispatch until the customer has seen it.

08When a session refuses to file

Failure modes

Each failure mode is named, returns a structured reason, and either writes a Case for human review or returns to the cron for the next pass. The system never silently degrades a finding or skips a session without an audit record.

telemetry_coverage_low

An agent's session aborts when the area's evidence base has less than eighty percent coverage over the relevant window. The session row records the gap; the cron retries on its next tick. Coverage gaps are themselves a Finding the Operator may file separately if they persist.

context_incomplete

The Accountant cannot file an Operations residual without the period's bills. The Broker cannot recommend a switch without the current contract. Missing context closes the session cleanly and posts a request to the operator's queue.

hypothesis_space_exhausted

A session that runs every hypothesis in its area and clears none above threshold closes with an 'observed but not actionable' summary. The next session at the next cadence re-enters with the prior session's notes.

authority_exceeded_attempt

An action whose authority exceeds the agent's ceiling for that finding class is held. The finding is filed; the action is paused; the Dispatcher routes for human review. The platform refuses the elevation rather than degrading the action silently.

session_timeout

Sessions cap at fifteen minutes of wall-clock. A session that approaches the cap stops gracefully, persists what it has, and surfaces the unfinished work in its successor's context.

09Seven scheduled writers

The crons that drive the team

Each agent is registered as a cron in vercel.json. Sessions are batched (cap fifty facilities per cron tick) so a single trigger does not exhaust the function ceiling. The backlog drains across subsequent ticks.

agents/operator

Every fifteen minutes. Walks every facility with managed_agents_enabled, kicks off Operator sessions in parallel batches of ten.

agents/engineer

Daily at 04:00 SGT. One session per facility. Signature diagnostics on every metered circuit.

agents/accountant

Hourly trigger evaluation, with the actual P&L assembly running on the first calendar day of each month per facility.

agents/broker

Monthly on the fifth of each month per facility. Reads the prior month's tariff and contract state.

agents/consultant

Monthly on the first of each month per facility. The slowest agent because opportunity sizing requires the most modelling.

agents/dispatch

Every fifteen minutes. Routes the queue. Demand advisory runs ahead of the facility's known demand window.

agents/reports

Hourly. The Analyst's rollup. Aggregates outputs from the other six into a coherent statement per facility.

10Three screens

How the operator sees it

Three screens drawn from the Acme test facility. The activity feed for live triage, a session detail with the reasoning trace exposed for audit and training, and the Analyst's monthly rollup that customers actually read.

screen 1Activity feedLive stream of which agents are running and what they produced. Filters by agent, summary tiles, click-through to any session.
wattif.ai/facility/acme/agents
AgentsActivity feed

Agent activity · today

filteralloperatorengineerbrokeraccountantdispatcherconsultantanalyst

Sessions today

37

across 7 agents

Findings filed

4

Waste 1 · Silence 1 · Penalty 1 · Opportunity 1

Work orders

2

1 dispatched · 1 queued

Open cases

5

3 review · 2 escalated

TimeAgentOutcomeWallStatus
14:00Operator1 finding · waste · AUD 14/mo · L3-East FCU5m 12srunning
13:45Operator0 findings · no deviation detected4m 03scomplete
13:30Dispatcher2 cases routed · 1 contractor scheduled2m 41scomplete
13:00AnalystHourly rollup published · 3 new findings in feed1m 22scomplete
04:00Engineer1 finding · silence · AUD 240/mo · compressor degradation12m 04scomplete
02:30AccountantPeriod P&L assembled for 2026-05 · 5 areas decomposed8m 17scomplete

Click any row to open the session detail.

screen 2Session detail with reasoning traceOperator session that filed a waste finding. Four-step trace: context loaded, hypotheses considered (H1 confirmed, H2 deferred, H3 ruled out), tools called with timings, finding written.
wattif.ai/facility/acme/agents/sessions/sess-78b9c2
AgentsActivityOperator · 14:00Reasoning trace
Operatorsession sess-78b9c2 · 5m 12s · 23 tokens out

Vacancy waste on L3-East FCU

session ended 14:05:12

01 · Context refresh

Loaded 24h of load_telemetry for fcu-l3-east (4,320 rows). Loaded prior 7-day operator findings (1 superseded). Loaded current_intervention_state. Loaded occupancy_schedule_v2. Context size: 18 KB.

02 · Hypotheses considered

H1Vacancy waste during weekday 09:00-18:00. Direct telemetry evidence: setpoint flat at 22°C across the window, occupancy sensor reads 0 across the same window, valve runs at 76% mean. Confidence 94%.
H2Overcooling against actual setpoint requirement. Room reaches 21.4°C at 14:00 against a 23°C comfort target. Confidence 71%. Ruled in but defers to H1.
H3Compressor cycling anomaly suggesting refrigerant issue. Ruled out: signature library check returned within-spec.

03 · Tools called

load_telemetry_query312msokbaseline_lookup104msoksignature_library_match89msoktariff_window_apply47msok

04 · Finding written

L3-East FCU runs continuously while zone is vacant weekdays 09:00-18:00

Area: Waste · Label: H1 · Amount: AUD 14/mo (tariff-window weighted) · Recommended action: schedule_change · session_id: sess-78b9c2 · finding_id: f-78b9c2-01

screen 3Analyst monthly rollupCustomer-facing summary. Operations residual, addressable, verified this period, action queue. What changed bullets, sustainability metrics, open recommendations.
wattif.ai/facility/acme/reports/2026-05
ReportsMay 2026Monthly summary

Monthly summary

May 2026 · Acme Logistics Hub

Prepared by the Analyst · 2026-06-01 06:00 SGT · 12 minutes

Operations residual

AUD 8,420

the legitimate cost

Addressable

AUD 1,260

across 4 areas

Verified this period

AUD 142

1 intervention

Action queue

7

5 review · 2 in progress

What changed this month

  • FCU occupancy setback on L3-East commissioned 2026-05-29 at Recommend authority. First Cases reviewed and approved; promotion to Dispatch on 2026-06-08.
  • Compressor C-3 work order completed 2026-05-22. Power signature returned to baseline within tolerance over the following week.
  • Demand-charge spike on 2026-05-14 routed to Broker. Mitigation in progress; finding f-2026-05-14-demand staying in In Progress.

Sustainability metrics

kWh per m² (period)14.2vs prior period↓ 4.1%tCO₂e (period)3.42NABERS estimate4.5 ★

Open recommendations

· Solar feasibility scoped by Consultant · AUD 8,400/yr · 4.2yr payback
· Demand-window tariff switch · AUD 320/mo · review with finance
· Defrost cycle adjustment on Freezer F-2 · monitor for further evidence
11Audit chain

How a reviewer reconstructs an action

Every action the team takes is reconstructible from five reads against the database, left to right. A reviewer who wants to know why a contractor was dispatched on a Tuesday morning starts at the facility, walks to the agent session that produced the finding, reads the finding's evidence, follows the work order, and ends at the intervention (if one exists) or the open work-order queue.

facilities

the anchor

agent_sessions

per-run record

findings

actionable conclusions

work_orders

Engineer's loop

interventions

what became a contract

Five reads. Every actionable conclusion in the platform traces from a session to a finding to a work order or an intervention.

  1. Find the facility. facilities.id is the anchor.
  2. Read the sessions. agent_sessions joined on facility_id and ordered by started_at carries every agent run: which agent, which cadence tick, what context was loaded, what hypotheses were considered, what tools were called, what was written.
  3. Read the findings. findings joined on facility_id is the catalogue of every actionable conclusion. agent_id and session_id link each row back to the session that produced it. area distinguishes who owns the finding.
  4. Read the work orders. work_orders joined on facility_id closes the loop on the Engineer's findings: who was dispatched, when the work was done, what the verification confirmed.
  5. Read the opportunities. opportunities joined on facility_id holds the Consultant's sized opportunities and the financial models behind them.
  6. Reconcile to settlement. Findings that converted to Interventions reference intervention_id; the rest are visible work that did not (yet) become a contract. The audit chain across to /methods/mv-option-b-method begins here.
12Honest open work

What is not yet in scope

The agent team is operational and producing findings every day on every opted-in facility. The items below are deliberately deferred so a reviewer is not surprised by what the paper does not claim.

  • Cross-agent disagreement resolution. The current escalation contract pauses on conflict and routes to a human. A learned arbitration layer that reads both findings and resolves common conflict patterns without escalation is on the build queue.
  • Verifier role for finding closure. The Accountant currently records when a finding was acted on, but the verification that the predicted saving actually materialised reuses the Option B engine documented at /methods/mv-option-b-method. A dedicated agent role for closure verification (separate from the Engineer's repair verification) is named but not yet split out.
  • Per-segment authority defaults. Authority ceilings today are global per finding class. Segment-aware ceilings (food processing capped at Recommend for any setpoint action; office defaulting to Adjust) are registered as a flag on the registry and read by the platform when a session loads, but the registry entries themselves are still being curated.
  • Customer-facing agent feed UI. The platform's primary interfaces show findings and work orders; a live feed of agent activity (which agent ran, what it considered, what it concluded) is specified but not yet built. Operators today read the same audit trail through the same surfaces a reviewer would.
  • External review of the agent system. The Q3 2026 CMVP review covers the verification engine and the lifecycle. A separate review of the agent boundary contract (which agent may file what kind of finding) is on the plan for early 2027.
13Sources

Standards alignment

The agent team operationalises practices drawn from energy management standards. Formal review of the operational alignment is on the plan for early 2027.

IPMVP Core Concepts (Volume I, 2022). Provides the framing for area attribution and verification cadence the agents work against.

Efficiency Valuation Organization

ISO 50001: Energy management systems. The agent team is one operationalisation of the plan-do-check-act loop at minute and monthly cadences.

ISO

ANSI/ISA-95: Enterprise-Control System Integration. Informs the agent boundary contract and the handoff protocol.

ISA