◇ Zen Insurance · Nova AI
Nova AI Agent Runs / 9 Canyon View

LEAD-2026-0423 · current: Underwriter · 1 run

▶ Agent Theaterthe audit trail, animated — every pulse is a real traced MCP tools/call from agent_run_steps · play / scrub / slow-motion
0.0s / 23.0s
orchestratoragent run

Every pulse is a recorded MCP tools/call · electrons show dispatch (↓) and response (↑) · click a node to inspect its last call

—run start
Run 1 · workflow · NovaSep 11, 6:11 PM33 steps · 3110ms · ok
1
📥 Inbound
62 field(s) · dedupe: new lead (first submit) · key "9 canyon view 90265"
input / output
result
{
  "source": "inbound",
  "fields_received": 62,
  "dedupe_key": "9 canyon view 90265",
  "dedupe_result": "new lead (first submit)"
}
2
◧ Classify
62 fields · 3 autofilled · 1 missing · 0 verify · 1 gate(s) (kyc_score 87 ≥ 6)
input / output
result
{
  "source": "inbound",
  "fields_seen": 62,
  "missing": 1,
  "autofilled": 3,
  "verify": 0,
  "gates": 1,
  "gate_signals": [
    "kyc_score 87 ≥ 6"
  ]
}
3
• plan
{"note":"Nova reads the whole lead JSON → delegation plan (waves of service calls)","missing_service_fields":2,"waves":[["mls (1 fields)","internal (1 fields)"]]}
input / output
result
{
  "note": "Nova reads the whole lead JSON → delegation plan (waves of service calls)",
  "missing_service_fields": 2,
  "waves": [
    [
      "mls (1 fields)",
      "internal (1 fields)"
    ]
  ]
}
4
• evaleval:prefill_plan
{"pass":true,"verdict":["✓ well_formed: 2 services across 1 waves","✓ coverage: 2/2 missing fields covered","✓ topology: every dependency satisfied before its wave","✓ no_customer_fields: plan touches
input / output
args →
{
  "gates": [
    "well_formed",
    "coverage",
    "topology",
    "no_customer_fields",
    "bounded"
  ]
}
result
{
  "pass": true,
  "verdict": [
    "✓ well_formed: 2 services across 1 waves",
    "✓ coverage: 2/2 missing fields covered",
    "✓ topology: every dependency satisfied before its wave",
    "✓ no_customer_fields: plan touches service-owned fields only",
    "✓ bounded: 1 waves (max 8)"
  ],
  "note": "plan accepted — delegation authorized"
}
5
⚙ Prefill
3 field(s):
input / output
result
{
  "note": "Nova fans out one sub-agent per external service, in dependency waves",
  "count": 3,
  "subagents": 11,
  "waves": 2,
  "services": [
    "geocode (Smarty / USPS geocode)",
    "kyc (LexisNexis InstantID (KYC))",
    "assessor (ATTOM / CoreLogic assessor)",
    "mls (Regrid / MLS)",
    "aerial (Betterview / Nearmap aerial AI)",
    "hazard (Verisk HazardHub)",
    "elevation (USGS 3DEP elevation)",
    "fhsz (Cal Fire FHSZ)",
    "internal (Zen Insurance internal DB)",
    "permits (BuildFax / county permits)",
    "catmodel (Nova AI wildfire cat-model)"
  ],
  "resolved_fields": 3,
  "outages": "none"
}
6
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 1",
  "service": "geocode",
  "vendor": "Smarty / USPS geocode",
  "wave": 1,
  "resolves": [
    "county"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — Smarty / USPS geocode"
}
7
⚡ MCP tools/callservice_call:geocode
{"resolved":{"county":"Los Angeles"},"fields":1}
input / output
args →
{
  "subagent": "Nova · Sub-agent 1",
  "vendor": "Smarty / USPS geocode",
  "requested": [
    "county"
  ]
}
result
{
  "resolved": {
    "county": "Los Angeles"
  },
  "fields": 1
}
8
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 2",
  "service": "kyc",
  "vendor": "LexisNexis InstantID (KYC)",
  "wave": 1,
  "resolves": [
    "kyc_score"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — LexisNexis InstantID (KYC)"
}
9
⚡ MCP tools/callservice_call:kyc
{"resolved":{"kyc_score":"n/a"},"fields":1}
input / output
args →
{
  "subagent": "Nova · Sub-agent 2",
  "vendor": "LexisNexis InstantID (KYC)",
  "requested": [
    "kyc_score"
  ]
}
result
{
  "resolved": {
    "kyc_score": "n/a"
  },
  "fields": 1
}
10
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 3",
  "service": "assessor",
  "vendor": "ATTOM / CoreLogic assessor",
  "wave": 1,
  "resolves": [
    "dwelling_type",
    "property_purchase_date",
    "year_built",
    "square_feet",
    "num_stories",
    "structure_type",
    "construction_type",
    "foundation_type",
    "replacement_cost"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — ATTOM / CoreLogic assessor"
}
11
⚡ MCP tools/callservice_call:assessor
{"resolved":{"dwelling_type":"Primary","property_purchase_date":2012,"year_built":1976,"square_feet":1970,"num_stories":2,"structure_type":"Single Family","construction_type":"Steel Frame","foundation
input / output
args →
{
  "subagent": "Nova · Sub-agent 3",
  "vendor": "ATTOM / CoreLogic assessor",
  "requested": [
    "dwelling_type",
    "property_purchase_date",
    "year_built",
    "square_feet",
    "num_stories",
    "structure_type",
    "construction_type",
    "foundation_type",
    "replacement_cost"
  ]
}
result
{
  "resolved": {
    "dwelling_type": "Primary",
    "property_purchase_date": 2012,
    "year_built": 1976,
    "square_feet": 1970,
    "num_stories": 2,
    "structure_type": "Single Family",
    "construction_type": "Steel Frame",
    "foundation_type": "Post & Pier",
    "replacement_cost": 782000
  },
  "fields": 9
}
12
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 4",
  "service": "mls",
  "vendor": "Regrid / MLS",
  "wave": 1,
  "resolves": [
    "listed_for_sale",
    "acreage"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — Regrid / MLS"
}
13
⚡ MCP tools/callservice_call:mls
{"resolved":{"listed_for_sale":"No","acreage":0.35},"fields":2}
input / output
args →
{
  "subagent": "Nova · Sub-agent 4",
  "vendor": "Regrid / MLS",
  "requested": [
    "listed_for_sale",
    "acreage"
  ]
}
result
{
  "resolved": {
    "listed_for_sale": "No",
    "acreage": 0.35
  },
  "fields": 2
}
14
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 5",
  "service": "aerial",
  "vendor": "Betterview / Nearmap aerial AI",
  "wave": 1,
  "resolves": [
    "roof_material",
    "roof_shape",
    "siding_material",
    "pool_type",
    "min_distance_to_neighbor_ft",
    "vegetation_clearance"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — Betterview / Nearmap aerial AI"
}
15
⚡ MCP tools/callservice_call:aerial
{"resolved":{"roof_material":"Concrete Tile","roof_shape":"Hip","siding_material":"Vinyl","pool_type":"None","min_distance_to_neighbor_ft":25,"vegetation_clearance":"100+ ft"},"fields":6}
input / output
args →
{
  "subagent": "Nova · Sub-agent 5",
  "vendor": "Betterview / Nearmap aerial AI",
  "requested": [
    "roof_material",
    "roof_shape",
    "siding_material",
    "pool_type",
    "min_distance_to_neighbor_ft",
    "vegetation_clearance"
  ]
}
result
{
  "resolved": {
    "roof_material": "Concrete Tile",
    "roof_shape": "Hip",
    "siding_material": "Vinyl",
    "pool_type": "None",
    "min_distance_to_neighbor_ft": 25,
    "vegetation_clearance": "100+ ft"
  },
  "fields": 6
}
16
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 6",
  "service": "hazard",
  "vendor": "Verisk HazardHub",
  "wave": 1,
  "resolves": [
    "protection_class",
    "distance_to_fire_department",
    "dist_to_nearest_fire_hydrant",
    "fire_department_type",
    "fire_dept_response_time",
    "road_access"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — Verisk HazardHub"
}
17
⚡ MCP tools/callservice_call:hazard
{"resolved":{"protection_class":"3","distance_to_fire_department":2,"dist_to_nearest_fire_hydrant":460,"fire_department_type":"Career","fire_dept_response_time":22,"road_access":"Paved two-way"},"fiel
input / output
args →
{
  "subagent": "Nova · Sub-agent 6",
  "vendor": "Verisk HazardHub",
  "requested": [
    "protection_class",
    "distance_to_fire_department",
    "dist_to_nearest_fire_hydrant",
    "fire_department_type",
    "fire_dept_response_time",
    "road_access"
  ]
}
result
{
  "resolved": {
    "protection_class": "3",
    "distance_to_fire_department": 2,
    "dist_to_nearest_fire_hydrant": 460,
    "fire_department_type": "Career",
    "fire_dept_response_time": 22,
    "road_access": "Paved two-way"
  },
  "fields": 6
}
18
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 7",
  "service": "elevation",
  "vendor": "USGS 3DEP elevation",
  "wave": 1,
  "resolves": [
    "slope_angle_deg"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — USGS 3DEP elevation"
}
19
⚡ MCP tools/callservice_call:elevation
{"resolved":{"slope_angle_deg":26},"fields":1}
input / output
args →
{
  "subagent": "Nova · Sub-agent 7",
  "vendor": "USGS 3DEP elevation",
  "requested": [
    "slope_angle_deg"
  ]
}
result
{
  "resolved": {
    "slope_angle_deg": 26
  },
  "fields": 1
}
20
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 8",
  "service": "fhsz",
  "vendor": "Cal Fire FHSZ",
  "wave": 1,
  "resolves": [
    "is_7a_compliant"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — Cal Fire FHSZ"
}
21
⚡ MCP tools/callservice_call:fhsz
{"resolved":{"is_7a_compliant":"No"},"fields":1}
input / output
args →
{
  "subagent": "Nova · Sub-agent 8",
  "vendor": "Cal Fire FHSZ",
  "requested": [
    "is_7a_compliant"
  ]
}
result
{
  "resolved": {
    "is_7a_compliant": "No"
  },
  "fields": 1
}
22
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 9",
  "service": "internal",
  "vendor": "Zen Insurance internal DB",
  "wave": 1,
  "resolves": [
    "broker_tier",
    "has_primary_policy_with_carrier"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — Zen Insurance internal DB"
}
23
⚡ MCP tools/callservice_call:internal
{"resolved":{"broker_tier":"Tier 3","has_primary_policy_with_carrier":"Yes"},"fields":2}
input / output
args →
{
  "subagent": "Nova · Sub-agent 9",
  "vendor": "Zen Insurance internal DB",
  "requested": [
    "broker_tier",
    "has_primary_policy_with_carrier"
  ]
}
result
{
  "resolved": {
    "broker_tier": "Tier 3",
    "has_primary_policy_with_carrier": "Yes"
  },
  "fields": 2
}
24
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 10",
  "service": "permits",
  "vendor": "BuildFax / county permits",
  "wave": 1,
  "resolves": [
    "roof_replacement_year",
    "has_knob_and_tube_wiring",
    "electrical_panel_brand",
    "plumbing_age_years",
    "electrical_panel_size_amps"
  ]
}
result
{
  "spawned": true,
  "note": "wave 1 — BuildFax / county permits"
}
25
⚡ MCP tools/callservice_call:permits
{"resolved":{"roof_replacement_year":2012,"has_knob_and_tube_wiring":"No","electrical_panel_brand":"Eaton","plumbing_age_years":48,"electrical_panel_size_amps":200},"fields":5}
input / output
args →
{
  "subagent": "Nova · Sub-agent 10",
  "vendor": "BuildFax / county permits",
  "requested": [
    "roof_replacement_year",
    "has_knob_and_tube_wiring",
    "electrical_panel_brand",
    "plumbing_age_years",
    "electrical_panel_size_amps"
  ]
}
result
{
  "resolved": {
    "roof_replacement_year": 2012,
    "has_knob_and_tube_wiring": "No",
    "electrical_panel_brand": "Eaton",
    "plumbing_age_years": 48,
    "electrical_panel_size_amps": 200
  },
  "fields": 5
}
26
✳ Spawnspawn_subagent
groundwork-prefill · 0 field(s) to resolve
input / output
args →
{
  "subagent": "Nova · Sub-agent 11",
  "service": "catmodel",
  "vendor": "Nova AI wildfire cat-model",
  "wave": 2,
  "resolves": [
    "roof_classification",
    "siding_classification",
    "p_f"
  ]
}
result
{
  "spawned": true,
  "note": "wave 2 — Nova AI wildfire cat-model"
}
27
⚡ MCP tools/callservice_call:catmodel
{"resolved":{"roof_classification":"Class A","siding_classification":"Noncombustible","p_f":0.098,"wildfire_risk_score":77},"fields":4}
input / output
args →
{
  "subagent": "Nova · Sub-agent 11",
  "vendor": "Nova AI wildfire cat-model",
  "requested": [
    "roof_classification",
    "siding_classification",
    "p_f"
  ]
}
result
{
  "resolved": {
    "roof_classification": "Class A",
    "siding_classification": "Noncombustible",
    "p_f": 0.098,
    "wildfire_risk_score": 77
  },
  "fields": 4
}
28
▤ DB writeMCP · db_upsert_field
has_primary_policy_with_carrier = Yes · sim:internal
input / output
args →
{
  "leadId": "LEAD-2026-0423",
  "field": "has_primary_policy_with_carrier",
  "value": "Yes",
  "provenance": "sim:internal",
  "confidence": 0.88
}
result
{
  "field": "has_primary_policy_with_carrier",
  "status": "auto-filled"
}
29
▤ DB writeMCP · db_upsert_field
listed_for_sale = No · sim:mls
input / output
args →
{
  "leadId": "LEAD-2026-0423",
  "field": "listed_for_sale",
  "value": "No",
  "provenance": "sim:mls",
  "confidence": 0.88
}
result
{
  "field": "listed_for_sale",
  "status": "auto-filled"
}
30
▤ DB writeMCP · db_upsert_field
p_f = 0.770 · sim:catmodel
input / output
args →
{
  "leadId": "LEAD-2026-0423",
  "field": "p_f",
  "value": "0.770",
  "provenance": "sim:catmodel",
  "confidence": 0.88
}
result
{
  "field": "p_f",
  "status": "auto-filled"
}
31
▶ Decisions
4 clear · 0 triage · 1 decline · Swimming Pools:clear, Roof Class:decline, Electrical Systems:clear, Plumbing:clear, Fire Protection & Defensible Space:clear
input / output
result
{
  "decisions": [
    {
      "point": "Swimming Pools",
      "key": "swimming_pools",
      "status": "clear",
      "rule": "Inground, fenced self-locking"
    },
    {
      "point": "Roof Class",
      "key": "roof_class",
      "status": "decline",
      "rule": "Combustible — wood shake"
    },
    {
      "point": "Electrical Systems",
      "key": "electrical",
      "status": "clear",
      "rule": "Sound panel"
    },
    {
      "point": "Plumbing",
      "key": "plumbing",
      "status": "clear",
      "rule": "Modern plumbing, no tank WH"
    },
    {
      "point": "Fire Protection & Defensible Space",
      "key": "fire_protection",
      "status": "clear",
      "rule": "Protected"
    }
  ],
  "triage": 0,
  "clear": 4,
  "decline": 1
}
32
✉ Email ask
1 ask(s): physical_barriers
input / output
result
{
  "ask": [
    "physical_barriers"
  ],
  "count": 1,
  "note": "producer-editable missing → follow-up composed"
}
33
→ Queue move
NEW → AWAITING_UW_REVIEW · 1 hard gate(s) hit — underwriter review
input / output
result
{
  "from": "NEW",
  "to": "AWAITING_UW_REVIEW",
  "recommendation": "refer",
  "reason": "1 hard gate(s) hit — underwriter review"
}