A thin vertical slice that closes Aronlight, plus a data model designed so client #2 (BCP or Sophie) drops in as a second tenant without rewriting the core.
Generic "agent platform" is where teams 10x your size have burned $100M. Scope must be ruthlessly narrow to your own agents, or you build scaffolding nobody uses.
Quote-Gen alone is not enough to design a platform. Map at least two client agents side-by-side (Quote-Gen + RMA, or + Sophie screening) before choosing what to share.
Your stack is TS/Next/Supabase. Splitting Python backend + TS frontend doubles devex unless you hire now. Claude Code writes both equally fast. Use Python only where ML/data people will actually plug in.
Every client agent you've described, Quote-Gen, RMA, Sophie screening, BCP assessment, reduces to the same four blocks. Build the MVP as these four, not as a generic flow editor.
Where raw data comes in. MVP: drop a folder of files (emails, PDFs, XLSX).
Later: Gmail, Outlook, Odoo ERP, SharePoint connectorsClaude parses raw into a structured table with per-field confidence 0 to 100 and a reason.
Output: field | value | confidence | why | source fileClient-specific knowledge plugged into the prompt. MVP: uploaded Excel + markdown.
Later: live SQL, Odoo queries, vector search over internal docsHuman UI to approve, edit, or reject each row. Run-level observability (% approved, avg confidence, time to decision).
Every agent = a config over these four. YAML or a form, no DAG editor yet.Single page. Folder in, table with confidence, Manel approves, CSV out. Closes the Aronlight call in 1 week. No platform, no second tenant.
Single-tenant to start (Aronlight), data model + APIs ready so client #2 drops in as a second tenant in week 5. No visual builder yet, YAML per agent. Closes Aronlight AND becomes your reference architecture.
Any client logs in, uploads data, wires agents visually, observes runs. Monetized per transaction. 3 to 6 months. Don't start here.
| Table | Purpose | Key fields |
|---|---|---|
agents |
One row per configured agent per client | id, client_id, name, config_yaml, created_at |
runs |
A batch execution of an agent | id, agent_id, status, started_at, finished_at, stats_json |
sources |
Input files uploaded for a run | id, run_id, type, file_path, mime_type |
extractions |
Per-field outputs from the Extractor | id, run_id, source_id, field, value, confidence, reason |
grounding_docs |
Knowledge base files per agent | id, agent_id, type, file_path, parsed_content |
reviews |
Human approvals, edits, rejects | id, extraction_id, status, edited_value, reviewer_id, reviewed_at |
The reference platform is Faction. Screenshots show: (1) email with inline entity highlight + dark tooltip callout, (2) fully parsed quote with ALL-CAPS micro-labels and resolved line items, (3) product data table with ---- placeholders and an "Enrich Data with Faction" action. This IS the 4-primitive flow made visible. We copy the aesthetic.
---- token for missing fields| Faction screen | Our primitive |
|---|---|
| Email w/ entity highlight + callout | Source (raw in, entities tagged) |
| Parsed quote w/ line items + pricing | Extractor (structured output) |
Product table w/ ---- + Enrich action | Grounder (knowledge fills gaps) |
| (not shown) approve/edit row | Reviewer (human in the loop) |
This strip below is rendered in the same aesthetic we'd ship in Week 2 (Extractor output table). All-caps labels, thin type, off-white surface, monospace values, ---- for missing.
| Raw Input | Description | MPN | Unit Price | Qty | Ext Price | Confidence |
|---|---|---|---|---|---|---|
| 1/2" PVC 6" Threaded Nipples | 1/2" PVC Nipple, 6" length, threaded for pipe extensions. | PVN-6050 | 1.89 | 40 | $75.60 | 98 |
| 1/2" PVC Ball Valves | 1/2" PVC Ball Valve, full port for main water shutoff. | SPE-3708 | 12.47 | 28 | $349.16 | 96 |
| 2-1/2 to 1/2" NPT Taps | 2-1/2" to 1/2" NPT reducing tap for adapting large to small lines. | TAP-35832 | 28.15 | 3 | $84.45 | 72 |
| 8" PVC 40 SW Caps | 8" PVC Schedule 40 socket cap for terminating main drain lines. | ---- | ---- | 25 | ---- | 34 |
| 4" PVC 40 SW Caps | 4" PVC Schedule 40 socket cap for capping branch drains. | CAP-40038 | 5.85 | 15 | $87.75 | 91 |
+---------------------------------------------------------------+ | BLUEPRINT / FACTION-STYLE OFF-WHITE PAGE WITH GRID EDGES | | | | . . . | | | | AGENTS [+ New] | | ------------------------------------------------------ | | NAME CLIENT LAST RUN RUNS | | Quote-Gen Aronlight 2h ago 17 | | RMA Aronlight ---- 0 | | CV Screening Sophie ---- 0 | | | +---------------------------------------------------------------+ +---------------------------------------------------------------+ | . . . | | | | NEW AGENT | | | | NAME [ Quote-Gen ] | | CLIENT [ Aronlight v ] | | DESCRIPTION [ Parse inbound RFQ emails into a ] | | [ structured quote with confidence ] | | | | SOURCE ( ) Folder upload ( ) Gmail (soon) | | | | OUTPUT SCHEMA (YAML) | | +-------------------------------------------------------+ | | | fields: | | | | - name: raw_input | | | | type: string | | | | - name: description | | | | type: string | | | | - name: mpn | | | | type: string | | | | - name: unit_price | | | | type: number | | | | - name: qty | | | | type: integer | | | +-------------------------------------------------------+ | | | | GROUNDING [ + Upload Excel or Markdown ] | | | | [ Cancel ] [ Create ] | | | +---------------------------------------------------------------+
Prompt ops + evaluation. Useful for how they expose confidence and run logs.
Agent observability standard. Look at their run detail view and trace tree.
Visual builder. Don't copy the DAG, copy how they surface errors to non-technical users.
a16z seeded vertical agent for insurance. Closest comp to what you're doing for manufacturing. Study their "approve/edit" loop.
Reference is locked (Faction). Next decisions: (a) confirm 4-primitives scope so I can write tasks/todo.md for Week 1. (b) Decide if the Python API lives in this repo or a sibling repo (e.g. agent-platform/). (c) Pick agent #2 for Week 4: Sophie CV screening, BCP assessment, or Aronlight RMA.
Recommendation: new sibling repo agent-platform/ since this will outlive Aronlight; lock 4 primitives as scope; agent #2 = Sophie CV screening (no ERP dependency, you have volume).