Inspiration
We started from a question that kept nagging us: everyone is building AI agents, so why does almost nobody run them in production? We assumed the answer would be capability. It wasn't. When we went into the research, the blocker was trust and control, not intelligence. Gartner projects that more than 40% of agentic AI projects will be cancelled by the end of 2027, and the reasons are cost, unclear value, and inadequate risk controls. Model quality isn't on the list. IBM found that two-thirds of CIOs are already accountable for AI systems they can't fully control.
That reframed the problem for us. Adoption isn't gated by how smart the agent is. It's gated by whether the enterprise can see it, govern it, and prove what it did. You can almost write it as a constraint:
$$\text{Adoption} \;\propto\; \min!\big(\text{Capability},\ \text{Governance}\big)$$
How we build it
We built NodeWitness as a small localhost-first Next.js application using React and TypeScript.
@xyflow/react renders the pan-and-zoom workflow, minimap, selection, status states, search highlighting, and animated affected edges. A pure deterministic TypeScript domain engine performs policy diffing, exposure evaluation, affected-node selection, recommendation generation, and audit-event creation. Two bundled synthetic IPS PDFs provide stable page numbers and evidence excerpts. One normalized nodewitness.runtime@1 schema accepts either deterministic fixtures or validated Live Codex results. A server-only Model Context Protocol adapter starts and reuses a local codex mcp-server over stdio. It uses the authenticated Codex CLI, read-only sandboxing, approval policy never, bounded timeouts, and strict response validation. It does not use an OpenAI API key. If Codex is unavailable, malformed, or slow, the application preserves its state and continues through deterministic Demo Mode. Browser localStorage preserves useful demo state, while Reset Demo restores the original IPS v1 passing baseline. Safe local handlers generate the remediation record and Markdown artifacts only after individual approval. We intentionally did not add a database, authentication, cloud infrastructure, external connectors, a vector store, or a generic orchestration framework. That kept the product focused on the trust and governance experience we wanted to prove. Capability has been racing ahead; governance has barely moved. Every earlier wave of computing eventually grew a layer to govern it. The cloud did, enterprise software did, and the fleet of AI agents inside a company still hasn't. A single Fortune 500 is going from fewer than 15 agents today to more than 150,000 by 2028 (about a $10{,}000\times$ jump), most of them shadow. We wanted to build the layer that's missing.
What we learned
The lesson that surprised us most: the hard problem isn't catching agents that fail loudly, it's catching agents that look fine. An agent can pass every security, error and compliance check and still ship work that is confidently wrong. It invents a fact and reasons from it, or reports that an API was down without ever calling it. The more we dug, the clearer it got that the whole category is mostly blind to this. Groundedness checkers need a reference document to compare against. Variance-based methods miss a fabrication the model states consistently. And underneath all of it, any quality detector needs a scorer, which at fleet scale is just another model that drifts and carries its own bias, so the baseline you measure against slowly rots.
The second lesson was commercial. In this space, the ROI question and the governance question turn out to be the same question. A CFO asking whether an agent was worth it and a regulator asking what an agent was allowed to do both need one thing: a single record tying an action to an identity, a policy, and an outcome. That is why we chose to land in regulated finance first, where the audit is mandatory and someone already owns the budget for it.
Challenges we faced
The category is crowded and consolidating fast, which cut both ways for us. Five of the competitors we mapped were acquired in the last 12 to 18 months, which told us the demand is real but also forced us to be honest about where the actual whitespace is. Our first drafts claimed nobody does discovery, or enforcement, or identity. That's simply not true, and any investor would catch it in one search. The harder and more defensible answer was narrower: plenty of tools own one layer, almost none own the join across all of them, and the two places every competitor column goes blank are behavioral-quality detection and trace-grounded proof.
The next challenge was being honest about our own moat. Measurement reliability, building a scorer that doesn't drift, is a genuine research problem rather than a weekend feature. The field has diagnosed it but hasn't solved it at scale. Instead of hiding that, we put it at the center of the roadmap and named it as our core risk. The last one is the bring-your-own-agent promise itself. Governing agents a customer already runs, across LangGraph, Agentforce, Bedrock and custom code, without asking them to re-platform, means getting real visibility into a messy, heterogeneous estate with a light footprint. That is the thing that makes or breaks the whole wedge, and most of our hardest thinking went into it.
Built With
- codex-cli
- eslint
- git
- html5
- localstorage
- model-context-protocol
- native-css
- next.js
- node.js
- node.js-test-runner
- openai-codex
- react
- typescript
- xyflow
Log in or sign up for Devpost to join the conversation.