Foresee

官方

Foresee使AI助手能够比较所有保险公司和保障选项下的房屋及汽车保险,通过提供即时、准确、详细的报价估算。

你可以用 Foresee MCP 做什么?

  • 比较汽车保险报价 — 使用 quote_insurance 并提供您的车辆信息和保障选项,即可获取多家保险公司的即时、分项汽车保险估算。

  • 为房屋和租客保险定价 — 通过指定房产详情和保障限额(如 coverage_a 或 coverage_c),获取详细的房屋或租客保险报价。

  • 探索保障权衡 — 询问调整免赔额或限额如何影响每月保费,使用每家保险公司返回的价格阶梯数据。

  • 识别缺失信息 — 让助手根据 tighten_by 响应,指出哪些遗漏的细节(如 annual_mileage 或事故记录)对您的报价影响最大。

  • 与保险公司确认估算 — 在购买前如需额外确认,可使用 live_carrier_quotes 直接与保险公司核实报价估算。

托管 MCP 服务器

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

可安装到 Claude Code、Codex、Cursor 等客户端

文档

文档

面向 AI 代理:站点索引位于 /llms.txt,全文位于 /llms-full.txt。

Foresee 使 AI 助手能够比较所有保险公司和保障选项下的房屋及汽车保险,提供即时、准确、详细的报价估算。

使用 Foresee

Foresee 托管两个 MCP 服务器:

希望在不提供个人身份信息(PII)的情况下获得简单、低门槛报价估算的用户使用:

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

希望直接与保险公司确认报价估算的用户,可以通过以下方式调度 Foresee 的计算机使用代理:

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

两个服务器均无需身份验证。

工具

Foresee 在 MCP 服务器上发布两个工具:

工具用途agents.mcp.
quote_insurance生成即时、准确、详细的报价估算✅✅
live_carrier_quotes与保险公司确认报价估算✅❌

工具 1:quote_insurance

用途:通过一次调用,从 Foresee 支持的保险公司,针对 Foresee 当前服务的险种和州,生成即时、逐项列出的报价估算。

输入参数

参数类型必填详情
profileobject是参见 Profile
linesobject是键为要定价的险种(auto、home、renters);值为该险种的保障选项(参见 Coverage options)
carriersstring[]否默认为“所有保险公司”
include_partialboolean否false
include_failuresboolean否true

Profile

核心 Profile

有一个核心输入 profile,外加针对汽车和房屋/租客保险的附加模块。 唯一必填字段是年龄(或 dob)、邮政编码,以及(对于汽车保险)车辆详细信息。

省略的可选字段将成为已声明假设:我们选择一个保守的替代值,并通过 assumptions 报告回来——例如 annual_mileage = 12000,并附带一个 tighten_by 条目,列出对价格影响最大的假设。prior_insurance 表示同一险种的保险;companion_policies 表示不同险种的保险。

字段类型必填
zip_codestring是
ageinteger是
dobstring, YYYY-MM-DD可接受的 age 替代项
citystring否
genderstring否
marital_statusstring否
educationstring否
employment_statusstring否
occupationstring否
credit_rangestring否
home_ownership_statusstring否
residence_typestring否
military_affiliationstring否
membershipsstring[]否
effective_datestring否
prior_insuranceobject否
companion_policiesobject[] — {line, carrier}否

companion_policies 列出家庭已持有的保单,每份保单附带承保的保险公司——{"line": "home", "carrier": "State Farm"}。保险公司的多保单折扣仅适用于其承保的保单,因此没有保险公司的已持有保单无法获得折扣,报价会在 tighten_by 下询问保险公司。

汽车保险 Profile

字段类型必填
auto.vehicles[].yearinteger是
auto.vehicles[].makestring是
auto.vehicles[].modelstring是
auto.vehicles[].ownershipstring否
auto.vehicles[].annual_mileageinteger否
auto.vehicles[].primary_usestring否
auto.vehicles[].garaging_zipstring否
auto.drivers[].relationstring否(第一个为 self)
auto.drivers[].dobstring否
auto.drivers[].years_licensedinteger否
auto.drivers[].accidentsobject[]否
auto.drivers[].violationsobject[]否
auto.drivers[].sr22_requiredboolean否

accidents 和 violations 是结构化对象列表,空列表表示无不良记录。

房屋与租客保险 Profile

字段类型必填
property.year_builtinteger否
property.construction_typestring否
property.roof_typestring否
property.square_feetinteger否
property.protection_classstring否
property.replacement_costinteger否
property.devicesstring[]否
property.lossesobject[]否

保障选项

lines 中的每个键接受该险种的保障选项。任何内容都不会按服务器默认值定价:您传入的选项即为被定价的选项。

汽车

选项类型必填保障范围
bistring是人身伤害责任:您对他人造成的伤害。每人/每次事故限额(以千美元计),例如 "100/300"
pdinteger是财产损失责任:您对他人车辆和财产造成的损害。限额(以千美元计),例如 100
coll_deductibleinteger是碰撞险:因碰撞对您自己车辆造成的损害,无论责任归属。您每次索赔支付的免赔额(美元)
comp_deductibleinteger是综合险:因碰撞以外原因(盗窃、火灾、冰雹、恶意破坏、撞击动物)对您自己车辆造成的损害。您每次索赔支付的免赔额(美元)
umstring否未投保/保额不足驾驶人险:当责任方没有或保额不足时,您的受伤保障。每人/每次事故限额(以千美元计),例如 "100/300"
medpayinteger否医疗费用险:您和乘客的医疗账单,无论责任归属。限额(美元),例如 5000

房屋

选项类型必填保障范围
coverage_ainteger是住宅主体:重建房屋本身。限额(美元),通常为重置成本
coverage_einteger是个人责任:您在房产内或外依法应负责的伤害或损害。限额(美元)
coverage_finteger是他人医疗费用:客人在您房产内受伤后的医疗账单,无论责任归属。限额(美元)
aop_deductibleinteger是其他风险免赔额:除有单独免赔额的风险(如地震)外,您每次索赔支付的金额(美元)

保障 B(其他建筑,如独立车库或围栏)、C(个人财产——您的物品)和 D(使用损失——房屋无法居住期间的生活费用)不以美元询问——它们通过 sel 以已定价的保障 A 的比率返回。

租客

选项类型必填保障范围
coverage_cinteger是个人财产:您的物品。限额(美元)
coverage_einteger是个人责任:您依法应负责的伤害或损害。限额(美元)
coverage_finteger是他人医疗费用:客人在您家中受伤后的医疗账单,无论责任归属。限额(美元)
deductibleinteger是保障开始前您每次索赔支付的金额(美元)
coverage_dinteger否使用损失:如果维修期间您必须搬出,产生的额外生活费用。限额(美元)

响应格式

前缀频率含义
Q每个险种一次被定价的内容:州、业务险种、保障选择
format: factors:每个险种一次下方所有内容的自描述图例
assumptions:每个险种一次Foresee 所做的假设;high_impact: true 表示该字段会显著影响报价估算
tighten_by:每个险种一次对价格影响最大的假设/缺失事实
not_priced:适用时被排除的保险公司及原因
C每家保险公司一次保险公司、承保实体、月保费(点估计和置信区间)
W根据需要附加到上述保险公司的警告——例如“不承保州最低人身伤害/财产损失责任险”
L每家保险公司一次每个保障或风险的月成本
F每家保险公司多条每个险种一个费率因子,在 factors: 图例中命名。值与 L 代码一一对应:空白 = 不涉及该保障,单个值 = 适用于所有保障。括号内是 Profile 落到的行(如 100/300 这样的档位、90066 这样的事实,或 applied / not applied)。值后缀:无 = 精确,~ = 推导,? = 估算
D每家保险公司价格阶梯:对于每个保障杠杆,每个提供的档位以相对于报价月费的 ±美元/月显示,其他所有条件保持所选值。+0.00 标记所选档位;(asked X) = X 未提供,价格位于最近提供的档位。从 D 重新定价;不要重新调用

示例:汽车

一位 41 岁、邮政编码 90066、拥有 2021 款本田思域的客户。

Mercury 显示普通保险公司单元格;Travelers 通过两个可能的承保实体定价,因此其单元格带有 ci 段(投放跨度)。USAA 以保险公司自身的原因落入 not_priced。

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

每个省略的 Profile 字段都会作为已声明假设返回——下方庞大的 assumptions: 模块是由上方精简的请求导致的,tighten_by: 列出了对价格影响最大的七个答案。 Mercury 显示普通保险公司单元格;Travelers 通过两个可能的承保实体定价,因此其单元格带有 ci 段(投放跨度)。USAA 以保险公司自身的原因落入 not_priced。

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.

汽车 L 代码是保险公司定价的保障(合并的 BIPD,或拆分的 BI/PD,外加碰撞险、综合险、未投保驾驶人险、费用)。它们未在面板中进行标准化。


示例:房屋

与上述相同的 41 岁客户,为一座 1998 年建造、重置成本为 45 万美元的框架房屋投保:

{
  "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 以已定价的保障 A 的比率回显 B/C/D。Mercury 的 L 是 风险分解(火灾、水灾、野火、费用);AAA 改为提交打包保费。房屋事实位于 assumptions:/tighten_by:——此处为屋顶类型、防护等级和无损失记录。

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.

示例:租客

同一邮政编码下的另一家庭:一位 27 岁的租客:

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

示例:汽车 + 租客捆绑

同一位 27 岁租客,现在有了一辆车。"incidents": [] 表示无不良记录,因此驾驶记录问题完全跳过 assumptions:。

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

由于我们现在提供了记录、里程和保险历史,汽车 assumptions: 缩减为五个条目,其 tighten_by: 缩减为两个。 然而,租客部分声明了自己的房屋替代值;Mercury 仅对汽车定价——独立、无捆绑。 Farmers 对两者定价,提供 20% 的折扣,记录在 B 中。 相同的摘要作为 bundle: {farmers: {lines, bundle_total, standalone_total, savings}} 以 structuredContent 形式提供。

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.

工具 2:live_carrier_quotes

用途:在保险公司自己的报价网站上确认报价估算。

该工具是幂等的:第一次调用启动计算机使用代理;使用相同参数再次调用会收集第一次调用的进度和结果。

实时调度会将用户的真实详细信息提交给保险公司,保险公司可能进行软信用查询。在调用该工具之前会征得用户同意。

Foresee 仅收集报价;不收取款项或绑定保险。

输入参数

参数类型必填说明
profileobject是字段与 quote_insurance 相同 — 评级事实
linesobject是每个需要走流程的险种一个键,每个值是该险种的询问内容(见下文);多个键同时提交会触发捆绑走流程
user_authorizationstring是用户在聊天中的确认话语,逐字保留(例如 yes, go ahead)
identityobject通常用户的详细信息。
carriersstring[]否限制保险公司范围;默认为所有对该险种和州有已验证走流程的承运商

lines

险种询问内容原因
auto必填 — 与 quote_insurance 相同的四个维度(bi、pd、coll_deductible、comp_deductible),以实际数字填写代理人向承运商表单询问的限额和免赔额
home无 — {"home": null}承运商自己的表单为其套餐定价(住宅金额来自其重置成本估算);代理人报告其选择。提供的询问内容会被大声拒绝,而非静默忽略
renters必填 — coverage_c、coverage_e、coverage_f、deductible,以实际美元金额填写代理人在表单上输入用户的数字,而非接受其默认值;Foresee 从不自行编造

同时提交多个键会触发捆绑走流程:每个承保所有指定险种的承运商都会被引导完成其自身的多险种报价流程,并报告每个险种的保费及其自身的捆绑总额;仅承保部分险种的承运商仅针对这些险种走流程。各险种的询问规则不因捆绑而改变。

identity

字段类型必填说明
first_namestring是法定名字
last_namestring是法定姓氏
dobstring, YYYY-MM-DD是
streetstring是街道地址(第一行)
unitstring否公寓/单元(第二行)
citystring是
zip_codestring否仅当与档案中的不同时
emailstring是承运商将报价发送至此
phonestring否

响应

字段含义
statusin_progress / partial / complete — 使用相同参数重新调用以收集结果
agents每个承运商一条记录(见下文)
note下一步操作,例如重新调用的时机,或先前运行的结果已返回
authorization_recorded在回执上:同意记录在任何承运商看到风险之前已存储
skipped未派发的承运商,每个都附有原因(no_deterministic_walk、missing_facts 并指明所涉及的事实)
not_dispatched本次派发不会走流程的引擎定价承运商,附有原因(held: …、no_walk、not_walked、offline、not_sold)— 走流程通道无法确认的推荐不会静默消失
needs在 missing_facts 拒绝时:需要向用户收集的每个承运商的事实,附有精确的 schema 路径 — 对于封闭词汇字段,还包括接受的 values
assumptions走流程过程中未断言的次要表单事实被解析为已声明的无索赔答案:档案路径(field)和提交的值(assumed)— 将每一条与结果一起转达
confirmation每个承运商:即时引擎估算与页面打印的保费并列 — 当走多个险种时为捆绑估算
error / detail每次拒绝都是一个结构化的 {"error", "detail"} 字典

每个 agents 条目:

字段时机含义
carrier_key、carrier始终名册键 + 显示名称
status始终in_progress / complete / failed
lines始终本次走流程覆盖的险种 — 捆绑走流程时为多个
stage、eta_seconds_remaining进行中走流程所处位置;相对于承运商典型流程的剩余时间
quote.premium已报价逐字保留承运商页面打印的内容("$857.80")— 绝不解析、四舍五入或推导
quote.term_months已报价打印保费所覆盖的期限
quote.premium_by_line已报价、捆绑走流程每个险种的保费按页面打印的内容显示,与 quote.premium 中的捆绑总额并列
quote.breakdown已报价页面自身的明细项目,使用其自身的标签
quote.bound已报价、较新的走流程从定价页面读取的保障内容 — 表单实际绑定的内容,与所询问的内容相对照
quote.variants已报价页面提供的其他已定价套餐
quote.quote_number已报价承运商的检索编号(当页面显示时)
quote.evidence_recorded已报价截图证据存在于服务端(内部 URI 绝不通过线路传输)
declined: true + detail已拒绝承运商审查了详细信息并拒绝报价。这是一个答案,而非错误 — 请转达
detail失败走流程自身对停止位置和原因的描述

拒绝

每次拒绝都是一个结构化的 {"error", "detail"} 对象 — 除非下表中的行另有说明,否则不会向任何承运商提交任何内容。

代码时机处理方式
profile_required家庭事实在顶层发送,没有 profile 包装按照拒绝信息中 example_arguments 所示的方式包装事实后重新调用
authorization_required未获得用户同意即调用解释同意事实,获得肯定答复,在 user_authorization 中逐字传递
bad_identitydrivers_license_number 形似 SSN绝不收集 SSN;发送驾照上印制的驾照号码
bad_profile档案字段未通过验证detail 指明该字段
one_line_per_dispatch空的 lines 映射至少指定一个需要走流程的险种
unknown_line某险种没有走流程(例如 umbrella)detail 列出实时派发已知的险种
coverage_selection_required自动或租客走流程缺少完整的限额和免赔额使用数字重新调用 — 走流程输入真实值,绝不使用默认值
bad_ask房屋走流程被提供了保障询问内容发送 {"home": null} — 承运商自己的表单为其套餐定价
missing_facts无法从档案中填写任何请求的承运商表单向用户询问 needs[].fields[] 事实(在提供 values 时使用)并重新调用 — 见下文
no_carriers没有承运商对该险种和州有已验证的走流程回退到 quote_insurance
launch_failed代理人无法启动未触及任何承运商 — 重试是安全的

示例:自动

弗雷斯诺的一个家庭确认 GEICO 自己的数字。档案包含 GEICO 表单要求的事实(所有权、购买时机、先前保险、首次取得驾照年龄…);identity 是真实申请人;询问内容与 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."
}

稍后使用相同参数重新调用可收集完成的走流程结果。 保费是页面自身的字符串;breakdown 是页面自身的标签 (GEICO 并排打印了两个套餐);term_months 说明该数字 覆盖的内容 — $857.80 每 6 个月,而非每月。

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