Every Generic SaaS ships with its own agent. It specialises in that one app, learns from how people actually use it, and proposes changes — with evidence and a diff. Nothing ships without a human saying yes.
{{ heroEvidence }}
The agent is not a chatbot bolted onto the app. It's a loop with a harness around it: it can only move forward through these steps, and the evals and the approval seat sit between "propose" and "ship".
Clicks, paths, abandoned forms, exports, searches, time-on-task, incidents. Never the text people type, never PII. Everything it reads is journaled.
It writes what it learns to its own branch of the Knowledge Graph — plain Open Knowledge Format, with provenance. Merged to main only after review.
A proposal is a change with the numbers behind it, a code diff plus before/after screens, a risk level, and the eval results. It stays open until someone decides.
Approved changes roll out 1% → 10% → 100%. Error-budget breach or a thumbs-down threshold rolls it back automatically. Then it observes again.
The agent sees the shape of work, not the work itself. It knows a form was abandoned at field four; it never sees what was in fields one to three.
This is what lands in the app owner's inbox. Click the tabs.
Start tight. Loosen when the changelog earns it. The journal records which mode was on for every change ever shipped.
An agent's memory is a branch of the shared Knowledge Graph — git-based, plain Open Knowledge Format. Facts it learns about the company (a store's hours, who approves what) merge to main and every other agent sees them. Features it ships stay its own — but when a pattern would help a sibling app, it can propose the same change there, with its own evidence.
A real changelog is boring, and that's the point: dozens of five-minute annoyances removed, and every few weeks something the vendor would have put on a roadmap for next year.
{{ f.a }}
We walk through a real proposal inbox from an agentic loop: observe, propose, approve, roll out. 45 minutes.