Every AI Agent is only as Honest as the Box it runs on
Most Agentic AI is a large language model wrapped in a to-do list. The model itself is an autoregressive probability distribution: it predicts which word plausibly follows the last one. Nothing inside it represents your project. There is no variable for "is this milestone actually late," no field for "was this invoice paid," no memory of what it did an hour ago. It is fluent. It is not grounded.
Black Box
Glass Box
01
No world model
A transformer computes the likelihood of the next token given the tokens before it. That is a model of language, not a model of your schedule, your budget, or your supply chain. When it answers a question about project state, it is producing plausible text, not consulting a fact.
02
Hallucination is the default
Because the model is trained to maximize plausibility, not truth, it has no internal mechanism for telling a true claim from a fluent one. An ungrounded answer about cost drift or delivery risk is not a rare failure, it is the expected behavior of a system with no external source of truth.
03
You cannot see why
A black-box model gives you an output with no visible path back to evidence. If it is wrong, you find out after the fact, from the consequence, not from the reasoning. In a capital project, that consequence can be a missed deadline or a budget already spent.
An LLM is a model of language. Your business runs on facts.
Why Errors Compound
A black-box chatbot is one bad guess. A black-box agent is twenty of them, chained.
A chatbot makes one opaque call and a human reads the answer before acting on it. An agent does not stop there: it plans, calls tools, reads results, and acts again, step after step, often without a human checking each one. When every step is opaque, the failure does not just repeat, it compounds, silently.
95% per step × 10
~60%
95% per step × 20
~36%
99% per step × 50
~61%
99% per step × 100
~37%
On a capital project, that twenty-step chain looks like: read a progress report, extract a completion percentage, cross-reference it against the schedule baseline, recompute float, flag or clear a milestone, roll the change into a cost forecast. One misread number early in that chain does not stay contained. It propagates into every downstream number that depends on it, and because the box is black, nothing flags which step actually lied.
This is not a hypothetical risk. MIT researchers found that 95 percent of enterprise generative AI pilots deliver no measurable business impact, and Gartner projects that over 40 percent of agentic AI projects will be cancelled before they reach production, for the same underlying reason: unverifiable behavior does not survive an audit.
Chain twenty steps at 95 percent reliability each, and only one run in three finishes correct. That's not pessimism, it's multiplication.
Glass Box, Not Black Box
The fix is not a smarter model. It is a system you can see through.
A glass-box architecture keeps the language model exactly where it is useful, as the interface, and puts three things underneath it that a black box does not have: grounding, verification, and a visible path from claim to source.
01
Grounding
Every claim the system makes resolves to a real event in a knowledge graph: a specific field report, a specific timestamped entry, a specific source. Not the model's recollection of something it read, an actual traceable fact.
02
Verification
Before any step executes, it is checked against ground truth by a rules layer, not asked nicely to be correct. An error is caught at the exact step where it occurred, and the system corrects, retries, or escalates to a person with full context.
03
Inspectability
Every answer is a path you can walk backwards, layer by layer, from the natural-language summary down to the raw feed that produced it. Nothing about the reasoning is hidden from you.
Below is that glass box, opened up, layer by layer, L0 to L6. It is not a decorative diagram. It is the architecture itself, opened for inspection.
We don't ask the model to be right. We make wrongness detectable.
The ontology, built live
Every shape below comes straight from the frozen ontology the engines run on, three clusters, 14 classes, 17 relations, with real project records loaded onto it and one append-only table holding every fact. The schema builds first, then the data snaps into place, then each story walks the exact same graph.
One graph · five questions · zero guesswork
This is the live data model the whole system runs on: a graph of 14 classes and 17 relations, holding real project records. Every answer it gives is a different walk across this one graph. Here is what each of the five questions asks, what it proves, and how to read the shorthand, everything traces back to a real record.
The five stories, and the trust failure each one makes impossible
Story · operation
The question it answers
How it answers, on the graph
What it proves
Forensicsattribute_delaycausal model
Why is the Payments milestone late?
Walks from the late milestone m_204 back to the approval a_88 that sat idle nine days, then finds the two people who hold the scarce skill are both already booked on another project. Two real causes, a 21-day slip.
No plausible-sounding explanation that was not actually derived from the raw events.
Capacityrun_schedulerCP-SAT solver
Can we take on Open Banking in Q3?
New task t_201 needs 200 hours of the scarce skill. A constraint solver weighs the four people who hold it against their real cost rates and returns three feasible paths, and rejects a fourth by naming the constraint it breaks.
No hand-waved "yes we can", feasibility is proven or the exact blocker is named.
Time Travelreconstruct_asoftemporal query
Was approving the plan on January 15 reasonable?
Risk r_12 became true on Jan 10 but the system only recorded it on Jan 20. Asked "as of Jan 15", the same query honestly shows no risk. Asked "as of Jan 21", the same code shows the risk. Two clocks, never mixed.
No silent rewriting of history, what was known then stays provable.
Ripplesimulate_scenarioread-only solver
What happens if we reassign Sarah?
Pulling p_14 (Sarah) off her task roughly doubles its solo duration, a further 5.9 week slip, and the contractors have zero real availability on that date. Then the entire what-if rolls back, byte for byte.
No what-if can corrupt the system of record, every scenario is unconditionally rolled back.
Honestystructured refusalintent router
How is team morale on Payments?
The system scans all 14 classes for a concept that fits "morale". None match. There is no Sentiment, Morale, or Feeling class, so it draws the shape that is not there and refuses, naming the exact missing class.
No guessing or quietly substituting a nearby metric, it admits the gap by name.
How to read the graph, every colour and code
Work Breakdown (coral). Projects, tasks, milestones, deliverables, the structure of the work itself.
People and Capacity (indigo). The named individuals, their skills, leave, and overtime.
The key edge, gates (amber). The single link every delay investigation walks first: an approval that gates a milestone.
A real record (teal). An actual project instance loaded onto the schema, e.g. a_88, not just the class it belongs to.
A planted trap (dashed, muted). Data that looks relevant but must never surface as a cause, proving the system follows real relationships, not name matching.
prj_…
a project. prj_core = Core Banking Modernization, prj_aml = AML upgrade.
m_…
a milestone. m_204 = Payments Integration Go-Live.
t_…
a task. t_130 = Sanctions Screening on the AML project.
a skill. sk_int = Payment Gateway Integration, the scarce one.
a_…
an approval gate. a_88 = Vendor Security Gate.
r_…
a risk. r_12 = vendor delivery capacity strained.
cr_…
a cost rate. cr_int_contractor = QAR 260/hr.
valid_time
when a fact became true in the world.
tx_time
when the system actually learned it. The two never mix.
Run full simulation plays the whole sequence end to end, and any single story walks step by step on its own. Every node and edge traces straight through to the source record behind it, nothing on screen is asserted, all of it is derived.
any class or relation is clickable for its detail, independent of playback
STEP 0 /
GLASS BOX
The ontology, end to end
schema, then real data, then all five stories, one continuous walk
SIMULATION · intro
Cluster A, work breakdown
Cluster B, people and capacity
Cluster C, governance, commercial, risk
flagship relation, lit
real instance, lit
distractor, deliberately unwired
01
L2 · live digital twinThe events tableone append-only table, two clocks on every row
Every instance above resolves down to rows here. Nothing is ever overwritten, only appended. valid_time records when a fact became true in the world, tx_time records when the system learned it, and the proof of an honest history lives in the one row where those two clocks disagree.
Select a class or relationGlass Box Ontology v1.0frozen, closed vocabulary
kind
-
comment
The graph builds on play, and every node or edge opens its detail here.
domain / range
-
source line
-
Glass Box · Architecture Reference · L0 to L6
Seven layers between a question and a fact
Seven layers, one rule: truth flows up from the feeds, language sits on top, and provenance wraps every layer in between. Toggle between a guided tour of each layer's deliberately minimal v0 tech choice, and a live walk of any of the five stories' actual data, each one a different real path traced through every layer that computes it.
Project Intelligence gives engineering and capital project owners a single, full-stack view of a project's actual state, surfacing schedule risk, cost drift, and delivery signals from raw field data up through natural-language answers, with every claim traceable back to the source event that produced it. Built on an open source, self-hostable stack, so the system runs entirely inside your own infrastructure rather than a vendor's cloud. The interactive reference below is a real architecture walkthrough, not a mockup: every layer, tool, and data path is specified to run exactly as shown, on infrastructure you control.
STEP 0 /
Select a layer
L0 – L6
Click any band in the stack, or press Play to tour top to bottom.
v0 choice
-
deliberately deferred
-
-
Story A: live trace
The production stack, end to end
Every tool below is open source and self-hostable: sovereignty by construction, not by promise. This is not the deliberately minimal v0 shortlist from the layer cards above, it is the fuller production stack, including the event sourcing and streaming infrastructure a full deployment would actually run. Click any node for what it does and how you would run it. Choose a story above to watch that story's own path physically traverse the pipeline, each of the five stories lights a different, real route through the same tools.
Currently showing: Story A. When two consecutive lit nodes show no connecting line between them, they are parallel, independent sources converging at the next node, not a broken traversal.
click any node to inspect it, independent of playback
open-source tool, idle
lit: the selected story's event just passed through
selected for inspection
Select a toolTech stackclick any node
role
-
protocol
-
why this
-
run it
-
Delivery roadmap
All five stories, A through E, are fully specified: the claim, the entities, the engine path, the cross-feed reconciliation, the distractor, and the fingerprint, all written and internally consistent for every story. The build method is deliberately depth-first: implement one story, delay forensics, end to end until its claim is computable twice with identical output, stress test it, and only then expand to the remaining four in a planned order. No engine code is written for a story until the one before it has run and survived that test — breadth is earned, never assumed.
Reading the stack: in tour mode, layers light amber top to bottom as a generic explainer. In story mode, choose any of the five stories above, the pulse runs bottom to top for that story's own real path: feeds write into L2, when a feed is involved, L1 validates the shape of every fact, L3 computes the answer using whichever engine that story actually needs, causal model, solver, or temporal query, L4 exposes it as one typed verb, or no verb at all for Story E's refusal, L5 narrates it, L6 renders it, and L0 lights on every single hop, because provenance logs from every layer, not just the top.