Foresee

oficial

Foresee permite a los asistentes de IA comparar seguros de hogar y automóvil entre todas las aseguradoras y opciones de cobertura, proporcionando estimaciones de cotización instantáneas, precisas y detalladas.

¿Qué puedes hacer con Foresee MCP?

  • Comparar cotizaciones de seguro de auto — Solicita estimaciones instantáneas y detalladas entre aseguradoras usando quote_insurance con los detalles de tu vehículo y cobertura.
  • Cotizar cobertura de hogar o inquilinos — Obtén cotizaciones detalladas de hogar o inquilinos especificando las propiedades y los límites de cobertura como coverage_a o coverage_c.
  • Explorar compensaciones de cobertura — Observa cómo cambiar deducibles o límites afecta las primas mensuales mediante escalas de precios en la respuesta.
  • Identificar factores faltantes — Pregunta qué detalles omitidos (como annual_mileage o el historial de manejo) moverían más tu cotización, según las sugerencias de tighten_by.
  • Confirmar estimaciones con aseguradoras — Usa live_carrier_quotes en el servidor de agentes para verificar las estimaciones de cotización directamente con las aseguradoras.

Servidor MCP alojado

npx add-mcp 'https://agents.go-foresee.com/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

Documentación

Foresee permite a los asistentes de IA comparar seguros de hogar y automóvil entre todas las aseguradoras y opciones de cobertura, proporcionando estimaciones de cotización instantáneas, precisas y detalladas.

Uso de Foresee

Foresee aloja dos servidores MCP:

Los usuarios que desean una estimación de cotización simple y de baja fricción sin entregar su PII utilizan:

https://mcp.go-foresee.com/mcp

Los usuarios que también desean confirmar las estimaciones de cotización directamente con las aseguradoras pueden enviar los agentes de uso de computadora de Foresee mediante:

https://agents.go-foresee.com/mcp

Ninguno de los servidores requiere autenticación.

Herramientas

Foresee publica dos herramientas en los servidores MCP:

HerramientaPropósitoagents.mcp.
quote_insuranceGenerar estimaciones de cotización instantáneas, precisas y detalladas✅✅
live_carrier_quotesConfirmar estimaciones de cotización con las aseguradoras✅❌

Herramienta 1: quote_insurance

Propósito: generar estimaciones de cotización instantáneas y desglosadas de las aseguradoras que Foresee respalda, en todas las líneas y estados que Foresee atiende actualmente, en una sola llamada.

Parámetros de entrada

ParámetroTipoRequeridoDetalles
profileobjetosíver Perfil
linesobjetosíLas claves son las líneas a cotizar (auto, home, renters); los valores son las opciones de cobertura de esa línea (ver Opciones de cobertura)
carriersstring[]noPor defecto "todas las aseguradoras"
include_partialbooleanonofalse
include_failuresbooleanonotrue

Perfil

Perfil principal

Hay una entrada principal profile, más bloques adicionales para seguro de automóvil y de hogar/inquilinos. Los únicos campos requeridos son edad (o dob), código postal y (para seguro de automóvil) detalles del vehículo.

Los campos opcionales omitidos se convierten en supuestos declarados: elegimos un valor conservador de respaldo, reportado como assumptions — p. ej. annual_mileage = 12000, con una entrada tighten_by que lista los supuestos que más moverían el precio. prior_insurance significa seguro para la misma línea; companion_policies significa seguro para una línea diferente.

CampoTipoRequerido
zip_codestringsí
ageenterosí
dobstring, YYYY-MM-DDalternativa aceptada a age
citystringno
genderstringno
marital_statusstringno
educationstringno
employment_statusstringno
occupationstringno
credit_rangestringno
home_ownership_statusstringno
residence_typestringno
military_affiliationstringno
membershipsstring[]no
effective_datestringno
prior_insuranceobjetono
companion_policiesstring[]no

Perfil de seguro de automóvil

CampoTipoRequerido
auto.vehicles[].yearenterosí
auto.vehicles[].makestringsí
auto.vehicles[].modelstringsí
auto.vehicles[].ownershipstringno
auto.vehicles[].annual_mileageenterono
auto.vehicles[].primary_usestringno
auto.vehicles[].garaging_zipstringno
auto.drivers[].relationstringno (self para el primero)
auto.drivers[].dobstringno
auto.drivers[].years_licensedenterono
auto.drivers[].accidentsobjeto[]no
auto.drivers[].violationsobjeto[]no
auto.drivers[].sr22_requiredbooleanono

accidents y violations son listas de objetos estructurados, donde una lista vacía es un historial limpio.

Perfil de seguro de hogar e inquilinos

CampoTipoRequerido
property.year_builtenterono
property.construction_typestringno
property.roof_typestringno
property.square_feetenterono
property.protection_classstringno
property.replacement_costenterono
property.devicesstring[]no
property.lossesobjeto[]no

Opciones de cobertura

Cada clave en lines toma las opciones de cobertura de esa línea. Nada se cotiza con un valor predeterminado del servidor: las opciones que pasas son las que se cotizan.

Automóvil

OpciónTipoRequeridoQué cubre
bistringsíResponsabilidad por lesiones corporales: lesiones que causas a otras personas. Límite por persona/por accidente en miles de $, p. ej. "100/300"
pdenterosíResponsabilidad por daños a la propiedad: daños que causas a los autos y propiedades de otras personas. Límite en miles de $, p. ej. 100
coll_deductibleenterosíColisión: daños a tu propio auto por un choque, sin importar quién tenga la culpa. El deducible que pagas por reclamo, en dólares
comp_deductibleenterosíCobertura integral: daños a tu propio auto por cualquier cosa que no sea un choque — robo, incendio, granizo, vandalismo, golpear a un animal. El deducible que pagas por reclamo, en dólares
umstringnoConductor sin seguro/subasegurado: tus lesiones cuando el conductor culpable no tiene seguro o tiene muy poco. Límite por persona/por accidente en miles de $, p. ej. "100/300"
medpayenteronoPagos médicos: facturas médicas para ti y tus pasajeros, sin importar quién tenga la culpa. Límite en dólares, p. ej. 5000

Hogar

OpciónTipoRequeridoQué cubre
coverage_aenterosíVivienda: reconstrucción de la casa en sí. Límite en dólares, generalmente el costo de reposición
coverage_eenterosíResponsabilidad personal: lesiones o daños por los que eres legalmente responsable, dentro o fuera de la propiedad. Límite en dólares
coverage_fenterosíPagos médicos a terceros: facturas médicas de un invitado tras una lesión en tu propiedad, sin importar quién tenga la culpa. Límite en dólares
aop_deductibleenterosíDeducible para todos los demás riesgos: lo que pagas por reclamo por todo excepto riesgos con su propio deducible (como terremoto). En dólares

Las coberturas B (otras estructuras, como un garaje separado o una cerca), C (propiedad personal — tus pertenencias) y D (pérdida de uso — costos de vivienda mientras la casa no puede habitarse) no se solicitan en dólares — regresan en sel como proporciones de la Cobertura A que fueron cotizadas.

Inquilinos

OpciónTipoRequeridoQué cubre
coverage_centerosíPropiedad personal: tus pertenencias. Límite en dólares
coverage_eenterosíResponsabilidad personal: lesiones o daños por los que eres legalmente responsable. Límite en dólares
coverage_fenterosíPagos médicos a terceros: facturas médicas de un invitado tras una lesión en tu hogar, sin importar quién tenga la culpa. Límite en dólares
deductibleenterosíLo que pagas por reclamo antes de que comience la cobertura. En dólares
coverage_denteronoPérdida de uso: costos de vivienda adicionales si tienes que mudarte mientras el lugar se repara. Límite en dólares

Formato de respuesta

PrefijoFrecuenciaSignificado
Quna vez por líneaLo que se cotizó: estado, línea de negocio, selección de cobertura
format: factors:una vez por líneaLeyenda autodescriptiva para todo lo siguiente
assumptions:una vez por líneaSupuestos hechos por Foresee; high_impact: true significa que este campo mueve materialmente la estimación de cotización
tighten_by:una vez por líneaLos supuestos/hechos faltantes que más moverían el precio
not_priced:cuando correspondaAseguradoras excluidas, con el motivo
Cuna vez por aseguradoraAseguradora, entidad emisora, prima mensual (estimación puntual e intervalo de confianza)
Wsegún sea necesarioAdvertencia adjunta a la aseguradora anterior — p. ej. "No emite BI / PD mínimo estatal"
Luna vez por aseguradoraCosto mensual por cobertura o riesgo
Fmuchas por aseguradoraUn factor de calificación por línea, nombrado en la leyenda factors:. Los valores se alinean uno a uno con los códigos L: en blanco = no afecta esa cobertura, un solo valor = aplica a cada cobertura. El paréntesis es la fila en la que aterrizó el perfil (un escalón como 100/300, un hecho como 90066, o applied / not applied). Sufijo del valor: ninguno = exacto, ~ = derivado, ? = estimado
Dpor aseguradoraEscaleras de precios: para cada palanca de cobertura, cada escalón ofrecido como ±$/mes contra el mensual cotizado, todo lo demás mantenido en la selección. +0.00 marca el escalón seleccionado; (asked X) = X no se ofrece y el precio se ubica en el escalón ofrecido más cercano. Re-cotizar desde D; no volver a llamar

Ejemplo: automóvil

Una persona de 41 años en el código postal 90066 con un Honda Civic 2021.

Mercury muestra la celda de aseguradora simple; Travelers cotiza a través de dos posibles entidades emisoras, por lo que su celda lleva un segmento ci (el intervalo de colocación). USAA aparece en not_priced con el motivo propio de la aseguradora.

{
  "profile": {
    "zip_code": "90066",
    "age": 41,
    "auto": {"vehicles": [{"year": 2021, "make": "Honda", "model": "Civic"}]}
  },
  "lines": {"auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500}},
  "carriers": ["mercury", "travelers", "usaa"]
}

Cada campo de perfil omitido regresa como un supuesto declarado — el bloque assumptions: grueso a continuación es causado por la solicitud delgada anterior, y tighten_by: lista las siete respuestas que más moverían el precio. Mercury muestra la celda de aseguradora simple; Travelers cotiza a través de dos posibles entidades emisoras, por lo que su celda lleva un segmento ci (el intervalo de colocación). USAA aparece en not_priced con el motivo propio de la aseguradora.

Q CA auto sel={"bi":"100/300","coll_deductible":500,"comp_deductible":500,"pd":100}
format: Q state [line] sel=<coverage_selection priced, JSON> ; C=carrier|entity|monthly|ci lo-hi ; tighten_by=missing facts that most move the price — offer to re-quote with the user's answers ; L COV:$,.. = monthly $ per coverage ; F fid(selected)=v,v,.. = rating factor, one value per coverage in the L order, blank=not applied, single value=all coverages, suffix ?=estimated ~=derived none=exact ; D lever selected=option:±$/mo vs the carrier's monthly, others held at the selection (selected(asked X) = X is not an option; the price is at the selected rung shown) ; W = warning — e.g. an asked limit is not offered and the price covers the nearest offered rung instead
factors: f0=BI Limit f1=Good Driver f2=Group Placement (Rule G) f3=PD Limit f4=UMBI Limit f5=Medical Payments Limit f6=Comprehensive Deductible f7=Collision Deductible f8=Vehicle Symbol f9=ca_good_driver_pri f10=group f11=UM Limit
assumptions: [{"assumed":"Male","field":"gender","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":12000,"field":"annual_mileage","high_impact":true},{"assumed":0,"field":"accidents_3yr","high_impact":true},{"assumed":0,"field":"violations_3yr","high_impact":true},{"assumed":false,"field":"dui","high_impact":true},{"assumed":false,"field":"currently_insured","high_impact":true},{"assumed":null,"field":"homeowner","high_impact":false},{"assumed":null,"field":"occupation","high_impact":true},{"assumed":null,"field":"memberships","high_impact":true}]
tighten_by: annual_mileage,accidents_3yr,violations_3yr,dui,currently_insured,occupation,memberships
not_priced: usaa:USAA sells only to military members, veterans, and their fam
C mercury|Mercury Insurance Company|235.11
L BI:56.33,PD:44.10,UMBI:16.85,MP:0.97,COMP:17.49,COLL:99.38
F f0(100/300)=1.51,,,,,
F f1(applied)=0.8
F f2(not applied)=1.0
F f3(100)=,1.38,,,,
F f4(30/60)=,,1.65,,,
F f5(1000)=,,,1.0,,
F f6(500)=,,,,0.89,
F f7(500)=,,,,,1.0
D bi 100/300=15/30 *available through December 31, 2024:-19.03,25/50 *available through December 31, 2024:-14.18,30/60 *available on or after January 1, 2025:-9.70,50/100:-6.72,100/300:+0.00,250/500:+12.31,300/300:+12.68,500/500:+23.13
D pd 100=5:-15.34,10:-12.14,15:-9.27,25:-7.99,50:-2.88,100:+0.00,250:+2.56,300:+3.83
D coll_deductible 500=100:+19.87,200:+14.91,250:+12.42,500:+0.00,1000:-9.94,2000:-29.81,2500:-39.75
D comp_deductible 500=25:+25.74,50:+17.88,100:+11.00,200:+6.09,250:+2.75,500:+0.00,1000:-2.75,2000:-5.70,2500:-8.06
C travelers|Travelers Commercial Insurance Company|368.50|ci 327.21-415.00
L BI:149.00,PD:70.17,CP:15.50,CL:114.33,UMBI:19.50
F f0(100000/300000)=1.649,,,,
F f8(symbol AA)=1.009?,1.003?,,,
F f9(applied)=0.8
F f10(not applied)=1.0
F f3(100000)=,1.443,,,
F f6(500)=,,0.627,,
F f8(symbol 12)=,,0.941?,,
F f7(500)=,,,0.801,
F f8(symbol 17)=,,,1.013?,
F f11(30000/60000)=,,,,1.5
F f8(symbol 1)=,,,,1.0?
D pd 100=5:-21.50,10:-10.50,15:-6.67,25:-2.83,50:-0.67,100:+0.00,250:+0.50,300:+0.83,500:+1.17
present: Lead with the best option for this user — its price and a one-line reason — then a comparison sorted cheapest-first (Carrier · Monthly · 6-month total; a markdown table when your surface renders it) and the annual dollar spread between cheapest and priciest — that spread is the reason to compare. These are Foresee's estimates of what each carrier will charge; the assumptions and tighten_by blocks say how they were made and how to sharpen them. Foresee never takes payment: when the user settles on a carrier (or asks to buy), give that carrier's carrier_quote_url as a clickable link — the purchase completes on the carrier's own quoting portal.

Los códigos L de automóvil son las coberturas que la aseguradora cotiza (combinadas BIPD, o divididas BI/PD, más colisión, integral, UM, tarifas). No están normalizados en todo el panel.


Ejemplo: hogar

La misma persona de 41 años de arriba, asegurando una casa de estructura de madera construida en 1998 con un costo de reposición de $450,000:

{
  "profile": {
    "zip_code": "90066",
    "age": 41,
    "property": {"year_built": 1998, "construction_type": "frame", "replacement_cost": 450000}
  },
  "lines": {"home": {"coverage_a": 450000, "coverage_e": 300000, "coverage_f": 1000, "aop_deductible": 1000}},
  "carriers": ["mercury", "autoclub"]
}

sel refleja B/C/D como las proporciones de la Cobertura A que fueron cotizadas. El L de Mercury es una descomposición por riesgo (incendio, agua, incendio forestal, tarifas); AAA presenta una prima empaquetada en su lugar. Los hechos de la vivienda están en assumptions:/tighten_by: — aquí tipo de techo, clase de protección y un historial de pérdidas limpio.

Q CA home sel={"aop_deductible":1000,"coverage_a":450000,"coverage_b_pct":0.1,"coverage_c_pct":0.5,"coverage_d_pct":0.2,"coverage_e":300000,"coverage_f":1000}
format: Q state [line] sel=<coverage_selection priced, JSON> ; C=carrier|entity|monthly|ci lo-hi ; tighten_by=missing facts that most move the price — offer to re-quote with the user's answers ; L COV:$,.. = monthly $ per coverage ; F fid(selected)=v,v,.. = rating factor, one value per coverage in the L order, blank=not applied, single value=all coverages, suffix ?=estimated ~=derived none=exact ; D lever selected=option:±$/mo vs the carrier's monthly, others held at the selection (selected(asked X) = X is not an option; the price is at the selected rung shown) ; W = warning — e.g. an asked limit is not offered and the price covers the nearest offered rung instead
factors: f0=Deductible f1=Coverage A f2=Multiple Policy Discount (Automobile) f3=Personal Property Replacement Cost f4=Additional Replacement Cost f5=Ordinance or Law f6=Reduced Coverage Endorsement f7=Coverage E f8=Coverage F f9=Enhanced Home Package f10=Water Backup Limit f11=Other Perils Deductible (Table 5 relativity, additive) f12=Water Deductible (Table 5 relativity, additive) f13=Coverage A / Amount of Insurance Relativity (Table 5) f14=Package Discount (Exchange auto policy)
assumptions: [{"assumed":"Asphalt Shingle","field":"roof_type","high_impact":false},{"assumed":1,"field":"stories","high_impact":false},{"assumed":2,"field":"bathrooms","high_impact":false},{"assumed":1,"field":"families","high_impact":false},{"assumed":"Primary","field":"residency_type","high_impact":false},{"assumed":5,"field":"protection_class","high_impact":true},{"assumed":"Attached","field":"garage_type","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"home_losses","high_impact":true}]
tighten_by: protection_class,home_losses
C mercury|CALIFORNIA AUTOMOBILE INS CO|123.67
L P1_FIRE:34.69,P2_LIABILITY:6.39,P3_THEFT:6.40,P4_WIND:2.68,P5_WATER:61.56,P6_OTHER:3.57,P7_CAT_WIND:0.97,P10_CAT_WATER:0.04,P12_WILDFIRE:0.43,P13_FFEQ:1.36,WC_RESIDENCE_EMPLOYEES_910:0.67,FEE:3.75,FEE:1.16,FEE:0.01
F f0(1000)=0.95,,0.887,0.963,1.0,0.909,0.963,1.0,0.95,0.95,,,,
F f1(450000)=1.895,1.206,1.142,0.901,2.519,1.176,0.901,2.519,1.518,2.313,,,,
F f2(No)=1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,,,,
F f3(No)=1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,,,,
F f4(No)=1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,,,,
F f5(0.1)=1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,,,,
F f6(No)=1.0,,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,,,,
F f7(300000)=,1.5,,,,1.0,,,,,,,,
F f8(1000)=,1.5,,,,,,,,,,,,
F f9(No)=,,1.0,1.0,1.0,1.0,1.0,1.0,,,,,,
F f10(No)=,,,,1.0,,,1.0,,,,,,
D aop_deductible 1000=500:+13.38,1000:+0.00,1500:-5.38,2500:-21.45,3500:-26.58,5000:-37.01,10000:-48.28,25000:-63.01,50000:-72.51
D coverage_a 450000=30000:-90.60,65000:-82.94,95000:-76.38,130000:-68.81,165000:-61.24,195000:-54.76,230000:-47.27,265000:-39.79,295000:-33.39,330000:-25.82,365000:-18.34,395000:-11.94,430000:-4.37,445000:-1.17,450000:+0.00,455000:+1.01,465000:+3.20,500000:+10.86,570000:+26.34,630000:+39.88,700000:+56.03,770000:+72.77,830000:+87.49,900000:+105.41,970000:+124.09,2500000:+523.01,6000000:+1464.79
D coverage_e 300000=100000:-1.34,200000:-0.58,300000:+0.00,500000:+0.68,1000000:+4.04
D coverage_f 1000=1000:+0.00,2000:+0.17,5000:+0.42
C autoclub|Interinsurance Exchange of the Automobile Club|146.10
L Package:139.00,MedPayIL:0.00,LiabilityIL:2.08,BrushFire:0.00,FireFollowingEQ:3.42,FEE:1.60
F f11(1000)=0.393,,,,,
F f12(1000)=1.092,,,,,
F f13(450000)=1.485,,,,,
F f14(No)=1.0,,,,,
D aop_deductible 1000=500:+20.98,750:+7.59,1000:+0.00,1500:-11.45,2000:-16.93,3000:-21.06,5000:-25.36,10000:-28.73,15000:-51.90,20000:-63.44,25000:-71.53,30000:-77.34,50000:-90.49
D coverage_a 450000=60000:-120.65,90000:-115.51,110000:-110.96,130000:-105.66,150000:-99.59,170000:-92.85,190000:-86.53,220000:-76.17,250000:-64.54,280000:-54.09,320000:-40.02,350000:-29.15,360000:-26.54,400000:-16.00,440000:-3.62,450000:+0.00,460000:+2.45,480000:+9.44,550000:+32.95,650000:+77.19,750000:+98.00,850000:+116.62,950000:+147.71,2000000:+475.47,4000000:+1099.41,10000000:+2982.24
present: Lead with the best option for this user — its price and a one-line reason — then a comparison sorted cheapest-first (Carrier · Monthly · 6-month total; a markdown table when your surface renders it) and the annual dollar spread between cheapest and priciest — that spread is the reason to compare. These are Foresee's estimates of what each carrier will charge; the assumptions and tighten_by blocks say how they were made and how to sharpen them. Foresee never takes payment: when the user settles on a carrier (or asks to buy), give that carrier's carrier_quote_url as a clickable link — the purchase completes on the carrier's own quoting portal.

Ejemplo: inquilinos

Un hogar diferente en el mismo código postal: un inquilino de 27 años:

{
  "profile": {"zip_code": "90066", "dob": "1998-11-11"},
  "lines": {"renters": {"coverage_c": 30000, "coverage_e": 100000, "coverage_f": 1000, "deductible": 500}},
  "carriers": ["farmers", "usaa"]
}
Q CA renters sel={"coverage_c":30000,"coverage_e":100000,"coverage_f":1000,"deductible":500}
format: Q state [line] sel=<coverage_selection priced, JSON> ; C=carrier|entity|monthly|ci lo-hi ; tighten_by=missing facts that most move the price — offer to re-quote with the user's answers ; L COV:$,.. = monthly $ per coverage ; F fid(selected)=v,v,.. = rating factor, one value per coverage in the L order, blank=not applied, single value=all coverages, suffix ?=estimated ~=derived none=exact ; D lever selected=option:±$/mo vs the carrier's monthly, others held at the selection (selected(asked X) = X is not an option; the price is at the selected rung shown) ; W = warning — e.g. an asked limit is not offered and the price covers the nearest offered rung instead
factors: f0=Coverage C - Personal Property f1=Deductible f2=Coverage D - Loss of Use (% of C) f3=Additional Living Expense Term (months) f4=Contents Loss Settlement (ACV) f5=Enhanced Personal Property Coverage f6=Claims Free Discount f7=Multi-Policy Discount - Renter/auto f8=Multi-Policy Discount - Renter/life f9=Multi-Policy Discount - Renter/umbrella f10=Multi-Policy Discount - Renter/business f11=Multi-Policy Discount - Renter/boat f12=Multi-Policy Discount - Renter/motorhome f13=Multi-Policy Discount - Renter/recreational_vehicle f14=Multi-Policy Discount - Renter/cea f15=ZIP Code f16=Fireline Score f17=Experience Rating (points) f18=Coverage E - Personal Liability f19=Premises Rented to Others Solely Used as a Private Residence
assumptions: [{"assumed":2000,"field":"year_built","high_impact":false},{"assumed":5,"field":"protection_class","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"home_losses","high_impact":true}]
tighten_by: home_losses
not_priced: usaa:USAA sells only to military members, veterans, and their fam
C farmers|Fire Insurance Exchange|29.88
L PC1_PROPERTY:21.00,PC2_LIABILITY:8.17,FEE:0.42,FEE:0.30
F f0(30000)=1.087,,,
F f1(500)=1.0,,,
F f2(20)=1.0,,,
F f3(12)=1.0,,,
F f4(N)=1.0,,,
F f5(N)=1.0,,,
F f6(Y)=0.9,,,
F f7(N)=1.0,1.0,,
F f8(N)=1.0,1.0,,
F f9(N)=1.0,1.0,,
F f10(N)=1.0,1.0,,
F f11(N)=1.0,1.0,,
F f12(N)=1.0,1.0,,
F f13(N)=1.0,1.0,,
F f14(N)=1.0,1.0,,
F f15(90066)=1.423,,,
F f16(0)=1.0,,,
F f17(0)=1.0,,,
F f18(100000)=,1.0,,
F f19({})=,1.0,,
D deductible 500=100:+5.89,250:+1.85,500:+0.00,1000:-2.61,1500:-4.29,2500:-6.73
D coverage_c 30000=4000:-16.33,10000:-11.95,17000:-7.15,23000:-3.87,29000:-0.59,30000:+0.00,31000:+0.51,37000:+3.79,43000:+7.07,49000:+10.36,55000:+13.64,62000:+17.43,68000:+20.71,74000:+23.99,81000:+27.78,87000:+31.06,93000:+34.35,100000:+38.14,106000:+41.42,112000:+44.70,118000:+47.99,125000:+51.77,131000:+55.06,137000:+58.34,144000:+62.13,150000:+65.41
D coverage_e 100000=100000:+0.00,300000:+3.28,500000:+5.56,1000000:+10.69
present: Lead with the best option for this user — its price and a one-line reason — then a comparison sorted cheapest-first (Carrier · Monthly · 6-month total; a markdown table when your surface renders it) and the annual dollar spread between cheapest and priciest — that spread is the reason to compare. These are Foresee's estimates of what each carrier will charge; the assumptions and tighten_by blocks say how they were made and how to sharpen them. Foresee never takes payment: when the user settles on a carrier (or asks to buy), give that carrier's carrier_quote_url as a clickable link — the purchase completes on the carrier's own quoting portal.

Ejemplo: paquete de automóvil + inquilinos

El mismo inquilino de 27 años, ahora con un auto. "incidents": [] significa un historial limpio, por lo que las preguntas sobre el historial de conducción dejan assumptions: por completo.

{
  "profile": {
    "zip_code": "90066",
    "age": 27,
    "incidents": [],
    "prior_insurance": {"insured": true, "carrier": "GEICO", "since": "2019"},
    "auto": {"vehicles": [{"year": 2021, "make": "Honda", "model": "Civic", "annual_mileage": 9000}]},
    "property": {"year_built": 1978, "square_feet": 850}
  },
  "lines": {
    "auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500},
    "renters": {"coverage_c": 30000, "coverage_e": 100000, "coverage_f": 1000, "deductible": 500}
  },
  "carriers": ["farmers", "mercury"]
}

Dado que ahora proporcionamos historial, kilometraje e historial de seguro, los assumptions: de automóvil se reducen a cinco entradas y su tighten_by: a dos. Sin embargo, la sección de inquilinos declara sus propios valores de respaldo para la vivienda; Mercury cotiza solo automóvil — independiente, sin paquete. Farmers cotiza ambos, proporcionando un descuento del 20%, documentado en el B. El mismo resumen viaja como structuredContent como bundle: {farmers: {lines, bundle_total, standalone_total, savings}}.

Q CA auto sel={"bi":"100/300","coll_deductible":500,"comp_deductible":500,"pd":100}
format: Q state [line] sel=<coverage_selection priced, JSON> ; C=carrier|entity|monthly|ci lo-hi ; tighten_by=missing facts that most move the price — offer to re-quote with the user's answers ; L COV:$,.. = monthly $ per coverage ; F fid(selected)=v,v,.. = rating factor, one value per coverage in the L order, blank=not applied, single value=all coverages, suffix ?=estimated ~=derived none=exact ; D lever selected=option:±$/mo vs the carrier's monthly, others held at the selection (selected(asked X) = X is not an option; the price is at the selected rung shown) ; W = warning — e.g. an asked limit is not offered and the price covers the nearest offered rung instead ; B carrier|bundled $/mo|standalone $/mo|saves $/mo = this carrier priced the asked lines together; the per-line C prices ARE the bundled prices
factors: f0=BI Limit f1=Good Driver f2=Group Placement (Rule G) f3=PD Limit f4=UMBI Limit f5=Medical Payments Limit f6=Comprehensive Deductible f7=Collision Deductible f8=Business & Professional Group f9=UM Limit
assumptions: [{"assumed":"Male","field":"gender","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":null,"field":"homeowner","high_impact":false},{"assumed":null,"field":"occupation","high_impact":true},{"assumed":null,"field":"memberships","high_impact":true}]
tighten_by: occupation,memberships
C mercury|Mercury Insurance Company|289.94
L BI:66.80,PD:52.55,UMBI:17.38,MP:1.05,COMP:23.50,COLL:128.67
F f0(100/300)=1.51,,,,,
F f1(applied)=0.8
F f2(not applied)=1.0
F f3(100)=,1.38,,,,
F f4(30/60)=,,1.65,,,
F f5(1000)=,,,1.0,,
F f6(500)=,,,,0.89,
F f7(500)=,,,,,1.0
D bi 100/300=15/30 *available through December 31, 2024:-22.56,25/50 *available through December 31, 2024:-16.81,30/60 *available on or after January 1, 2025:-11.50,50/100:-7.96,100/300:+0.00,250/500:+14.60,300/300:+15.04,500/500:+27.43
D pd 100=5:-18.28,10:-14.47,15:-11.04,25:-9.52,50:-3.43,100:+0.00,250:+3.05,300:+4.57
D coll_deductible 500=100:+25.74,200:+19.30,250:+16.09,500:+0.00,1000:-12.87,2000:-38.60,2500:-51.47
D comp_deductible 500=25:+34.59,50:+24.03,100:+14.79,200:+8.19,250:+3.70,500:+0.00,1000:-3.70,2000:-7.66,2500:-10.83
C farmers|Farmers Insurance Exchange|398.00
L BI:111.83,PD:73.33,UMBI:28.33,UMPD:1.50,MED:13.33,COMP:34.00,COLL:133.17,FEE:2.50
F f0(100000/300000)=1.46,,,,,,,
F f1(applied)=0.8,0.8,0.8,0.8,0.8,0.8,0.8,
F f8(not applied)=1.0,1.0,1.0,1.0,1.0,1.0,1.0,
F f3(100000)=,1.2674,,,,,,
F f9(30000/60000)=,,1.2788,,,,,
F f6(500)=,,,,,1.0009,,
F f7(500)=,,,,,,1.1986,
D pd 100=15:-8.83,25:-5.00,50:-1.50,100:+0.00,250:+1.33,500:+3.17
D coll_deductible 500=250:+30.67,500:+0.00,750:-13.67,1000:-23.50,1500:-37.50,2500:-56.33,5000:-87.00
D comp_deductible 500=100:+23.67,250:+9.17,500:+0.00,750:-7.17,1000:-10.67,1500:-13.50,2500:-18.83,5000:-21.17
Q CA renters sel={"coverage_c":30000,"coverage_e":100000,"coverage_f":1000,"deductible":500}
format: Q state [line] sel=<coverage_selection priced, JSON> ; C=carrier|entity|monthly|ci lo-hi ; tighten_by=missing facts that most move the price — offer to re-quote with the user's answers ; L COV:$,.. = monthly $ per coverage ; F fid(selected)=v,v,.. = rating factor, one value per coverage in the L order, blank=not applied, single value=all coverages, suffix ?=estimated ~=derived none=exact ; D lever selected=option:±$/mo vs the carrier's monthly, others held at the selection (selected(asked X) = X is not an option; the price is at the selected rung shown) ; W = warning — e.g. an asked limit is not offered and the price covers the nearest offered rung instead ; B carrier|bundled $/mo|standalone $/mo|saves $/mo = this carrier priced the asked lines together; the per-line C prices ARE the bundled prices
factors: f0=Coverage C - Personal Property f1=Deductible f2=Coverage D - Loss of Use (% of C) f3=Additional Living Expense Term (months) f4=Contents Loss Settlement (ACV) f5=Enhanced Personal Property Coverage f6=Claims Free Discount f7=Multi-Policy Discount - Renter/auto f8=Multi-Policy Discount - Renter/life f9=Multi-Policy Discount - Renter/umbrella f10=Multi-Policy Discount - Renter/business f11=Multi-Policy Discount - Renter/boat f12=Multi-Policy Discount - Renter/motorhome f13=Multi-Policy Discount - Renter/recreational_vehicle f14=Multi-Policy Discount - Renter/cea f15=ZIP Code f16=Fireline Score f17=Experience Rating (points) f18=Coverage E - Personal Liability f19=Premises Rented to Others Solely Used as a Private Residence
assumptions: [{"assumed":5,"field":"protection_class","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"home_losses","high_impact":true}]
tighten_by: home_losses
C farmers|Fire Insurance Exchange|24.06
L PC1_PROPERTY:16.80,PC2_LIABILITY:6.54,FEE:0.42,FEE:0.30
F f0(30000)=1.087,,,
F f1(500)=1.0,,,
F f2(20)=1.0,,,
F f3(12)=1.0,,,
F f4(N)=1.0,,,
F f5(N)=1.0,,,
F f6(Y)=0.9,,,
F f7(Y - Farmers)=0.8,0.8,,
F f8(N)=1.0,1.0,,
F f9(N)=1.0,1.0,,
F f10(N)=1.0,1.0,,
F f11(N)=1.0,1.0,,
F f12(N)=1.0,1.0,,
F f13(N)=1.0,1.0,,
F f14(N)=1.0,1.0,,
F f15(90066)=1.423,,,
F f16(0)=1.0,,,
F f17(0)=1.0,,,
F f18(100000)=,1.0,,
F f19({})=,1.0,,
D deductible 500=100:+4.71,250:+1.48,500:+0.00,1000:-2.09,1500:-3.43,2500:-5.38
D coverage_c 30000=4000:-13.06,10000:-9.56,17000:-5.72,23000:-3.10,29000:-0.47,30000:+0.00,31000:+0.41,37000:+3.03,43000:+5.66,49000:+8.29,55000:+10.91,62000:+13.94,68000:+16.57,74000:+19.19,81000:+22.22,87000:+24.85,93000:+27.48,100000:+30.51,106000:+33.14,112000:+35.76,118000:+38.39,125000:+41.42,131000:+44.05,137000:+46.67,144000:+49.70,150000:+52.33
D coverage_e 100000=100000:+0.00,300000:+2.62,500000:+4.45,1000000:+8.55
B farmers|422.06|427.88|5.82
present: Lead with the best option for this user — its price and a one-line reason — then a comparison sorted cheapest-first (Carrier · Monthly · 6-month total; a markdown table when your surface renders it) and the annual dollar spread between cheapest and priciest — that spread is the reason to compare. A B row's per-line prices assume every bundled line is placed with that carrier; for a cross-carrier mix, compare standalone totals. These are Foresee's estimates of what each carrier will charge; the assumptions and tighten_by blocks say how they were made and how to sharpen them. Foresee never takes payment: when the user settles on a carrier (or asks to buy), give that carrier's carrier_quote_url as a clickable link — the purchase completes on the carrier's own quoting portal.

Herramienta 2: live_carrier_quotes

Propósito: confirmar las estimaciones de cotización en los sitios de cotización propios de las aseguradoras.

Esta herramienta es idempotente: la primera llamada comisiona a los agentes de uso de computadora; llamar nuevamente con los mismos argumentos recopila el progreso y los resultados de la primera llamada.

Un envío en vivo envía los datos reales del usuario a las aseguradoras, quienes pueden realizar una verificación de crédito suave. El consentimiento del usuario se recopila antes de llamar a la herramienta.

Foresee solo recopila cotizaciones; no toma pagos ni vincula seguros.

Parámetros de entrada

ParámetroTipoRequeridoDetalles
profileobjetosíMismos campos que quote_insurance — los hechos de calificación
linesobjetosíUna clave por línea a recorrer, cada valor es la solicitud de esa línea (ver abajo); varias claves comisionan recorridos combinados
user_authorizationstringsíLa afirmación del usuario en el chat, textual (p. ej. yes, go ahead)
identityobjetogeneralmenteLos datos del usuario.
carriersstring[]noRestringe el abanico; por defecto cada aseguradora con un recorrido validado para las líneas + estado

lines

LíneaAskPor qué
autoobligatorio — los mismos cuatro ejes que quote_insurance (bi, pd, coll_deductible, comp_deductible), como números realesLos límites y deducibles que los agentes preguntan en los formularios de las aseguradoras
homeninguno — {"home": null}El formulario propio de la aseguradora fija el precio de su paquete (monto de la vivienda según su estimación de costo de reposición); los agentes informan lo que eligió. Un ask proporcionado se rechaza de forma explícita, no se ignora en silencio
rentersobligatorio — coverage_c, coverage_e, coverage_f, deductible, como dólares realesLos agentes escriben los números del usuario en el formulario en lugar de aceptar los valores predeterminados; Foresee nunca los inventa

Varias claves a la vez comisionan recorridos combinados: cada aseguradora que cubre todas las líneas nombradas se procesa a través de su propio flujo de cotización de múltiples líneas e informa las primas por línea más su propio total combinado; una aseguradora que solo cubre algunas de las líneas se procesa solo para esas. Las reglas de ask por línea no cambian con la combinación.

identity

CampoTipoObligatorioDetalles
first_namestringsíNombre legal
last_namestringsíApellido legal
dobstring, YYYY-MM-DDsí
streetstringsíDirección (línea 1)
unitstringnoApartamento/unidad (línea 2)
citystringsí
zip_codestringnoSolo cuando difiere del perfil
emailstringsíLas aseguradoras envían la cotización aquí
phonestringno

Respuesta

CampoSignificado
statusin_progress / partial / complete — volver a llamar con los mismos argumentos para recopilar
agentsUna entrada por aseguradora (ver más abajo)
noteQué hacer a continuación, p. ej., el momento para volver a llamar, o que se devolvieron los resultados de una ejecución anterior
authorization_recordedEn el recibo: el registro de consentimiento se almacenó antes de que cualquier aseguradora viera el riesgo
skippedAseguradoras NO enviadas, cada una con el motivo (no_deterministic_walk, missing_facts con los hechos nombrados)
not_dispatchedAseguradoras con precio por motor que este envío no recorrerá, con el motivo (held: …, no_walk, not_walked, offline, not_sold) — una recomendación que el carril de recorrido no puede confirmar nunca desaparece en silencio
needsAnte un rechazo de missing_facts: hechos por aseguradora que recopilar del usuario, con rutas de esquema exactas — y, para campos de vocabulario cerrado, los values aceptados
assumptionsHechos menores de formulario no confirmados que los recorridos resolvieron como respuestas declaradas de no reclamo: la ruta del perfil (field) y el valor enviado (assumed) — transmite cada uno con los resultados
confirmationPor aseguradora: la estimación instantánea del motor junto a la prima impresa en la página — la estimación combinada cuando se recorrieron varias líneas
error / detailCada rechazo es un dict {"error", "detail"} estructurado

Cada entrada de agents:

CampoCuándoSignificado
carrier_key, carriersiempreClave del registro + nombre para mostrar
statussiemprein_progress / complete / failed
linessiempreLas líneas que cubre este recorrido — varias en un recorrido combinado
stage, eta_seconds_remainingen cursoDónde está el recorrido; tiempo restante frente al flujo típico de la aseguradora
quote.premiumcotizadoTextualmente como lo imprimió la página de la aseguradora ("$857.80") — nunca analizado, redondeado ni derivado
quote.term_monthscotizadoEl período que cubre la prima impresa
quote.premium_by_linecotizado, recorrido combinadoLa prima de cada línea como la imprimió la página, junto al total combinado en quote.premium
quote.breakdowncotizadoLos conceptos propios de la página, sus propias etiquetas
quote.boundcotizado, recorridos más recientesCobertura leída de la página con precio — lo que el formulario realmente vinculó, frente a lo que se pidió
quote.variantscotizadoPaquetes adicionales con precio que ofreció la página
quote.quote_numbercotizadoEl número de recuperación de la aseguradora, cuando la página muestra uno
quote.evidence_recordedcotizadoExiste evidencia de captura de pantalla en el servidor (los URI internos nunca viajan por la red)
declined: true + detailrechazadoLa aseguradora revisó los detalles y se negó a cotizar. Una respuesta, no un error — transmítela
detailfallidoLas propias palabras del recorrido sobre dónde y por qué se detuvo

Rechazos

Cada rechazo es un objeto {"error", "detail"} estructurado — no se envió nada a ninguna aseguradora salvo que la fila siguiente indique lo contrario.

CódigoCuándoQué hacer
profile_requiredHechos del hogar enviados en el nivel superior, sin envoltorio profileVolver a llamar con los hechos envueltos como se muestra en el example_arguments del rechazo
authorization_requiredLlamado sin la aprobación del usuarioExplica los hechos de consentimiento, obtén un sí, pásalo textualmente en user_authorization
bad_identityUn drivers_license_number con forma de SSNLos SSN nunca se recopilan; envía el número de licencia tal como aparece impreso en la licencia
bad_profileUn campo del perfil falla la validacióndetail nombra el campo
one_line_per_dispatchUn mapa lines vacíoNombra al menos una línea para recorrer
unknown_lineUna línea sin recorrido (p. ej., umbrella)detail enumera las líneas que conoce el envío en vivo
coverage_selection_requiredUn recorrido de auto o inquilinos sin límites y deducibles completosVolver a llamar con los números — los recorridos escriben valores reales, nunca valores predeterminados
bad_askUn recorrido de hogar con un ask de coberturaEnvía {"home": null} — el formulario propio de la aseguradora fija el precio de su paquete
missing_factsNingún formulario de la aseguradora solicitada puede completarse desde el perfilPide al usuario los hechos de needs[].fields[] (usando su values donde se sirva) y vuelve a llamar — ver más abajo
no_carriersNinguna aseguradora tiene un recorrido validado para esa línea + estadoRecurre a quote_insurance
launch_failedLos agentes no pudieron comenzarNada llegó a ninguna aseguradora — reintentar es seguro

Ejemplo: auto

Un hogar de Fresno que confirma el número propio de GEICO. El perfil contiene los hechos que el formulario de GEICO exige (propiedad, momento de compra, seguro anterior, edad del primer licenciamiento…); identity es el solicitante real; el ask son los mismos cuatro ejes que quote_insurance.

{
  "profile": {
    "zip_code": "93722",
    "dob": "1954-07-02",
    "gender": "Male",
    "marital_status": "Married",
    "education": "Bachelors",
    "employment_status": "Employed",
    "occupation": "Accountant or CPA",
    "home_ownership_status": "Own",
    "prior_insurance": {"insured": true, "limits": "not sure"},
    "auto": {
      "vehicles": [{
        "year": 2024, "make": "Ford", "model": "Maverick",
        "ownership": "Financed", "annual_mileage": 11000,
        "primary_use": "pleasure", "purchase_date": "2026-08"
      }],
      "drivers": [{
        "relation": "self", "age_first_licensed": 16,
        "years_licensed_outside_us": 0, "defensive_driving_course": true,
        "accidents": [], "violations": []
      }]
    }
  },
  "identity": {
    "first_name": "Cornelius", "last_name": "Beaumont", "dob": "1954-07-02",
    "street": "4381 W Spruce Ave", "city": "Fresno", "zip_code": "93722",
    "email": "cornelius.beaumont@example.com", "phone": "559-555-0164"
  },
  "lines": {"auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500}},
  "carriers": ["geico"],
  "user_authorization": "yes, go ahead and get me GEICO's real quote"
}
{
  "status": "in_progress",
  "authorization_recorded": true,
  "agents": [
    {
      "carrier_key": "geico",
      "carrier": "GEICO",
      "method": "browser_agent",
      "detail": "deterministic Foresee agent completing the carrier's own quote flow with the user's details",
      "eta_seconds": 480
    }
  ],
  "skipped": [],
  "note": "1 carrier(s) are being quoted live. Collect results by calling this tool again with the same arguments after a few minutes."
}

Volver a llamar con los mismos argumentos más tarde recopila el recorrido terminado. La prima es la cadena propia de la página; breakdown son las etiquetas propias de la página (GEICO imprimió dos paquetes lado a lado); term_months dice qué cubre el número — $857.80 por 6 meses, no por mes.

{
  "status": "complete",
  "agents": [
    {
      "carrier_key": "geico",
      "carrier": "GEICO",
      "method": "browser_agent",
      "status": "complete",
      "quote": {
        "premium": "$857.80",
        "currency": "USD",
        "term_months": 6,
        "quote_number": null,
        "breakdown": {
          "Less Coverage": "$857.80",
          "More Coverage": "$870.70"
        },
        "evidence_recorded": true
      }
    }
  ]
}