Foresee

resmi

Foresee memungkinkan asisten AI untuk membandingkan asuransi rumah dan mobil di setiap penyedia serta opsi pertanggungan, dengan menyediakan perkiraan kutipan yang instan, akurat, dan terperinci.

Apa yang bisa Anda lakukan dengan Foresee MCP?

  • Bandingkan kutipan asuransi mobil — Minta estimasi instan dan terperinci antar penyedia menggunakan quote_insurance dengan detail kendaraan dan cakupan Anda.
  • Harga cakupan rumah atau sewa — Dapatkan kutipan rumah atau sewa yang terperinci dengan menentukan detail properti dan batas cakupan seperti coverage_a atau coverage_c.
  • Jelajahi trade-off cakupan — Lihat bagaimana perubahan deductible atau batas memengaruhi premi bulanan melalui tangga harga dalam respons.
  • Identifikasi faktor yang hilang — Tanyakan detail yang dihilangkan (seperti annual_mileage atau catatan mengemudi) mana yang paling memengaruhi kutipan Anda, berdasarkan saran tighten_by.
  • Konfirmasi estimasi dengan penyedia — Gunakan live_carrier_quotes di server agen untuk memverifikasi estimasi kutipan langsung dengan penyedia asuransi.

Server MCP Terhosting

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

Terpasang ke Claude Code, Codex, Cursor, dan lainnya

Dokumentasi

Docs

Foresee memungkinkan asisten AI untuk membandingkan asuransi mobil dan rumah di setiap perusahaan asuransi dan opsi perlindungan, dengan menyediakan estimasi kutipan yang instan, akurat, dan terperinci.

Menggunakan Foresee

Foresee menghosting dua server MCP:

Pengguna yang menginginkan estimasi kutipan sederhana dan mudah tanpa menyerahkan PII mereka menggunakan:

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

Pengguna yang juga ingin mengonfirmasi estimasi kutipan langsung dengan perusahaan asuransi dapat mengirimkan agen computer use Foresee melalui:

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

Tidak ada server yang memerlukan autentikasi.

Tools

Foresee menerbitkan dua tool di server MCP:

ToolTujuanagents.mcp.
quote_insuranceMenghasilkan estimasi kutipan yang instan, akurat, dan terperinci✅✅
live_carrier_quotesMengonfirmasi estimasi kutipan dengan perusahaan asuransi✅❌

Tool 1: quote_insurance

Tujuan: menghasilkan estimasi kutipan terperinci secara instan dari perusahaan asuransi yang didukung Foresee, di seluruh lini dan negara bagian yang saat ini dilayani Foresee, dalam satu panggilan.

Parameter Input

ParameterTipeWajibDetail
profileobjectyalihat Profil
linesobjectyaKunci adalah lini yang akan dihargai (auto, home, renters); nilai adalah opsi perlindungan untuk lini tersebut (lihat Opsi perlindungan)
carriersstring[]tidakDefault ke "semua perusahaan asuransi"
include_partialbooleantidakfalse
include_failuresbooleantidaktrue

Profil

Profil Inti

Ada input inti profile, plus blok tambahan untuk asuransi mobil dan rumah/sewa. Satu-satunya bidang yang wajib adalah usia (atau dob), kode POS, dan (untuk asuransi mobil) detail kendaraan.

Bidang opsional yang dihilangkan menjadi asumsi yang dinyatakan: kami memilih pengganti yang konservatif, dilaporkan kembali sebagai assumptions — misalnya annual_mileage = 12000, dengan entri tighten_by yang mencantumkan asumsi yang paling memengaruhi harga. prior_insurance berarti asuransi untuk lini yang sama; companion_policies berarti asuransi untuk lini yang berbeda

BidangTipeWajib
zip_codestringya
ageintegerya
dobstring, YYYY-MM-DDalternatif yang diterima untuk age
citystringtidak
genderstringtidak
marital_statusstringtidak
educationstringtidak
employment_statusstringtidak
occupationstringtidak
credit_rangestringtidak
home_ownership_statusstringtidak
residence_typestringtidak
military_affiliationstringtidak
membershipsstring[]tidak
effective_datestringtidak
prior_insuranceobjecttidak
companion_policiesstring[]tidak

Profil Asuransi Mobil

BidangTipeWajib
auto.vehicles[].yearintegerya
auto.vehicles[].makestringya
auto.vehicles[].modelstringya
auto.vehicles[].ownershipstringtidak
auto.vehicles[].annual_mileageintegertidak
auto.vehicles[].primary_usestringtidak
auto.vehicles[].garaging_zipstringtidak
auto.drivers[].relationstringtidak (self untuk yang pertama)
auto.drivers[].dobstringtidak
auto.drivers[].years_licensedintegertidak
auto.drivers[].accidentsobject[]tidak
auto.drivers[].violationsobject[]tidak
auto.drivers[].sr22_requiredbooleantidak

accidents dan violations adalah daftar objek terstruktur, di mana daftar kosong berarti catatan bersih.

Profil Asuransi Rumah & Sewa

BidangTipeWajib
property.year_builtintegertidak
property.construction_typestringtidak
property.roof_typestringtidak
property.square_feetintegertidak
property.protection_classstringtidak
property.replacement_costintegertidak
property.devicesstring[]tidak
property.lossesobject[]tidak

Opsi perlindungan

Setiap kunci di lines mengambil opsi perlindungan untuk lini tersebut. Tidak ada yang dihargai pada default server: opsi yang Anda berikan adalah yang dihargai.

Mobil

OpsiTipeWajibApa yang dicakup
bistringyaKewajiban cedera tubuh: cedera yang Anda sebabkan kepada orang lain. Batas per-orang/per-kejadian dalam ribuan dolar, mis. "100/300"
pdintegeryaKewajiban kerusakan properti: kerusakan yang Anda sebabkan pada mobil dan properti orang lain. Batas dalam ribuan dolar, mis. 100
coll_deductibleintegeryaTabrakan: kerusakan pada mobil Anda sendiri akibat kecelakaan, siapa pun yang bersalah. Deductible yang Anda bayar per klaim, dalam dolar
comp_deductibleintegeryaKomprehensif: kerusakan pada mobil Anda sendiri akibat hal selain kecelakaan — pencurian, kebakaran, hujan es, vandalisme, menabrak hewan. Deductible yang Anda bayar per klaim, dalam dolar
umstringtidakPengendara tanpa asuransi/kurang asuransi: cedera Anda ketika pengemudi yang bersalah tidak memiliki atau memiliki terlalu sedikit asuransi. Batas per-orang/per-kejadian dalam ribuan dolar, mis. "100/300"
medpayintegertidakPembayaran medis: tagihan medis untuk Anda dan penumpang Anda, siapa pun yang bersalah. Batas dalam dolar, mis. 5000

Rumah

OpsiTipeWajibApa yang dicakup
coverage_aintegeryaHunian: membangun kembali rumah itu sendiri. Batas dalam dolar, biasanya biaya penggantian
coverage_eintegeryaKewajiban pribadi: cedera atau kerusakan yang Anda bertanggung jawab secara hukum, di dalam atau di luar properti. Batas dalam dolar
coverage_fintegeryaPembayaran medis kepada orang lain: tagihan medis tamu setelah cedera di properti Anda, siapa pun yang bersalah. Batas dalam dolar
aop_deductibleintegeryaDeductible semua risiko lain: apa yang Anda bayar per klaim untuk segala hal kecuali risiko dengan deductible sendiri (seperti gempa bumi). Dalam dolar

Perlindungan B (struktur lain, seperti garasi terpisah atau pagar), C (properti pribadi — barang-barang Anda), dan D (kehilangan penggunaan — biaya hidup sementara rumah tidak dapat dihuni) tidak diminta dalam dolar — mereka kembali di sel sebagai rasio dari Perlindungan A yang dihargai.

Sewa

OpsiTipeWajibApa yang dicakup
coverage_cintegeryaProperti pribadi: barang-barang Anda. Batas dalam dolar
coverage_eintegeryaKewajiban pribadi: cedera atau kerusakan yang Anda bertanggung jawab secara hukum. Batas dalam dolar
coverage_fintegeryaPembayaran medis kepada orang lain: tagihan medis tamu setelah cedera di rumah Anda, siapa pun yang bersalah. Batas dalam dolar
deductibleintegeryaApa yang Anda bayar per klaim sebelum perlindungan dimulai. Dalam dolar
coverage_dintegertidakKehilangan penggunaan: biaya hidup tambahan jika Anda harus pindah sementara tempat diperbaiki. Batas dalam dolar

Format respons

AwalanFrekuensiArti
Qsekali per liniApa yang dihargai: negara bagian, lini bisnis, pilihan perlindungan
format: factors:sekali per liniLegenda yang menjelaskan dirinya sendiri untuk semua di bawahnya
assumptions:sekali per liniAsumsi yang dibuat oleh Foresee; high_impact: true berarti bidang ini secara material mengubah estimasi kutipan
tighten_by:sekali per liniAsumsi/fakta yang hilang yang paling memengaruhi harga
not_priced:saat berlakuPerusahaan asuransi yang dikecualikan, dengan alasannya
Csekali per perusahaan asuransiPerusahaan asuransi, entitas penulis, premi bulanan (estimasi titik dan interval kepercayaan)
Wsesuai kebutuhanPeringatan yang dilampirkan pada perusahaan asuransi di atas — mis. "Tidak menulis BI / PD minimum negara bagian"
Lsekali per perusahaan asuransiBiaya bulanan per perlindungan atau risiko
Fbanyak per perusahaan asuransiSatu faktor penilaian per lini, dinamai dalam legenda factors:. Nilai sejajar satu-ke-satu dengan kode L: kosong = tidak menyentuh perlindungan itu, nilai tunggal = berlaku untuk setiap perlindungan. Tanda kurung adalah baris tempat profil mendarat (anak tangga seperti 100/300, fakta seperti 90066, atau applied / not applied). Akhiran nilai: tidak ada = tepat, ~ = diturunkan, ? = diperkirakan
Dper perusahaan asuransiTangga harga: untuk setiap tuas perlindungan, setiap anak tangga yang ditawarkan sebagai ±$/bulan terhadap bulanan yang dikutip, semua hal lain dipertahankan pada pilihan. +0.00 menandai anak tangga yang dipilih; (asked X) = X tidak ditawarkan dan harga berada di anak tangga terdekat yang ditawarkan. Harga ulang dari D; jangan panggil ulang

Contoh: mobil

Seorang berusia 41 tahun di kode POS 90066 dengan Honda Civic 2021.

Mercury menunjukkan sel perusahaan asuransi biasa; Travelers menilai melalui dua entitas penulis yang mungkin, sehingga selnya membawa segmen ci (rentang penempatan). USAA masuk di not_priced dengan alasan perusahaan asuransi itu sendiri.

{
  "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"]
}

Setiap bidang profil yang dihilangkan kembali sebagai asumsi yang dinyatakan — blok assumptions: yang tebal di bawah disebabkan oleh permintaan tipis di atas, dan tighten_by: mencantumkan tujuh jawaban yang paling memengaruhi harga. Mercury menunjukkan sel perusahaan asuransi biasa; Travelers menilai melalui dua entitas penulis yang mungkin, sehingga selnya membawa segmen ci (rentang penempatan). USAA masuk di not_priced dengan alasan perusahaan asuransi itu sendiri.

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.

Kode L mobil adalah perlindungan yang dihargai perusahaan asuransi (BIPD gabungan, atau BI/PD terpisah, plus tabrakan, komprehensif, UM, biaya). Mereka tidak dinormalisasi di seluruh panel.


Contoh: rumah

Orang yang sama berusia 41 tahun seperti di atas, mengasuransikan rumah rangka yang dibangun tahun 1998 dengan biaya penggantian $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 menggema B/C/D sebagai rasio dari Perlindungan A yang dihargai. L Mercury adalah dekomposisi risiko (kebakaran, air, kebakaran hutan, biaya); AAA mengajukan premi paket sebagai gantinya. Fakta hunian ada di assumptions:/tighten_by: — di sini jenis atap, kelas perlindungan, dan riwayat klaim bersih.

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.

Contoh: sewa

Rumah tangga berbeda di kode POS yang sama: penyewa berusia 27 tahun:

{
  "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.

Contoh: paket mobil + sewa

Penyewa berusia 27 tahun yang sama, sekarang dengan mobil. "incidents": [] berarti catatan bersih, sehingga pertanyaan riwayat mengemudi meninggalkan assumptions: sepenuhnya.

{
  "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"]
}

Karena kami sekarang menyediakan riwayat, jarak tempuh, dan riwayat asuransi, assumptions: mobil menyusut menjadi lima entri dan tighten_by:-nya menjadi dua. Namun, bagian sewa menyatakan pengganti huniannya sendiri; Mercury menghargai mobil saja — berdiri sendiri, tanpa paket. Farmers menghargai keduanya, memberikan diskon 20%, didokumentasikan di B. Ringkasan yang sama mengendarai structuredContent sebagai 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.

Tool 2: live_carrier_quotes

Tujuan: mengonfirmasi estimasi kutipan di situs kutipan perusahaan asuransi itu sendiri.

Tool ini idempoten: panggilan pertama menugaskan agen computer use; memanggil lagi dengan argumen yang sama mengumpulkan kemajuan dan hasil dari panggilan pertama.

Pengiriman langsung mengirimkan detail nyata pengguna ke perusahaan asuransi, yang mungkin melakukan pemeriksaan kredit lunak. Persetujuan pengguna dikumpulkan sebelum tool dipanggil.

Foresee hanya mengumpulkan kutipan; tidak menerima pembayaran atau mengikat asuransi.

Parameter Input

ParameterTipeWajibDetail
profileobjectyaBidang yang sama dengan quote_insurance — fakta penilaian
linesobjectyaSatu kunci per lini untuk dijalankan, setiap nilai adalah permintaan lini tersebut (lihat di bawah); beberapa kunci menugaskan jalan paket
user_authorizationstringyaAfirmasi pengguna dalam obrolan, kata demi kata (mis. yes, go ahead)
identityobjectbiasanyaDetail pengguna.
carriersstring[]tidakBatasi fan; default ke setiap perusahaan asuransi dengan jalan tervalidasi untuk lini + negara bagian

lines

BarisPertanyaan (Ask)Alasan
autowajib — empat sumbu yang sama seperti quote_insurance (bi, pd, coll_deductible, comp_deductible), sebagai angka aktualBatas dan deductible yang diminta agen dari formulir perusahaan asuransi
hometidak ada — {"home": null}Formulir perusahaan asuransi sendiri yang menetapkan harga paketnya (jumlah dwelling dari estimasi biaya penggantiannya); agen melaporkan apa yang dipilih. Pertanyaan yang diberikan akan ditolak dengan tegas, bukan diabaikan diam-diam
renterswajib — coverage_c, coverage_e, coverage_f, deductible, sebagai dolar aktualAgen mengetik angka pengguna pada formulir alih-alih menerima nilai bawaan; Foresee tidak pernah menciptakannya

Beberapa kunci sekaligus memicu walk yang digabungkan: setiap perusahaan asuransi yang menulis semua jalur yang disebutkan diarahkan melalui alur kutipan multi-jalur miliknya sendiri dan melaporkan premi per jalur plus total bundelnya sendiri; perusahaan asuransi yang hanya menulis sebagian jalur akan diarahkan untuk jalur tersebut saja. Aturan pertanyaan per jalur tidak berubah karena penggabungan.

identity

BidangTipeWajibDetail
first_namestringyaNama depan resmi
last_namestringyaNama belakang resmi
dobstring, YYYY-MM-DDya
streetstringyaAlamat jalan (baris 1)
unitstringtidakApartemen/unit (baris 2)
citystringya
zip_codestringtidakHanya jika berbeda dari profil
emailstringyaPerusahaan asuransi mengirim kutipan ke sini
phonestringtidak

Respons

BidangMakna
statusin_progress / partial / complete — panggil ulang dengan argumen yang sama untuk mengumpulkan
agentsSatu entri per perusahaan asuransi (lihat di bawah)
noteApa yang harus dilakukan selanjutnya, misalnya waktu panggil ulang, atau bahwa hasil dari proses sebelumnya telah dikembalikan
authorization_recordedPada tanda terima: catatan persetujuan disimpan sebelum perusahaan asuransi mana pun melihat risiko
skippedPerusahaan asuransi yang TIDAK dikirim, masing-masing dengan alasannya (no_deterministic_walk, missing_facts dengan fakta yang disebutkan)
not_dispatchedPerusahaan asuransi yang dihargai oleh mesin yang tidak akan diwalk pada pengiriman ini, beserta alasannya (held: …, no_walk, not_walked, offline, not_sold) — rekomendasi yang tidak dapat dikonfirmasi oleh jalur walk tidak pernah hilang diam-diam
needsPada penolakan missing_facts: fakta per perusahaan asuransi yang perlu dikumpulkan dari pengguna, dengan jalur skema yang tepat — dan, untuk bidang dengan kosakata tertutup, values yang diterima
assumptionsFakta formulir minor yang tidak ditegaskan yang oleh walk diselesaikan menjadi jawaban tidak-klaim yang dinyatakan: jalur profil (field) dan nilai yang dikirimkan (assumed) — sampaikan setiap satu dengan hasilnya
confirmationPer perusahaan asuransi: estimasi mesin instan di samping premi yang dicetak halaman — estimasi bundel saat beberapa jalur diwalk
error / detailSetiap penolakan adalah dict {"error", "detail"} terstruktur

Setiap entri agents:

BidangKapanMakna
carrier_key, carrierselaluKunci daftar + nama tampilan
statusselaluin_progress / complete / failed
linesselaluJalur yang dicakup walk ini — beberapa pada walk yang digabungkan
stage, eta_seconds_remainingsedang berlangsungDi mana walk berada; sisa waktu terhadap alur khas perusahaan asuransi
quote.premiumdikutipVerbatim sebagaimana dicetak halaman perusahaan asuransi ("$857.80") — tidak pernah diurai, dibulatkan, atau diturunkan
quote.term_monthsdikutipJangka waktu yang dicakup oleh premi yang dicetak
quote.premium_by_linedikutip, walk digabungkanPremi setiap jalur sebagaimana dicetak halaman, di samping total bundel di quote.premium
quote.breakdowndikutipItem baris halaman itu sendiri, labelnya sendiri
quote.bounddikutip, walk lebih baruCakupan yang dibaca dari halaman yang dihargai — apa yang sebenarnya diikat formulir, vs apa yang diminta
quote.variantsdikutipPaket berharga tambahan yang ditawarkan halaman
quote.quote_numberdikutipNomor pengambilan perusahaan asuransi, saat halaman menampilkannya
quote.evidence_recordeddikutipBukti tangkapan layar ada di sisi server (URI internal tidak pernah dikirim melalui kabel)
declined: true + detailditolakPerusahaan asuransi meninjau detail dan menolak untuk mengutip. Sebuah jawaban, bukan kesalahan — sampaikan
detailgagalKata-kata walk sendiri untuk di mana dan mengapa berhenti

Penolakan

Setiap penolakan adalah objek {"error", "detail"} terstruktur — tidak ada yang dikirimkan ke perusahaan asuransi mana pun kecuali baris di bawah menyatakan sebaliknya.

KodeKapanApa yang harus dilakukan
profile_requiredFakta rumah tangga dikirim di tingkat atas, tanpa pembungkus profilePanggil ulang dengan fakta yang dibungkus seperti yang ditunjukkan di example_arguments penolakan
authorization_requiredDipanggil tanpa persetujuan penggunaJelaskan fakta persetujuan, dapatkan ya, teruskan secara verbatim di user_authorization
bad_identitydrivers_license_number berbentuk SSNSSN tidak pernah dikumpulkan; kirim nomor lisensi sebagaimana tercetak di lisensi
bad_profileBidang profil gagal validasidetail menyebutkan bidang tersebut
one_line_per_dispatchPeta lines kosongSebutkan setidaknya satu jalur untuk diwalk
unknown_lineJalur tanpa walk (mis. umbrella)detail mencantumkan jalur yang diketahui dispatch langsung
coverage_selection_requiredWalk auto atau renters tanpa batas dan deductible lengkapPanggil ulang dengan angka — walk mengetik nilai nyata, tidak pernah nilai bawaan
bad_askWalk home diberi pertanyaan cakupanKirim {"home": null} — formulir perusahaan asuransi sendiri yang menetapkan harga paketnya
missing_factsTidak ada formulir perusahaan asuransi yang diminta yang dapat diisi dari profilMinta pengguna untuk fakta needs[].fields[] (menggunakan values mereka jika tersedia) dan panggil ulang — lihat di bawah
no_carriersTidak ada perusahaan asuransi yang memiliki walk tervalidasi untuk jalur + negara bagian tersebutKembali ke quote_insurance
launch_failedAgen tidak dapat memulaiTidak ada yang mencapai perusahaan asuransi mana pun — mencoba ulang aman

Contoh: auto

Sebuah rumah tangga di Fresno mengonfirmasi nomor GEICO sendiri. Profil membawa fakta yang diminta formulir GEICO (kepemilikan, waktu pembelian, asuransi sebelumnya, usia saat pertama kali dilisensikan…); identity adalah pemohon sebenarnya; pertanyaannya adalah empat sumbu yang sama seperti 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."
}

Memanggil ulang dengan argumen yang sama nanti mengumpulkan walk yang selesai. Premi adalah string halaman itu sendiri; breakdown adalah label halaman itu sendiri (GEICO mencetak dua paket berdampingan); term_months menyatakan apa yang dicakup angka tersebut — $857.80 per 6 bulan, bukan per bulan.

{
  "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
      }
    }
  ]
}