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?

  • Compara cotizaciones de seguro de auto y hogar — Solicita estimaciones instantáneas y detalladas de varias aseguradoras y opciones de cobertura en una sola llamada mediante quote_insurance.

  • Obtén confirmaciones en vivo de las aseguradoras — Solicita verificación de cotizaciones en tiempo real directamente desde los sitios de las aseguradoras, con tu consentimiento, usando live_carrier_quotes.

  • Cotiza cobertura de auto con límites específicos — Especifica lesiones corporales, daños a la propiedad y deducibles (p. ej., bi, coll_deductible) para ver costos mensuales detallados por aseguradora.

  • Estima pólizas de hogar o inquilinos — Proporciona detalles de la propiedad y montos de cobertura (p. ej., coverage_a, deductible) para recibir precios de vivienda, responsabilidad civil y propiedad personal.

  • Identifica datos faltantes que afectan los precios — Pregunta qué campos de perfil omitidos (p. ej., annual_mileage, prior_insurance) impactan más las cotizaciones, mediante tighten_by y assumptions en las respuestas.

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

Para agentes de IA: el índice del sitio está en /llms.txt y el texto completo en /llms-full.txt.

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 información personal identificable (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 a través de:

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 detalladas por partida 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ámetroTipoObligatorioDetalles
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[]noEl valor predeterminado es "todas las aseguradoras"
include_failuresbooleanonotrue

Perfil

Perfil principal

Hay una entrada principal profile, más bloques adicionales para seguros de automóvil y de hogar/inquilinos. Los únicos campos obligatorios 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, informado como assumptions — p. ej., auto.vehicles[].annual_mileage = 12000, con una entrada tighten_by que enumera 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.

CampoTipoObligatorio
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_policiesobjeto[] — {line, carrier}no

companion_policies enumera las pólizas que el hogar ya posee, cada una con la aseguradora que la emite — {"line": "home", "carrier": "State Farm"}. El descuento por múltiples pólizas de una aseguradora se aplica solo a una póliza que ella emite, por lo que una póliza existente sin aseguradora no obtiene ninguno, y la cotización solicita la aseguradora bajo tighten_by.

Perfil de seguro de automóvil

CampoTipoObligatorio
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 entradas con fecha — {"on": "2025-01", "kind": "speeding"}, {"on": "2023-06-15", "at_fault": true} — donde una lista vacía es un historial limpio. Una entrada sin on (o una infracción sin kind) se rechaza, indicando su ruta.

Perfil de seguro de hogar e inquilinos

CampoTipoObligatorio
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 se pasan son las que se cotizan.

Automóvil

OpciónTipoObligatorioQué 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/insuficientemente asegurado: 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ónTipoObligatorioQué 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 por otros 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 se cotizaron.

Inquilinos

OpciónTipoObligatorioQué 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

Un resultado cotizado llega completamente en structuredContent; content está vacío. El detalle de la calificación es el campo dense: texto de máquina compacto, una sección por línea, mostrado en los bloques response a continuación. Junto a él están los campos principales por línea bajo by_line (aseguradoras con monthly, confidence_interval, carrier_quote_url, warnings, rated_vs_asked; además de assumptions, tighten_by, failures), y presentation (cómo presentar los precios), bundle y skipped en la parte superior. Los rechazos (profile_required, coverage_required) son JSON simple sin dense.

PrefijoFrecuenciaSignificado
Quna vez por líneaLo que se cotizó: estado, línea de negocio, selección de cobertura
assumptions:una vez por líneaSupuestos hechos por Foresee; high_impact: true significa que este campo mueve materialmente la estimación de la cotización
tighten_by:una vez por líneaLas rutas de perfil de los 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 necesarioUna nota sobre la aseguradora anterior, p. ej., sin página de cotización en línea
Luna vez por aseguradoraCosto mensual por cobertura, bajo códigos que significan la misma cobertura en cada aseguradora (BI, PD, UMBI, MEDPAY, COMP, COLL…); A+B es una prima que cubre ambas, FEE una tarifa fija
Dpor aseguradoraEscaleras de precios: para cada palanca de cobertura, cada peldaño ofrecido como ±$/mes frente a la cotización mensual, todo lo demás mantenido en la selección. +0.00 marca el peldaño seleccionado; (asked X) = X no se ofrece y el precio se sitúa en el peldaño 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 grande assumptions: a continuación es causado por la solicitud delgada anterior, y tighten_by: enumera las nueve 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}
assumptions: [{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":12000,"field":"auto.vehicles[].annual_mileage","high_impact":true},{"assumed":"Commute","field":"auto.vehicles[].primary_use","high_impact":true},{"assumed":15,"field":"auto.vehicles[].one_way_miles","high_impact":true},{"assumed":5,"field":"auto.vehicles[].commute_days","high_impact":false},{"assumed":16,"field":"auto.drivers[].age_first_licensed","high_impact":true,"note":"CA Good Driver discount (at least 20% off every CA price here, INS §1861.025) is granted on this assumption: it rates the applicant as licensed 3+ years. If they were first licensed less than 3 years ago, these prices are understated — send auto.drivers[].age_first_licensed (or date_first_licensed / years_licensed on the same driver) and re-quote."},{"assumed":[],"field":"auto.drivers[].accidents","high_impact":true},{"assumed":[],"field":"auto.drivers[].violations","high_impact":true},{"assumed":false,"field":"prior_insurance.insured","high_impact":true},{"assumed":null,"field":"home_ownership_status","high_impact":false},{"assumed":null,"field":"occupation","high_impact":true},{"assumed":null,"field":"memberships","high_impact":true}]
tighten_by: auto.vehicles[].annual_mileage,auto.vehicles[].primary_use,auto.vehicles[].one_way_miles,auto.drivers[].age_first_licensed,auto.drivers[].accidents,auto.drivers[].violations,prior_insurance.insured,occupation,memberships
not_priced: usaa:USAA: military families only — set military_affiliation to quote.
C mercury|Mercury Insurance Company|235.11
L BI:56.33,PD:44.10,UMBI:16.85,MEDPAY:0.97,COMP:17.49,COLL:99.38
D bi 100/300=30/60:-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=15:-7.99,25:-6.39,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,COMP:15.50,COLL:114.33,UMBI:19.50
D bi 100/300=15/30:-61.67,25/50:-39.33,30/60:-32.83,50/100:-13.50,100/300:+0.00,250/500:+12.50,500/500:+16.67,1000/1000:+52.67
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
D coll_deductible 500=100:+22.17,250:+13.17,500:+0.00,1000:-19.33,1500:-34.50,2500:-56.50,5000:-86.00
D comp_deductible 500=0:+11.17,50:+9.67,100:+8.00,250:+2.17,500:+0.00,1000:-1.67,1500:-3.67,2500:-6.50,5000:-10.50

Ejemplo: hogar

La misma persona de 41 años que arriba, asegurando una casa de estructura 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 se cotizaron. El L de cada aseguradora es su prima base (HO_BASE) más tarifas. 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}
assumptions: [{"assumed":"Asphalt Shingle","field":"property.roof_type","high_impact":false},{"assumed":1,"field":"property.stories","high_impact":false},{"assumed":2,"field":"property.bathrooms","high_impact":false},{"assumed":1,"field":"property.units","high_impact":false},{"assumed":"owner occupied","field":"property.occupancy","high_impact":false},{"assumed":5,"field":"property.protection_class","high_impact":true},{"assumed":"Attached","field":"property.garage","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"property.losses","high_impact":true}]
tighten_by: property.protection_class,property.losses
C mercury|CALIFORNIA AUTOMOBILE INS CO|123.67
L HO_BASE:118.76,FEE:3.75,FEE:1.16,FEE:0.01
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 HO_BASE:144.50,FEE:1.60
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

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}
assumptions: [{"assumed":2000,"field":"property.year_built","high_impact":false},{"assumed":5,"field":"property.protection_class","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"property.losses","high_impact":true}]
tighten_by: property.losses
not_priced: usaa:USAA: military families only — set military_affiliation to quote.
C farmers|Fire Insurance Exchange|29.88
L RENTERS_BASE:29.17,FEE:0.42,FEE:0.30
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

Ejemplo: automóvil + inquilinos

El mismo inquilino de 27 años, ahora con un auto. Las listas vacías violations y accidents significan un historial limpio, por lo que las preguntas sobre el historial de conducción dejan assumptions: por completo.

{
  "profile": {
    "zip_code": "90066",
    "age": 27,
    "prior_insurance": {"insured": true, "carrier": "GEICO", "since": "2019"},
    "auto": {"drivers": [{"violations": [], "accidents": []}],
             "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 ocho entradas y sus tighten_by: a cinco. La sección de inquilinos declara sus propios valores de respaldo para la vivienda. Mercury cotiza solo automóvil; Farmers cotiza ambas líneas.

Q CA auto sel={"bi":"100/300","coll_deductible":500,"comp_deductible":500,"pd":100}
assumptions: [{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":"Commute","field":"auto.vehicles[].primary_use","high_impact":true},{"assumed":15,"field":"auto.vehicles[].one_way_miles","high_impact":true},{"assumed":5,"field":"auto.vehicles[].commute_days","high_impact":false},{"assumed":16,"field":"auto.drivers[].age_first_licensed","high_impact":true,"note":"CA Good Driver discount (at least 20% off every CA price here, INS §1861.025) is granted on this assumption: it rates the applicant as licensed 3+ years. If they were first licensed less than 3 years ago, these prices are understated — send auto.drivers[].age_first_licensed (or date_first_licensed / years_licensed on the same driver) and re-quote."},{"assumed":null,"field":"home_ownership_status","high_impact":false},{"assumed":null,"field":"occupation","high_impact":true},{"assumed":null,"field":"memberships","high_impact":true}]
tighten_by: auto.vehicles[].primary_use,auto.vehicles[].one_way_miles,auto.drivers[].age_first_licensed,occupation,memberships
C mercury|Mercury Insurance Company|289.94
L BI:66.80,PD:52.55,UMBI:17.38,MEDPAY:1.05,COMP:23.50,COLL:128.67
D bi 100/300=30/60:-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=15:-9.52,25:-7.61,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,MEDPAY:13.33,COMP:34.00,COLL:133.17,FEE:2.50
D bi 100/300=30/60:-23.83,50/100:-14.67,100/300:+0.00,250/500:+9.83,500/500:+23.83,500/1000:+29.83
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}
assumptions: [{"assumed":5,"field":"property.protection_class","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"property.losses","high_impact":true}]
tighten_by: property.losses
not_priced: mercury:no filed-rate renters program served in CA yet
C farmers|Fire Insurance Exchange|29.88
L RENTERS_BASE:29.17,FEE:0.42,FEE:0.30
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

Herramienta 2: live_carrier_quotes

Propósito: confirmar 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 detalles 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ámetroTipoObligatorioDetalles
profileobjetosíMismos campos que quote_insurance — los hechos de la calificación
linesobjetosíUna clave por línea a recorrer, cada valor es la solicitud de esa línea (ver abajo); varias claves encargan recorridos combinados
user_authorizationcadenasíLa afirmación del usuario en el chat, textual (p. ej. yes, go ahead)
identityobjetonormalmenteLos datos del usuario.
carrierscadena[]noRestringe el abanico; por defecto, todas las aseguradoras con un recorrido validado para las líneas + estado

lines

LíneaSolicitudPor qué
autoobligatoria — los mismos cuatro ejes que quote_insurance (bi, pd, coll_deductible, comp_deductible), como números realesLos límites y deducibles que los agentes piden en los formularios de las aseguradoras
homeninguna — {"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ó. Una solicitud proporcionada se rechaza en voz alta, no se ignora en silencio
rentersobligatoria — 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 encargan recorridos combinados: cada aseguradora que cubre todas las líneas nombradas se guía por su propio flujo de cotización multilínea e informa las primas por línea más su total de paquete propio; una aseguradora que cubre solo algunas líneas se recorre solo para esas. Las reglas de solicitud por línea no cambian con la combinación.

identity

CampoTipoObligatorioDetalles
first_namecadenasíNombre legal
last_namecadenasíApellido legal
dobcadena, YYYY-MM-DDsí
streetcadenasíDirección (línea 1)
unitcadenanoApartamento/unidad (línea 2)
citycadenasí
zip_codecadenanoSolo cuando difiere del perfil
emailcadenasíLas aseguradoras envían la cotización aquí
phonecadenano

Respuesta

CampoSignificado
statusin_progress / partial / complete — volver a llamar con los mismos argumentos para recopilar
agentsUna entrada por aseguradora (ver abajo)
noteQué hacer a continuación, p. ej. el momento de 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 porqué (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 no afirmados del formulario que los recorridos resolvieron a respuestas declaradas de no reclamo: la ruta del perfil (field) y el valor enviado (assumed) — transmite cada uno con los resultados
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.premiumcotizadoTextual 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 del paquete en quote.premium
quote.breakdowncotizadoLas partidas propias de la página, con sus propias etiquetas
quote.boundcotizado, recorridos más nuevosCobertura leída de la página con precio — lo que el formulario realmente fijó, frente a lo solicitado
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 — nada se envió 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 textual 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 está 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 a recorrer
unknown_lineUna línea sin recorrido (p. ej. umbrella)detail enumera las líneas que el envío en vivo conoce
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 predeterminados
bad_askUn recorrido de hogar con una solicitud 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 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 confirmando 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; la solicitud 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
      }
    }
  ]
}