← Back to Autonomy
Agentic VHM · Worked RunRUN-2026-BATT-01

Framework Walkthrough

The Framework in Action: A Battery Fade

Watching the human-gated agent team diagnose and forecast the battery-degradation case — and, crucially, fusing the structured fleet data with the messy pile beside it: service notes, bulletins, DTC catalogs, manuals, and a knowledge graph.

CaseBattery SOH fade (subpopulation)
VerdictFirmware v3.2.1 balancing bug
InputsStructured + unstructured + KG
ForecastRUL 20 mo · PoF 89% → 1% fixed
In one paragraph

A fleet monitor flags a cohort of vehicles whose battery state-of-health (SOH) is fading faster than the rest, with a cluster of battery DTCs. The agent team takes it from there: it pulls together the numeric telematics and the unstructured record — repair notes, technical bulletins, DTC definitions, cell datasheets, a prior root-cause report — builds them into one working context backed by a knowledge graph, then runs the diagnosis. A tempting correlation with fast-charging is rejected as a confounder; the real cause is a cell-balancing timing bug in firmware v3.2.1 that lets cell voltages drift apart and over-stress the pack. The prognostics engine forecasts remaining life and the effect of the patch; a human approves the fleet update; the loop then watches the fade rate fall and remembers the case.

1 — What lands on the desk

Two kinds of evidence, not one

A real investigation never starts with a tidy table. It starts with a tidy table and a stack of paper.

The structured side is what you would expect: time-series telematics (SOH, per-cell voltages and the imbalance ΔV, charge events, pack temperatures), build genealogy (which firmware version and cell lot went into which VIN), and fleet signal tables. That is the data the five case studies analyzed.

But beside it sits everything that does not fit in a column: service and repair notes written by technicians, technical bulletins (TSBs), engineering memos, the DTC catalog that says what each diagnostic trouble code means, OEM manuals and cell datasheets with the voltage limits, and prior RCA reports. A human analyst reads all of it instinctively. The framework has to ingest it deliberately — and that is the part this walkthrough makes explicit.

2 — Feeding the machine

Turning the paper pile into something queryable

Structured and unstructured sources flow through different ingestion lanes into one unified working context. The numeric data is joined into a feature store; the documents are parsed, embedded for retrieval, and mined for entities and relationships that build a knowledge graph; DTCs are decoded to the subsystems they implicate.

Figure 1 — Ingestion & fusion: structured + unstructured → unified context
Everything becomes context. The numeric lane (top) builds a feature store. The document lane (bottom) is parsed, embedded into a vector index for retrieval (RAG), and mined into a knowledge graph; DTC codes are decoded to subsystems. The three together are what every agent reads.
Unstructured sourceHow it is processedWhat an agent does with it
Service / repair notesParse → embed → extract entitiesHypothesis agent retrieves similar past complaints
Technical bulletins (TSB)Embed + link to firmware/part in KGPriors: "a balancing TSB exists for this BMS"
DTC catalogDecode code → subsystem + meaningTriage maps the DTC cluster to the pack/BMS
Cell datasheet / manualsExtract limits (max cell V, temp)Physics agent checks the over-voltage mechanism
Engineering memosEmbed → retrievalContext on the v3.2.1 release & known risks
Prior RCA reportsEmbed + store signature featuresCase memory: "we have seen this shape before"
Why this matters Structured data tells you what correlates. The unstructured record tells you what it means and whether it is possible — the DTC's meaning, the cell's voltage limit, the existence of a balancing bulletin. Fusing both is what lets the system reject a confounder on mechanism, not just on statistics.
3 — The knowledge graph

The map the agents walk

The knowledge graph stitches the structured genealogy (this VIN has this pack, running this firmware) to facts extracted from documents (this firmware runs the balancing routine; this DTC indicates capacity loss; a bulletin references this routine). Agents traverse it to turn a loose symptom into a short list of mechanistically connected suspects.

Figure 2 — Knowledge graph for the battery case
Entities and relationships. The solid spine is the causal chain the agents end up confirming: firmware → balancing routine → cell ΔV → SOH fade. The dashed edges are correlations without a mechanism — fast-charging and ambient temperature point at the symptom but are not causes. A retrieved bulletin links straight to the balancing routine, giving the hypothesis a head start.
4 — The run, step by step

Watching the agents work

Each card is one stage. The colored tags show what it readsstructured unstructured graph — plus the tool it calls and the output it produces. Orange cards are human gates.

0
Fleet monitor → trigger

A cohort is fading too fast

Continuous monitoring flags VINs whose SOH slope exceeds the fleet, co-occurring with a cluster of battery DTCs. A case is opened automatically.

SOH time-seriesDTC eventscase opened
1
Triage agent

Define the symptom and scope

Decodes the DTC cluster against the catalog (capacity-loss codes implicate the pack/BMS), fixes the affected VIN set, and writes the success criterion: explain the excess fade.

feature storeDTC catalogDTC → subsystemscoped problem
2
Hypothesis agent

List the suspects across the 7 families

Enumerates candidates (firmware balancing, fast-charging habit, cell lot, thermal exposure, manufacturing…). Retrieval surfaces a prior RCA with a similar fade shape and a TSB touching the BMS balancing routine; the graph already links the symptom to firmware and to fast-charging. Hypotheses are pre-ranked by these priors.

prior RCA reportTSB / memosymptom ↔ firmwareH1…H6 ranked
G1
Human gate · scope & hypotheses

Engineer confirms the shortlist

The reviewer sees the scope and the ranked hypotheses with their document citations, trims one implausible item, and approves.

approved hypothesis set
3
Statistics agent

Screen what correlates

Runs the correlation screen in a sandbox. Fast-charging frequency shows a strong tie to fade (r ≈ 0.74); cell ΔV is strong; ambient temperature looks weak. A naïve read would blame fast-charging.

feature storecode · statsranked correlations
4
Causal / confounder agent

Hold the mechanism variable constant

Partial correlation controlling for cell ΔV collapses fast-charging from 0.74 to ≈ −0.09 — it was riding along with the imbalance. Ambient temperature, freed of the confound, emerges as a secondary accelerant. The graph guides which variable to control.

feature storecausal linkspartial correlationfast-charge = proxy
5
Physics / mechanism agent

Is the cause even possible?

Pulls max cell-voltage limits from the cell datasheet and confirms a real pathway: a balancing timing error lets ΔV grow, pushing cells past their voltage ceiling and accelerating fade. Fast-charging alone has no such pathway at the observed rates → vetoed as a cause.

cell datasheetfirmware → balancingphysics checkmechanism: over-voltage
6
Confirmation agent

Find the fingerprint

Stratifies by firmware version. The v3.2.1 cohort shows the balancing-timing signature — elevated ΔV — that the other versions do not. That version split is the smoking gun.

feature store + genealogycode · stratifyv3.2.1 signature
G2
Human gate · root-cause sign-off

Engineer signs the verdict

Sees the converged evidence — statistics, mechanism, version signature — with confidence and the rejected confounder. Signs off.

root cause confirmed
7
Mitigation agent

Propose the fix

Recommends a firmware patch correcting the balancing timing, plus an interim charge-ceiling for the affected cohort. Retrieval confirms a precedent patch path in a prior bulletin.

TSB / patch precedentaffected VINspatch + interim limit
G3
Human gate · mitigation approval

Choose the mitigation

Reviewer weighs the patch vs the interim limit and the simulated effect, and approves the patch for validation.

mitigation chosen
8
Prognostics agent

Forecast life, with and without the fix

Runs a Monte-Carlo remaining-life model on the mechanism: median RUL ≈ 20 months (80% CI 16–25) if left alone; probability of failure by 24 months ≈ 89% unfixed versus ≈ 1% with the patch.

degradation featuressurvival · Monte-CarloRUL + PoF curves
G4
Human gate · fleet action

Approve the OTA

Sees who is affected, the prognosis, and the risk. Approves the staged over-the-air rollout.

fleet action approved
9
Deploy · monitor · learn

Close the loop

The patch ships staged and reversible. The loop monitors ΔV and the fade slope to confirm the fix worked, and writes the resolved case — including its signature — back into the knowledge graph and case memory for next time.

OTA deployedoutcome monitoredgraph updated
5 — Which evidence each stage used

Structured, unstructured, and graph — side by side

The point of the run is that no single evidence stream carries it. The matrix shows which of the three each stage drew on; the decisive root-cause call (synthesis) used all three at once.

Figure 3 — Evidence-usage matrix
structured data unstructured docs knowledge graph
A filled cell means the stage read that stream. Statistics and confirmation lean on numbers; hypotheses and mechanism lean on documents and the graph; the synthesis fuses all three. Remove the unstructured column and the system can still correlate — but it can no longer reject the confounder on mechanism or start from the right priors.
6 — How the verdict was built

Three streams, one conclusion

The root-cause call at G2 was not a single test. It was the convergence of a statistical result, a physical possibility, and a graph-and-document prior — which is exactly why it survived scrutiny.

Figure 4 — Evidence fusion at the root-cause gate
Convergence. Structured statistics (the confounder collapses, the version splits), the unstructured mechanism (the datasheet voltage limit, a balancing bulletin), and the knowledge-graph path (firmware → balancing → ΔV) all point to the same place. Any one alone is weak; together they clear the four-gate test.
7 — The forecast

What happens next, with and without the patch

Because the mechanism is known, the prognostics engine can project it. The contrast is the whole business case for acting now.

Figure 5 — Probability of failure over time
no fix patched
The intervention payoff. Left alone, the affected cohort reaches ~89% probability of failure by 24 months (median remaining life ≈ 20 months, 80% CI 16–25). The firmware patch flattens the curve to ~1%. This forecast, with its uncertainty band, is what the human approves at G4.
8 — What the unstructured side bought us

Practical notes

The takeaway

Data finds the correlation; documents and the graph find the cause

A purely structured pipeline would have flagged fast-charging and stopped. Fusing the unstructured record and the knowledge graph is what supplied the priors, the mechanism, and the meaning — and let the framework reject the confounder and name the firmware bug with confidence, all under human sign-off.