Foresee
官方Foresee使AI助手能够比较所有保险公司和保障选项下的房屋及汽车保险,通过提供即时、准确、详细的报价估算。
你可以用 Foresee MCP 做什么?
- 即时获取多家保险公司的报价 — 只需调用一次
quote_insurance,即可查询汽车、房屋或租客保险的估价,并获取各家保险公司按月列出的明细价格。 - 不同保障额度的价格梯度 — 更改
bi、pd、coll_deductible或comp_deductible,即可查看各项保费如何变化,无需重新获取报价。 - 明确列出假设与信息缺口 — 获取
assumptions和tighten_by,了解哪些缺失信息对价格影响最大。 - 向保险公司确认 — 通过
live_carrier_quotes调度 Foresee 的代理,直接向保险公司确认估价。 - 通过普通 HTTP 访问 — 使用 curl 查询相同的工具,例如
https://mcp.go-foresee.com/quote?zip=94621&age=25&car=2021+Honda+Civic。
托管 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
两个服务器均无需身份验证。
不使用 MCP 客户端
两个服务器都通过纯 HTTP 提供相同的工具,适用于只能使用 shell 的代理。curl https://mcp.go-foresee.com 会打印用法和可复制的示例(curl https://agents.go-foresee.com 会添加 live_carrier_quotes 步骤)。
快速查看:以纯文本价格表的形式返回结果:
curl 'https://mcp.go-foresee.com/quote?zip=94621&age=25&car=2021+Honda+Civic'
此单行命令接受 zip、age、car,以及可选的 bi、pd、coll_deductible 和 comp_deductible;遇到其他参数时会拒绝请求,而不是忽略参数。
如需执行其他操作,请将工具参数(下方的输入参数)作为 JSON POST 到 /tools/<tool name>。返回结果与 MCP 客户端收到的结果相同:
curl https://mcp.go-foresee.com/tools/quote_insurance \
-H 'Content-Type: application/json' -d '{
"profile": {"zip_code": "94621", "age": 25, "auto": {
"vehicles": [{"year": 2021, "make": "Honda", "model": "Civic"}]}},
"lines": {"auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500}}
}'
live_carrier_quotes 位于 https://agents.go-foresee.com/tools/live_carrier_quotes。添加 ?format=text 可启用终端渲染。无法定价或提交的请求会返回 400,响应正文会说明应发送什么内容。架构:openapi.json。
工具
Foresee 在 MCP 服务器上提供两个工具:
| 工具 | 用途 | agents. | mcp. |
|---|---|---|---|
quote_insurance | 生成即时、准确、详细的报价估算 | ✅ | ✅ |
live_carrier_quotes | 向保险公司确认报价估算 | ✅ | ❌ |
工具 1:quote_insurance
用途:通过一次调用,针对 Foresee 当前服务的险种和州,生成 Foresee 支持的保险公司的即时、分项报价估算。
输入参数
| 参数 | 类型 | 必填 | 详情 |
|---|---|---|---|
profile | object | 是 | 参见 Profile |
lines | object | 是 | 键为要定价的险种(auto、home、renters);值为该险种的承保选项(参见 Coverage options) |
carriers | string[] | 否 | 默认为“所有保险公司” |
include_failures | boolean | 否 | true |
Profile
核心资料
除核心输入 profile 外,还可提供汽车和房屋/租客保险的附加信息块。
唯一必填字段为年龄(或 dob)、ZIP,以及(汽车保险所需的)车辆详情。
省略的可选字段会成为声明的假设:我们会选择保守的替代值,并通过 assumptions 返回,例如 auto.vehicles[].annual_mileage = 12000,同时在 tighten_by 条目中列出对价格影响最大的假设。只会报告实际参与报价的保险公司会用于定价的事实:如果报价中的保险公司都不会读取某个省略字段,该字段就不会影响价格,因此不会显示。prior_insurance 表示同一险种的保险;companion_policies 表示不同险种的保险。
| 字段 | 类型 | 必填 | 详情 |
|---|---|---|---|
zip_code | string | 是 | 5 位数的车辆停放地/住宅 ZIP |
age | integer | 是,或 dob | |
dob | string, YYYY-MM-DD | 可替代 age | |
state | string | 否 | 两字母代码;省略时根据 zip_code 推导 |
city | string | 否 | |
street_address | string | 否 | |
unit | string | 否 | |
gender | string | 否 | |
marital_status | string | 否 | Single / Married / Domestic Partnership / Divorced / Widowed / Separated |
education | string | 否 | 最高级别:No High School / High School / Vocational / Some College / Associate / Bachelors / Masters / Doctorate |
employment_status | string | 否 | Employed / Self-Employed / Retired / Student / Unemployed |
occupation | string | 否 | |
industry | string | 否 | |
credit_range | string | 否 | Excellent / Good / Fair / Poor — 在 CA、HI、MA 和 MI 省略此项,因为这些州不按信用评分定价 |
home_ownership_status | string | 否 | rent / own with mortgage / own outright |
residence_type | string | 否 | House / Apartment / Condominium / Manufactured Home / … |
months_at_residence | integer | 否 | |
military_affiliation | string | 否 | active / veteran / family / none。USAA 仅为与军方有关联的家庭提供报价 |
memberships | string[] | 否 | 申请人所属的组织,例如 ["Costco", "AAA"] |
effective_date | string, YYYY-MM-DD | 否 | 保单生效日期 |
prior_insurance.insured | boolean | 否 | 目前是否已投保此险种 |
prior_insurance.carrier | string | 否 | |
prior_insurance.since | string | 否 | 开始日期:YYYY、YYYY-MM 或 YYYY-MM-DD |
prior_insurance.until | string | 否 | 结束日期:YYYY、YYYY-MM 或 YYYY-MM-DD;保单仍有效时省略 |
companion_policies[].line | string | 每个条目必填 | 已持有保单承保的险种:home、renters、condo、auto、life、umbrella… |
companion_policies[].carrier | string | 否 | 承保公司,例如 State Farm |
companion_policies[].in_force | boolean | 否 | 对于已失效或已取消的保单,设为 false |
companion_policies 列出家庭已持有的保单,每份保单都注明承保公司 — {"line": "home", "carrier": "State Farm"}。多保单折扣仅适用于由该保险公司承保的保单,因此,未注明承保公司的已持有保单无法获得折扣;报价时需在 tighten_by 中填写承保公司。
所有日期均采用 ISO 8601 格式。事故、保险历史和购买日期可精确到月份或年份(2025、2025-06);出生日期或保单生效日期必须精确到完整的 YYYY-MM-DD。其他格式的日期(06/15/2025)不会被识别为日期。
汽车保险资料
车辆:
| 字段 | 类型 | 必填 | 详情 |
|---|---|---|---|
auto.vehicles[].year | integer | 是 | |
auto.vehicles[].make | string | 是 | |
auto.vehicles[].model | string | 是 | |
auto.vehicles[].trim | string | 否 | 例如 EX-L |
auto.vehicles[].body_style | string | 否 | 例如 XLT AWD 4D GAS |
auto.vehicles[].vin | string | 否 | |
auto.vehicles[].cost | integer | 否 | 新车价格,整数美元 |
auto.vehicles[].ownership | string | 否 | owned / financed / leased |
auto.vehicles[].bought_new | boolean | 否 | |
auto.vehicles[].purchase_date | string | 否 | YYYY、YYYY-MM 或 YYYY-MM-DD |
auto.vehicles[].primary_use | string | 否 | Personal / Commute / Business |
auto.vehicles[].annual_mileage | integer | 否 | |
auto.vehicles[].one_way_miles | integer | 否 | 单程通勤距离,英里 |
auto.vehicles[].commute_days | integer | 否 | 每周通勤天数 |
auto.vehicles[].anti_theft | string | 否 | alarm / active_disable / passive_disable / recovery_device |
auto.vehicles[].anti_lock_brakes | boolean | 否 | |
auto.vehicles[].daytime_running_lights | boolean | 否 | |
auto.vehicles[].garaging_zip | string | 否 | 此车辆的停放地点;与 zip_code 不同时填写 |
auto.vehicles[].principal_driver | integer | 否 | 主要驾驶人:该驾驶人在 auto.drivers 中的序号,1 = 列表中的第一位 |
auto.vehicles[].owner | string | 否 | 车辆所有人与申请人的关系:self / spouse / domestic partner / child / parent / sibling / other |
驾驶人:
| 字段 | 类型 | 必填 | 详情 |
|---|---|---|---|
auto.drivers[].relation | string | 否 | self / spouse / domestic partner / child / parent / sibling / other。未注明时,第一位驾驶人是 self,其余驾驶人是 other |
auto.drivers[].dob | string, YYYY-MM-DD | 否 | |
auto.drivers[].gender | string | 否 | |
auto.drivers[].marital_status | string | 否 | |
auto.drivers[].education | string | 否 | 与核心资料相同 |
auto.drivers[].employment_status | string | 否 | 与核心资料相同 |
auto.drivers[].occupation | string | 否 | |
auto.drivers[].industry | string | 否 | |
auto.drivers[].status | string | 否 | licensed(默认)/ permit / not licensed / excluded |
auto.drivers[].exclusion_reason | string | 否 | |
auto.drivers[].years_licensed | integer | 否 | 首次取得驾照至今的年数 |
auto.drivers[].age_first_licensed | integer | 否 | |
auto.drivers[].date_first_licensed | string, YYYY-MM-DD | 否 | 可替代 age_first_licensed |
auto.drivers[].defensive_driving_course | boolean | 否 | 过去 3 年内是否完成过一次 |
auto.drivers[].rideshare_use | boolean | 否 | 是否从事网约车或配送驾驶 |
auto.drivers[].sr22_required | boolean | 否 | |
auto.drivers[].full_time_student | boolean | 否 | 是否全日制就读于高中、学院或大学 |
auto.drivers[].student_away | boolean | 否 | 是否为离家上学且不使用保单所含任何车辆的学生 |
auto.drivers[].good_student | boolean | 否 | 是否达到可享受优秀学生折扣的成绩(通常为 B 平均分或更高) |
auto.drivers[].violations[] | object[] | 否 | on(是:YYYY、YYYY-MM 或 YYYY-MM-DD)和 kind(是:用日常语言描述 — speeding、DUI、reckless driving、running a red light…) |
auto.drivers[].accidents[] | object[] | 否 | on(是)、at_fault(boolean)、amount(赔付金额,美元) |
accidents 和 violations 是按日期排列的条目列表 — {"on": "2025-01", "kind": "speeding"}、{"on": "2023-06-15", "at_fault": true} — 空列表表示记录良好。缺少 on 的条目(或缺少 kind 的违规记录)会被拒绝,并指出对应的路径。
主要驾驶人必须是列表中获准驾驶的驾驶人:序号超出 auto.drivers 范围,或驾驶人属于 excluded 或 not licensed,都会导致请求被拒绝。
房屋与租客保险资料
| 字段 | 类型 | 必填 | 详情 |
|---|---|---|---|
property.year_built | integer | 否 | |
property.construction_type | string | 否 | frame / masonry / masonry veneer… |
property.roof_type | string | 否 | composition shingle / tile / metal… |
property.roof_year | integer | 否 | 屋顶上次更换的年份 |
property.roof_layers | integer | 否 | |
property.square_feet | integer | 否 | |
property.stories | integer | 否 | |
property.bathrooms | integer | 否 | |
property.units | integer | 否 | 建筑可容纳的家庭数量 |
property.household | integer | 否 | 居住在房屋中的人数 |
property.occupancy | string | 否 | owner occupied / tenant occupied / seasonal / vacant |
property.purchased | string | 否 | 房屋购买时间:YYYY、YYYY-MM 或 YYYY-MM-DD |
property.foundation | string | 否 | slab / raised / basement / crawlspace… |
property.garage | string | 否 | attached 2 car / detached 1 car / carport / none… |
property.miles_to_fire_station | number | 否 | |
property.replacement_cost | integer | 否 | 住宅重置成本估算,美元 |
property.devices | string[] | 否 | 防护设备:smoke alarm、deadbolts、fire extinguisher、central burglar alarm、sprinklers… ["None"] 表示已询问但没有;如果从未询问,则省略 |
property.swimming_pool | boolean | 否 | |
property.renovation_permit_year | integer | 否 | 最近一次获准的管道、电气、供暖或屋顶工程的年份 |
property.seismic_retrofit | boolean | 否 | |
property.losses[] | object[] | 否 | 以日期记录的过往财产损失:on、kind(water、fire、theft、wind/hail、liability…)、amount(赔付金额,美元)。[] 表示没有;未知时省略 |
保障选项
lines 中的每个键都采用该险种对应的保障选项。服务器没有默认定价:传入的选项就是用于定价的选项。
汽车
| 选项 | 类型 | 必填 | 保障范围 |
|---|---|---|---|
bi | string | 是 | 人身伤害责任险:赔偿您造成的他人伤害。每人/每次事故限额,以千美元为单位,例如 "100/300" |
pd | integer | 是 | 财产损失责任险:赔偿您造成的他人车辆和财产损失。限额以千美元为单位,例如 100 |
coll_deductible | integer | 是 | 碰撞险:无论谁负有责任,赔偿您自己的汽车因碰撞造成的损失。每次索赔您需支付的免赔额,单位为美元 |
comp_deductible | integer | 是 | 综合险:赔偿您自己的汽车因碰撞以外原因造成的损失,例如盗窃、火灾、冰雹、故意破坏或撞到动物。每次索赔您需支付的免赔额,单位为美元 |
um | string | 否 | 无保险/保险不足驾驶人保障:当负有责任的驾驶人没有保险或保险额度过低时,赔偿您的人身伤害。每人/每次事故限额,以千美元为单位,例如 "100/300" |
medpay | integer | 否 | 医疗费用保障:无论谁负有责任,支付您和乘客的医疗账单。限额以美元为单位,例如 5000 |
umpd | integer | 否 | 无保险驾驶人财产损失保障:当负有责任的驾驶人没有保险时,赔偿您的汽车损失。限额以美元为单位,例如 3500;0 表示拒绝此项保障 |
cdw | boolean | 否 | 碰撞险免赔额豁免:无保险驾驶人负有责任时,您无需支付碰撞险免赔额。true 或 false |
term | integer | 否 | 保单期限(月):6 或 12。省略此项时,各保险公司按自己的标准期限定价 |
购物者尚未选择时的常见起点——所有州都询问相同内容:{"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500, "medpay": 5000}。如果购物者所在州要求每份汽车保单都包含额外保障,而询问内容未指定该保障——例如无过失州的个人伤害保障 (PIP),以及新泽西州、宾夕法尼亚州和肯塔基州的诉讼选项——报价会按该州规定的选项定价,并在 state_notes 中说明。
如果保险公司不提供您询问的某项选项,则按其提供的最接近选项定价,并在其 rated_vs_asked 中说明:逐项列出原本的 asked、实际采用的 rated,以及这是否涵盖 "less" 或 "more"。如果保险公司在该州完全不销售某项保障——例如不提供医疗费用保障——则定价时不包含该项:rated 为 0,涵盖 "less"。此类价格并非同等保障的比较价格;请在旁边注明其保障范围。
房屋
| 选项 | 类型 | 必填 | 保障范围 |
|---|---|---|---|
coverage_a | integer | 是 | 房屋主体:重建房屋本身。限额以美元为单位,通常为重置成本 |
coverage_e | integer | 是 | 个人责任险:赔偿您依法应负责的伤害或损失,无论发生在房屋内外。限额以美元为单位 |
coverage_f | integer | 是 | 他人医疗费用保障:无论谁负有责任,支付访客在您房屋内受伤后的医疗账单。限额以美元为单位 |
aop_deductible | integer | 是 | 其他所有风险免赔额:每次索赔中,除有单独免赔额的风险(如地震)外,您需支付的金额。单位为美元 |
B 项保障(其他建筑物,例如独立车库或围栏)、C 项保障(个人财产,即您的物品)和 D 项保障(无法居住期间的生活费用)不以美元金额询问——它们会在 sel 中以相对于 A 项保障的比例返回,表示实际定价的比例。
租客
| 选项 | 类型 | 必填 | 保障范围 |
|---|---|---|---|
coverage_c | integer | 是 | 个人财产:您的物品。限额以美元为单位 |
coverage_e | integer | 是 | 个人责任险:赔偿您依法应负责的伤害或损失。限额以美元为单位 |
coverage_f | integer | 是 | 他人医疗费用保障:无论谁负有责任,支付访客在您家中受伤后的医疗账单。限额以美元为单位 |
deductible | integer | 是 | 保障开始前每次索赔由您支付的金额。单位为美元 |
coverage_d | integer | 否 | 无法居住保障:房屋维修期间您必须搬出时产生的额外生活费用。限额以美元为单位 |
响应格式
定价结果全部包含在 structuredContent 中;content 为空。定价详情位于 dense 字段中:紧凑的机器文本,每行一个部分,如下方的 response 区块所示。旁边是每行的摘要字段,位于 by_line 下(保险公司及其 monthly、confidence_interval、carrier_quote_url、warnings、rated_vs_asked;以及 state_notes、assumptions、tighten_by、failures),顶部还有 presentation(如何呈现价格)、bundle 和 skipped。拒绝报价(profile_required、coverage_required)为普通 JSON,不含 dense。
| 前缀 | 频率 | 含义 |
|---|---|---|
Q | 每行一次 | 定价内容:州、险种、保障选择 |
state_notes: | 适用时 | 购物者所在州对这些报价的影响,需转达:法定最低责任险限额、PIP 和诉讼选项(以及询问未指定时实际定价的值)、法律禁止保险公司据以定价的事实,以及不在该州销售的保险公司。by_line.<line>.state_notes 中的每条说明都包含一个 kind、text,以及相同事实的数据 |
assumptions: | 每行一次 | Foresee 作出的假设;high_impact: true 表示该字段会显著影响报价估算 |
tighten_by: | 每行一次 | 缺失事实中最可能显著影响价格的个人资料路径 |
not_priced: | 适用时 | 没有报价的保险公司:保险公司自己的答复(例如不在该州销售此险种、只为军人家庭提供报价……),或“Foresee 无法获取报价。”by_line.<line>.failures 中的每个条目都包含 by:carrier 或 foresee |
C | 每家保险公司一次 | 保险公司、承保实体、月保费(点估计和置信区间) |
W | 按需 | 关于上述保险公司的说明,例如没有在线报价页面 |
L | 每家保险公司一次 | 按保障项目列出的月费用,使用在所有保险公司中含义相同的代码(BI、PD、UMBI、MEDPAY、COMP、COLL…);A+B 表示一笔保费同时涵盖两项,FEE 表示固定费用 |
D | 每家保险公司 | 价格阶梯:对每个保障调整项,列出所有可选档位相对于报价月费的 ±$/月变化,其他条件均保持所选值。+0.00 标记所选档位;(asked X) = X 表示不提供该选项,价格按最接近的可选档位计算。请从 D 重新定价;不要重新调用 |
示例:汽车
一位 41 岁的用户,邮编为 90066,驾驶一辆 2021 年款 Honda Civic。
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"]
}
这些保险公司会对所有省略但用于定价的个人资料字段返回明确的假设——下方的 assumptions: 区块是由上述信息不足的请求导致的,而 tighten_by: 列出了最可能显著影响价格的六个答案。Mercury 显示普通保险公司单元格;Travelers 通过两个可能的承保实体进行报价,因此其单元格包含一个 ci 片段(承保实体区间)。USAA 的结果位于 not_priced,并附有保险公司自己的原因。
Q CA auto sel={"bi":"100/300","coll_deductible":500,"comp_deductible":500,"pd":100}
state_notes: California's legal minimum liability is $30,000 per person / $60,000 per accident bodily injury and $15,000 property damage. California law bars insurers from pricing auto insurance on credit or gender (Cal. Ins. Code § 1861.02 (Prop 103); 10 CCR § 2632.5), so they don't change these prices.
assumptions: [{"assumed":16,"field":"auto.drivers[].age_first_licensed","high_impact":true,"note":"CA Good Driver discount (at least 20% off every CA price here, INS §1861.025) is granted on this assumption: it rates the applicant as licensed 3+ years. If they were first licensed less than 3 years ago, these prices are understated — send auto.drivers[].age_first_licensed (or date_first_licensed / years_licensed on the same driver) and re-quote."},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"auto.drivers[].violations","high_impact":true},{"assumed":[],"field":"auto.drivers[].accidents","high_impact":true},{"assumed":12000,"field":"auto.vehicles[].annual_mileage","high_impact":true},{"assumed":null,"field":"occupation","high_impact":true},{"assumed":null,"field":"memberships","high_impact":true}]
tighten_by: auto.drivers[].age_first_licensed,auto.drivers[].violations,auto.drivers[].accidents,auto.vehicles[].annual_mileage,occupation,memberships
not_priced: usaa:USAA quotes only military members, veterans and their families; set military_affiliation to quote it.
C mercury|Mercury Insurance Company|235.11
L BI:56.33,PD:44.10,UMBI:16.85,MEDPAY:0.97,COMP:17.49,COLL:99.38
D bi 100/300=30/60:-9.70,50/100:-6.72,100/300:+0.00,250/500:+12.31,300/300:+12.68,500/500:+23.13
D pd 100=15:-7.99,25:-6.39,50:-2.88,100:+0.00,250:+2.56,300:+3.83
D coll_deductible 500=100:+19.87,200:+14.91,250:+12.42,500:+0.00,1000:-9.94,2000:-29.81,2500:-39.75
D comp_deductible 500=25:+25.74,50:+17.88,100:+11.00,200:+6.09,250:+2.75,500:+0.00,1000:-2.75,2000:-5.70,2500:-8.06
C travelers|Travelers Commercial Insurance Company|368.50|ci 327.21-415.00
L BI:149.00,PD:70.17,COMP:15.50,COLL:114.33,UMBI:19.50
D bi 100/300=15/30:-61.67,25/50:-39.33,30/60:-32.83,50/100:-13.50,100/300:+0.00,250/500:+12.50,500/500:+16.67,1000/1000:+52.67
D pd 100=5:-21.50,10:-10.50,15:-6.67,25:-2.83,50:-0.67,100:+0.00,250:+0.50,300:+0.83,500:+1.17
D coll_deductible 500=100:+22.17,250:+13.17,500:+0.00,1000:-19.33,1500:-34.50,2500:-56.50,5000:-86.00
D comp_deductible 500=0:+11.17,50:+9.67,100:+8.00,250:+2.17,500:+0.00,1000:-1.67,1500:-3.67,2500:-6.50,5000:-10.50
示例:房屋
与上例相同的 41 岁用户,为一栋建于 1998 年、木结构、重置成本为 $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 以相对于 A 项保障的比例列出 B/C/D 项保障的定价结果。每家保险公司的 L 都是其基础保费(HO_BASE)加上费用。房屋信息位于 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}
assumptions: [{"assumed":"owner occupied","field":"property.occupancy","high_impact":false},{"assumed":1,"field":"property.stories","high_impact":false},{"assumed":1,"field":"property.units","high_impact":false},{"assumed":"Asphalt Shingle","field":"property.roof_type","high_impact":false},{"assumed":2,"field":"property.bathrooms","high_impact":false},{"assumed":false,"field":"property.swimming_pool","high_impact":false},{"assumed":[],"field":"property.losses","high_impact":true}]
tighten_by: property.losses
C mercury|CALIFORNIA AUTOMOBILE INS CO|123.67
L HO_BASE:118.76,FEE:3.75,FEE:1.16,FEE:0.01
D aop_deductible 1000=500:+13.38,1000:+0.00,1500:-5.38,2500:-21.45,3500:-26.58,5000:-37.01,10000:-48.28,25000:-63.01,50000:-72.51
D coverage_a 450000=30000:-90.60,65000:-82.94,95000:-76.38,130000:-68.81,165000:-61.24,195000:-54.76,230000:-47.27,265000:-39.79,295000:-33.39,330000:-25.82,365000:-18.34,395000:-11.94,430000:-4.37,445000:-1.17,450000:+0.00,455000:+1.01,465000:+3.20,500000:+10.86,570000:+26.34,630000:+39.88,700000:+56.03,770000:+72.77,830000:+87.49,900000:+105.41,970000:+124.09,2500000:+523.01,6000000:+1464.79
D coverage_e 300000=100000:-1.34,200000:-0.58,300000:+0.00,500000:+0.68,1000000:+4.04
D coverage_f 1000=1000:+0.00,2000:+0.17,5000:+0.42
C autoclub|Interinsurance Exchange of the Automobile Club|146.10
L HO_BASE:144.50,FEE:1.60
D aop_deductible 1000=500:+20.98,750:+7.59,1000:+0.00,1500:-11.45,2000:-16.93,3000:-21.06,5000:-25.36,10000:-28.73,15000:-51.90,20000:-63.44,25000:-71.53,30000:-77.34,50000:-90.49
D coverage_a 450000=60000:-120.65,90000:-115.51,110000:-110.96,130000:-105.66,150000:-99.59,170000:-92.85,190000:-86.53,220000:-76.17,250000:-64.54,280000:-54.09,320000:-40.02,350000:-29.15,360000:-26.54,400000:-16.00,440000:-3.62,450000:+0.00,460000:+2.45,480000:+9.44,550000:+32.95,650000:+77.19,750000:+98.00,850000:+116.62,950000:+147.71,2000000:+475.47,4000000:+1099.41,10000000:+2982.24
示例:租客
同一邮编下的另一户家庭:一位 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}
assumptions: [{"assumed":[],"field":"property.losses","high_impact":true}]
tighten_by: property.losses
not_priced: usaa:USAA quotes only military members, veterans and their families; set military_affiliation to quote it.
C farmers|Fire Insurance Exchange|29.88
L RENTERS_BASE:29.17,FEE:0.42,FEE:0.30
D deductible 500=100:+5.89,250:+1.85,500:+0.00,1000:-2.61,1500:-4.29,2500:-6.73
D coverage_c 30000=4000:-16.33,10000:-11.95,17000:-7.15,23000:-3.87,29000:-0.59,30000:+0.00,31000:+0.51,37000:+3.79,43000:+7.07,49000:+10.36,55000:+13.64,62000:+17.43,68000:+20.71,74000:+23.99,81000:+27.78,87000:+31.06,93000:+34.35,100000:+38.14,106000:+41.42,112000:+44.70,118000:+47.99,125000:+51.77,131000:+55.06,137000:+58.34,144000:+62.13,150000:+65.41
D coverage_e 100000=100000:+0.00,300000:+3.28,500000:+5.56,1000000:+10.69
示例:汽车 + 租客
同一位 27 岁的租客,现在有一辆汽车。空的 violations 和 accidents 列表表示记录良好,因此驾驶记录相关问题完全不会影响 assumptions:。
{
"profile": {
"zip_code": "90066",
"age": 27,
"prior_insurance": {"insured": true, "carrier": "GEICO", "since": "2019"},
"auto": {"drivers": [{"violations": [], "accidents": []}],
"vehicles": [{"year": 2021, "make": "Honda", "model": "Civic", "annual_mileage": 9000}]},
"property": {"year_built": 1978, "square_feet": 850}
},
"lines": {
"auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500},
"renters": {"coverage_c": 30000, "coverage_e": 100000, "coverage_f": 1000, "deductible": 500}
},
"carriers": ["farmers", "mercury"]
}
由于现在提供了记录、里程和保险历史,汽车险的 assumptions: 缩减为四项,tighten_by: 缩减为三项。
租客险部分会声明其自身的住宅替代信息。Mercury 只为汽车险定价;Farmers 为两个险种都定价。
Q CA auto sel={"bi":"100/300","coll_deductible":500,"comp_deductible":500,"pd":100}
state_notes: California's legal minimum liability is $30,000 per person / $60,000 per accident bodily injury and $15,000 property damage. California law bars insurers from pricing auto insurance on credit or gender (Cal. Ins. Code § 1861.02 (Prop 103); 10 CCR § 2632.5), so they don't change these prices.
assumptions: [{"assumed":16,"field":"auto.drivers[].age_first_licensed","high_impact":true,"note":"CA Good Driver discount (at least 20% off every CA price here, INS §1861.025) is granted on this assumption: it rates the applicant as licensed 3+ years. If they were first licensed less than 3 years ago, these prices are understated — send auto.drivers[].age_first_licensed (or date_first_licensed / years_licensed on the same driver) and re-quote."},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":null,"field":"occupation","high_impact":true},{"assumed":null,"field":"memberships","high_impact":true}]
tighten_by: auto.drivers[].age_first_licensed,occupation,memberships
C mercury|Mercury Insurance Company|289.94
L BI:66.80,PD:52.55,UMBI:17.38,MEDPAY:1.05,COMP:23.50,COLL:128.67
D bi 100/300=30/60:-11.50,50/100:-7.96,100/300:+0.00,250/500:+14.60,300/300:+15.04,500/500:+27.43
D pd 100=15:-9.52,25:-7.61,50:-3.43,100:+0.00,250:+3.05,300:+4.57
D coll_deductible 500=100:+25.74,200:+19.30,250:+16.09,500:+0.00,1000:-12.87,2000:-38.60,2500:-51.47
D comp_deductible 500=25:+34.59,50:+24.03,100:+14.79,200:+8.19,250:+3.70,500:+0.00,1000:-3.70,2000:-7.66,2500:-10.83
C farmers|Farmers Insurance Exchange|435.00
L BI:123.00,PD:82.17,UMBI:28.33,UMPD:1.50,MEDPAY:13.33,COMP:34.00,COLL:150.17,FEE:2.50
D bi 100/300=30/60:-26.17,50/100:-16.00,100/300:+0.00,250/500:+10.83,500/500:+26.17,500/1000:+32.83
D pd 100=15:-10.00,25:-5.67,50:-1.67,100:+0.00,250:+1.50,500:+3.50
D coll_deductible 500=250:+34.67,500:+0.00,750:-15.50,1000:-26.50,1500:-42.17,2500:-63.50,5000:-98.17
D comp_deductible 500=100:+23.67,250:+9.17,500:+0.00,750:-7.17,1000:-10.67,1500:-13.50,2500:-18.83,5000:-21.17
Q CA renters sel={"coverage_c":30000,"coverage_e":100000,"coverage_f":1000,"deductible":500}
assumptions: [{"assumed":[],"field":"property.losses","high_impact":true}]
tighten_by: property.losses
not_priced: mercury:Foresee couldn't get a quote.
C farmers|Fire Insurance Exchange|29.88
L RENTERS_BASE:29.17,FEE:0.42,FEE:0.30
D deductible 500=100:+5.89,250:+1.85,500:+0.00,1000:-2.61,1500:-4.29,2500:-6.73
D coverage_c 30000=4000:-16.33,10000:-11.95,17000:-7.15,23000:-3.87,29000:-0.59,30000:+0.00,31000:+0.51,37000:+3.79,43000:+7.07,49000:+10.36,55000:+13.64,62000:+17.43,68000:+20.71,74000:+23.99,81000:+27.78,87000:+31.06,93000:+34.35,100000:+38.14,106000:+41.42,112000:+44.70,118000:+47.99,125000:+51.77,131000:+55.06,137000:+58.34,144000:+62.13,150000:+65.41
D coverage_e 100000=100000:+0.00,300000:+3.28,500000:+5.56,1000000:+10.69
工具 2:live_carrier_quotes
用途:在保险公司自己的报价网站上确认报价估算。
此工具具有幂等性:首次调用会委派计算机操作代理;使用相同参数再次调用时,会收集首次调用的进度和结果。
实时派发会将用户的真实信息提交给保险公司,保险公司可能会进行软性信用查询。调用工具前会征得用户同意。
Foresee 只收集报价;不会收取付款或签订保险合同。
输入参数
| 参数 | 类型 | 必填 | 详情 |
|---|---|---|---|
profile | object | 是 | 与 quote_insurance 字段相同 — 评分事实 |
lines | object | 是 | 每个要执行的险种各对应一个键,每个值是该险种的询价要求(见下文);多个键会委托打包询价 |
user_authorization | string | 是 | 用户在聊天中的确认原文(例如 yes, go ahead) |
identity | object | 通常 | 用户的详细信息。 |
carriers | string[] | 否 | 限定保险公司范围;默认为所有针对这些险种和州有已验证询价流程的保险公司 |
lines
| 险种 | 询价要求 | 原因 |
|---|---|---|
auto | 必填 — 与 quote_insurance 相同的四个维度(bi、pd、coll_deductible、comp_deductible),且必须是实际数字 | 代理会在保险公司的表单中填写这些限额和免赔额 |
home | 无 — {"home": null} | 保险公司自己的表单会为其套餐定价(住宅金额取自其重置成本估算);代理会报告其选择的方案。若提供询价要求,会明确拒绝,而不会悄悄忽略 |
renters | 必填 — coverage_c、coverage_e、coverage_f、deductible,且必须是实际金额 | 代理会在表单中填写用户提供的数字,而不是接受默认值;Foresee 绝不会凭空编造这些数字 |
一次提供多个键会委托打包询价:对于承保所有指定险种的保险公司,代理会逐步完成其多险种报价流程,并报告每个险种的保费以及该公司的打包总价;只承保部分险种的保险公司,则只会为这些险种执行询价。打包不会改变各险种的询价规则。
identity
| 字段 | 类型 | 必填 | 详情 |
|---|---|---|---|
first_name | string | 是 | 法定名字 |
last_name | string | 是 | 法定姓氏 |
dob | string, YYYY-MM-DD | 是 | |
street | string | 是 | 街道地址(第 1 行) |
unit | string | 否 | 公寓/单元号(第 2 行) |
city | string | 是 | |
zip_code | string | 否 | 仅当与个人资料中的信息不同时填写 |
email | string | 是 | 保险公司会将报价发送到此处 |
phone | string | 否 |
响应
| 字段 | 含义 |
|---|---|
status | in_progress / partial / complete — 使用相同参数重新调用以获取结果 |
agents | 每家保险公司对应一条记录(见下文) |
note | 下一步操作,例如重新调用的时间,或说明已返回先前运行的结果 |
authorization_recorded | 在回执中:在任何保险公司看到风险信息之前,已存储同意记录 |
skipped | 表单需要个人资料中缺失的信息的保险公司(missing_facts,并注明所需信息) |
not_dispatched | 本次运行不会进行实时报价、但提供估算的保险公司;每家都包含 by 和 detail:by: carrier 是保险公司自己的答复(例如,它只通过代理在该地区销售);by: foresee 表示 Foresee 无法获取实时报价 — 估算结果绝不会悄然消失 |
needs | 遇到 missing_facts 拒绝时:需要向用户收集的各保险公司信息,并附上准确的架构路径 — 对于封闭词汇字段,还会列出可接受的 values |
assumptions | 询价流程中已确定为声明的“无索赔”答案、但用户未明确提供的表单事实:个人资料路径(field)和提交的值(assumed)— 返回结果时必须一并转达所有这些信息 |
error / detail | 每次拒绝都是结构化的 {"error", "detail"} 字典 |
每条 agents 记录:
| 字段 | 适用时机 | 含义 |
|---|---|---|
carrier_key、carrier | 始终 | 名录键 + 显示名称 |
status | 始终 | in_progress / complete / missing_facts / not_quoted / 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 | 已拒绝 | 保险公司审核了详细信息并拒绝报价。这是答复,不是错误 — 请转达 |
fields + detail | 缺少信息 | 保险公司的表单要求个人资料中未包含的信息:每条记录都包含 ask 和答案的 field 路径。向用户询问,然后合并答案并将 carriers 设为该保险公司后重新调用 |
detail | 未报价 / 失败 | Foresee 无法获取该保险公司的报价(not_quoted:目前尚不支持此个人资料;failed:本次未能获取)。请如实说明 — 绝不能说保险公司拒绝了用户 |
拒绝
每次拒绝都是结构化的 {"error", "detail"} 对象 — 除非下表另有说明,否则不会向任何保险公司提交任何信息。
| 代码 | 适用情况 | 操作 |
|---|---|---|
profile_required | 家庭信息放在顶层,未使用 profile 包装 | 按拒绝信息中 example_arguments 所示,将信息包装后重新调用 |
authorization_required | 未经用户同意就调用 | 说明同意相关事实,取得用户肯定答复,并将原文传入 user_authorization |
bad_identity | drivers_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
}
}
]
}