Foresee
resmiForesee 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_insurancedengan 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_aataucoverage_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_mileageatau catatan mengemudi) mana yang paling memengaruhi kutipan Anda, berdasarkan sarantighten_by. - Konfirmasi estimasi dengan penyedia — Gunakan
live_carrier_quotesdi 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:
| Tool | Tujuan | agents. | mcp. |
|---|---|---|---|
quote_insurance | Menghasilkan estimasi kutipan yang instan, akurat, dan terperinci | ✅ | ✅ |
live_carrier_quotes | Mengonfirmasi 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
| Parameter | Tipe | Wajib | Detail |
|---|---|---|---|
profile | object | ya | lihat Profil |
lines | object | ya | Kunci adalah lini yang akan dihargai (auto, home, renters); nilai adalah opsi perlindungan untuk lini tersebut (lihat Opsi perlindungan) |
carriers | string[] | tidak | Default ke "semua perusahaan asuransi" |
include_partial | boolean | tidak | false |
include_failures | boolean | tidak | true |
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
| Bidang | Tipe | Wajib |
|---|---|---|
zip_code | string | ya |
age | integer | ya |
dob | string, YYYY-MM-DD | alternatif yang diterima untuk age |
city | string | tidak |
gender | string | tidak |
marital_status | string | tidak |
education | string | tidak |
employment_status | string | tidak |
occupation | string | tidak |
credit_range | string | tidak |
home_ownership_status | string | tidak |
residence_type | string | tidak |
military_affiliation | string | tidak |
memberships | string[] | tidak |
effective_date | string | tidak |
prior_insurance | object | tidak |
companion_policies | string[] | tidak |
Profil Asuransi Mobil
| Bidang | Tipe | Wajib |
|---|---|---|
auto.vehicles[].year | integer | ya |
auto.vehicles[].make | string | ya |
auto.vehicles[].model | string | ya |
auto.vehicles[].ownership | string | tidak |
auto.vehicles[].annual_mileage | integer | tidak |
auto.vehicles[].primary_use | string | tidak |
auto.vehicles[].garaging_zip | string | tidak |
auto.drivers[].relation | string | tidak (self untuk yang pertama) |
auto.drivers[].dob | string | tidak |
auto.drivers[].years_licensed | integer | tidak |
auto.drivers[].accidents | object[] | tidak |
auto.drivers[].violations | object[] | tidak |
auto.drivers[].sr22_required | boolean | tidak |
accidents dan violations adalah daftar objek terstruktur, di mana daftar kosong berarti catatan bersih.
Profil Asuransi Rumah & Sewa
| Bidang | Tipe | Wajib |
|---|---|---|
property.year_built | integer | tidak |
property.construction_type | string | tidak |
property.roof_type | string | tidak |
property.square_feet | integer | tidak |
property.protection_class | string | tidak |
property.replacement_cost | integer | tidak |
property.devices | string[] | tidak |
property.losses | object[] | 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
| Opsi | Tipe | Wajib | Apa yang dicakup |
|---|---|---|---|
bi | string | ya | Kewajiban cedera tubuh: cedera yang Anda sebabkan kepada orang lain. Batas per-orang/per-kejadian dalam ribuan dolar, mis. "100/300" |
pd | integer | ya | Kewajiban kerusakan properti: kerusakan yang Anda sebabkan pada mobil dan properti orang lain. Batas dalam ribuan dolar, mis. 100 |
coll_deductible | integer | ya | Tabrakan: kerusakan pada mobil Anda sendiri akibat kecelakaan, siapa pun yang bersalah. Deductible yang Anda bayar per klaim, dalam dolar |
comp_deductible | integer | ya | Komprehensif: kerusakan pada mobil Anda sendiri akibat hal selain kecelakaan — pencurian, kebakaran, hujan es, vandalisme, menabrak hewan. Deductible yang Anda bayar per klaim, dalam dolar |
um | string | tidak | Pengendara 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" |
medpay | integer | tidak | Pembayaran medis: tagihan medis untuk Anda dan penumpang Anda, siapa pun yang bersalah. Batas dalam dolar, mis. 5000 |
Rumah
| Opsi | Tipe | Wajib | Apa yang dicakup |
|---|---|---|---|
coverage_a | integer | ya | Hunian: membangun kembali rumah itu sendiri. Batas dalam dolar, biasanya biaya penggantian |
coverage_e | integer | ya | Kewajiban pribadi: cedera atau kerusakan yang Anda bertanggung jawab secara hukum, di dalam atau di luar properti. Batas dalam dolar |
coverage_f | integer | ya | Pembayaran medis kepada orang lain: tagihan medis tamu setelah cedera di properti Anda, siapa pun yang bersalah. Batas dalam dolar |
aop_deductible | integer | ya | Deductible 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
| Opsi | Tipe | Wajib | Apa yang dicakup |
|---|---|---|---|
coverage_c | integer | ya | Properti pribadi: barang-barang Anda. Batas dalam dolar |
coverage_e | integer | ya | Kewajiban pribadi: cedera atau kerusakan yang Anda bertanggung jawab secara hukum. Batas dalam dolar |
coverage_f | integer | ya | Pembayaran medis kepada orang lain: tagihan medis tamu setelah cedera di rumah Anda, siapa pun yang bersalah. Batas dalam dolar |
deductible | integer | ya | Apa yang Anda bayar per klaim sebelum perlindungan dimulai. Dalam dolar |
coverage_d | integer | tidak | Kehilangan penggunaan: biaya hidup tambahan jika Anda harus pindah sementara tempat diperbaiki. Batas dalam dolar |
Format respons
| Awalan | Frekuensi | Arti |
|---|---|---|
Q | sekali per lini | Apa yang dihargai: negara bagian, lini bisnis, pilihan perlindungan |
format: factors: | sekali per lini | Legenda yang menjelaskan dirinya sendiri untuk semua di bawahnya |
assumptions: | sekali per lini | Asumsi yang dibuat oleh Foresee; high_impact: true berarti bidang ini secara material mengubah estimasi kutipan |
tighten_by: | sekali per lini | Asumsi/fakta yang hilang yang paling memengaruhi harga |
not_priced: | saat berlaku | Perusahaan asuransi yang dikecualikan, dengan alasannya |
C | sekali per perusahaan asuransi | Perusahaan asuransi, entitas penulis, premi bulanan (estimasi titik dan interval kepercayaan) |
W | sesuai kebutuhan | Peringatan yang dilampirkan pada perusahaan asuransi di atas — mis. "Tidak menulis BI / PD minimum negara bagian" |
L | sekali per perusahaan asuransi | Biaya bulanan per perlindungan atau risiko |
F | banyak per perusahaan asuransi | Satu 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 |
D | per perusahaan asuransi | Tangga 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
| Parameter | Tipe | Wajib | Detail |
|---|---|---|---|
profile | object | ya | Bidang yang sama dengan quote_insurance — fakta penilaian |
lines | object | ya | Satu kunci per lini untuk dijalankan, setiap nilai adalah permintaan lini tersebut (lihat di bawah); beberapa kunci menugaskan jalan paket |
user_authorization | string | ya | Afirmasi pengguna dalam obrolan, kata demi kata (mis. yes, go ahead) |
identity | object | biasanya | Detail pengguna. |
carriers | string[] | tidak | Batasi fan; default ke setiap perusahaan asuransi dengan jalan tervalidasi untuk lini + negara bagian |
lines
| Baris | Pertanyaan (Ask) | Alasan |
|---|---|---|
auto | wajib — empat sumbu yang sama seperti quote_insurance (bi, pd, coll_deductible, comp_deductible), sebagai angka aktual | Batas dan deductible yang diminta agen dari formulir perusahaan asuransi |
home | tidak 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 |
renters | wajib — coverage_c, coverage_e, coverage_f, deductible, sebagai dolar aktual | Agen 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
| Bidang | Tipe | Wajib | Detail |
|---|---|---|---|
first_name | string | ya | Nama depan resmi |
last_name | string | ya | Nama belakang resmi |
dob | string, YYYY-MM-DD | ya | |
street | string | ya | Alamat jalan (baris 1) |
unit | string | tidak | Apartemen/unit (baris 2) |
city | string | ya | |
zip_code | string | tidak | Hanya jika berbeda dari profil |
email | string | ya | Perusahaan asuransi mengirim kutipan ke sini |
phone | string | tidak |
Respons
| Bidang | Makna |
|---|---|
status | in_progress / partial / complete — panggil ulang dengan argumen yang sama untuk mengumpulkan |
agents | Satu entri per perusahaan asuransi (lihat di bawah) |
note | Apa yang harus dilakukan selanjutnya, misalnya waktu panggil ulang, atau bahwa hasil dari proses sebelumnya telah dikembalikan |
authorization_recorded | Pada tanda terima: catatan persetujuan disimpan sebelum perusahaan asuransi mana pun melihat risiko |
skipped | Perusahaan asuransi yang TIDAK dikirim, masing-masing dengan alasannya (no_deterministic_walk, missing_facts dengan fakta yang disebutkan) |
not_dispatched | Perusahaan 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 |
needs | Pada 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 |
assumptions | Fakta 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 |
confirmation | Per perusahaan asuransi: estimasi mesin instan di samping premi yang dicetak halaman — estimasi bundel saat beberapa jalur diwalk |
error / detail | Setiap penolakan adalah dict {"error", "detail"} terstruktur |
Setiap entri agents:
| Bidang | Kapan | Makna |
|---|---|---|
carrier_key, carrier | selalu | Kunci daftar + nama tampilan |
status | selalu | in_progress / complete / failed |
lines | selalu | Jalur yang dicakup walk ini — beberapa pada walk yang digabungkan |
stage, eta_seconds_remaining | sedang berlangsung | Di mana walk berada; sisa waktu terhadap alur khas perusahaan asuransi |
quote.premium | dikutip | Verbatim sebagaimana dicetak halaman perusahaan asuransi ("$857.80") — tidak pernah diurai, dibulatkan, atau diturunkan |
quote.term_months | dikutip | Jangka waktu yang dicakup oleh premi yang dicetak |
quote.premium_by_line | dikutip, walk digabungkan | Premi setiap jalur sebagaimana dicetak halaman, di samping total bundel di quote.premium |
quote.breakdown | dikutip | Item baris halaman itu sendiri, labelnya sendiri |
quote.bound | dikutip, walk lebih baru | Cakupan yang dibaca dari halaman yang dihargai — apa yang sebenarnya diikat formulir, vs apa yang diminta |
quote.variants | dikutip | Paket berharga tambahan yang ditawarkan halaman |
quote.quote_number | dikutip | Nomor pengambilan perusahaan asuransi, saat halaman menampilkannya |
quote.evidence_recorded | dikutip | Bukti tangkapan layar ada di sisi server (URI internal tidak pernah dikirim melalui kabel) |
declined: true + detail | ditolak | Perusahaan asuransi meninjau detail dan menolak untuk mengutip. Sebuah jawaban, bukan kesalahan — sampaikan |
detail | gagal | Kata-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.
| Kode | Kapan | Apa yang harus dilakukan |
|---|---|---|
profile_required | Fakta rumah tangga dikirim di tingkat atas, tanpa pembungkus profile | Panggil ulang dengan fakta yang dibungkus seperti yang ditunjukkan di example_arguments penolakan |
authorization_required | Dipanggil tanpa persetujuan pengguna | Jelaskan fakta persetujuan, dapatkan ya, teruskan secara verbatim di user_authorization |
bad_identity | drivers_license_number berbentuk SSN | SSN tidak pernah dikumpulkan; kirim nomor lisensi sebagaimana tercetak di lisensi |
bad_profile | Bidang profil gagal validasi | detail menyebutkan bidang tersebut |
one_line_per_dispatch | Peta lines kosong | Sebutkan setidaknya satu jalur untuk diwalk |
unknown_line | Jalur tanpa walk (mis. umbrella) | detail mencantumkan jalur yang diketahui dispatch langsung |
coverage_selection_required | Walk auto atau renters tanpa batas dan deductible lengkap | Panggil ulang dengan angka — walk mengetik nilai nyata, tidak pernah nilai bawaan |
bad_ask | Walk home diberi pertanyaan cakupan | Kirim {"home": null} — formulir perusahaan asuransi sendiri yang menetapkan harga paketnya |
missing_facts | Tidak ada formulir perusahaan asuransi yang diminta yang dapat diisi dari profil | Minta pengguna untuk fakta needs[].fields[] (menggunakan values mereka jika tersedia) dan panggil ulang — lihat di bawah |
no_carriers | Tidak ada perusahaan asuransi yang memiliki walk tervalidasi untuk jalur + negara bagian tersebut | Kembali ke quote_insurance |
launch_failed | Agen tidak dapat memulai | Tidak 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
}
}
]
}