Foresee
oficialO Foresee permite que assistentes de IA comparem seguros residenciais e de automóveis entre todas as seguradoras e opções de cobertura, fornecendo estimativas de cotação instantâneas, precisas e detalhadas.
O que você pode fazer com Foresee MCP?
-
Compare home and auto insurance quotes — Peça estimativas instantâneas e detalhadas de cotações em várias seguradoras e opções de cobertura em uma única ligação via
quote_insurance. -
Get live carrier confirmations — Solicite verificação de cotações em tempo real diretamente nos sites das próprias seguradoras, com consentimento, usando
live_carrier_quotes. -
Price auto coverage with specific limits — Especifique danos corporais, danos materiais e franquias (ex.:
bi,coll_deductible) para ver custos mensais detalhados por seguradora. -
Estimate home or renters policies — Forneça detalhes do imóvel e valores de cobertura (ex.:
coverage_a,deductible) para receber preços de moradia, responsabilidade civil e bens pessoais. -
Identify missing facts that move prices — Pergunte quais campos de perfil omitidos (ex.:
annual_mileage,prior_insurance) mais afetam as cotações, viatighten_byeassumptionsnas respostas.
Servidor MCP hospedado
npx add-mcp 'https://agents.go-foresee.com/mcp'Instala no Claude Code, Codex, Cursor e outros
Documentação
Documentação
Para agentes de IA: o índice do site está em /llms.txt e o texto completo está em /llms-full.txt.
O Foresee permite que assistentes de IA comparem seguros de automóveis e residenciais entre todas as seguradoras e opções de cobertura, fornecendo estimativas de cotação instantâneas, precisas e detalhadas.
Usando o Foresee
O Foresee hospeda dois servidores MCP:
Usuários que desejam uma estimativa de cotação simples e sem fricção, sem abrir mão de suas informações pessoais (PII), usam:
https://mcp.go-foresee.com/mcp
Usuários que também desejam confirmar as estimativas de cotação diretamente com as seguradoras podem acionar os agentes de uso de computador do Foresee por meio de:
https://agents.go-foresee.com/mcp
Nenhum dos servidores exige autenticação.
Ferramentas
O Foresee publica duas ferramentas nos servidores MCP:
| Ferramenta | Finalidade | agents. | mcp. |
|---|---|---|---|
quote_insurance | Gerar estimativas de cotação instantâneas, precisas e detalhadas | ✅ | ✅ |
live_carrier_quotes | Confirmar estimativas de cotação com as seguradoras | ✅ | ❌ |
Ferramenta 1: quote_insurance
Finalidade: gerar estimativas de cotação instantâneas e detalhadas das seguradoras suportadas pelo Foresee, abrangendo as linhas e os estados atualmente atendidos, em uma única chamada.
Parâmetros de Entrada
| Parâmetro | Tipo | Obrigatório | Detalhes |
|---|---|---|---|
profile | objeto | sim | ver Perfil |
lines | objeto | sim | As chaves são as linhas a precificar (auto, home, renters); os valores são as opções de cobertura dessa linha (ver Opções de cobertura) |
carriers | string[] | não | Padrão: "todas as seguradoras" |
include_failures | booleano | não | true |
Perfil
Perfil Principal
Há uma entrada principal profile, além de blocos adicionais para seguro de automóvel e residencial/locatário.
Os únicos campos obrigatórios são idade (ou dob), CEP e (para seguro de automóvel) dados do veículo.
Campos opcionais omitidos tornam-se premissas declaradas: escolhemos uma substituta conservadora, reportada como assumptions — ex.: auto.vehicles[].annual_mileage = 12000, com uma entrada tighten_by listando as premissas que mais moveriam o preço. prior_insurance significa seguro para a mesma linha; companion_policies significa seguro para uma linha diferente.
| Campo | Tipo | Obrigatório |
|---|---|---|
zip_code | string | sim |
age | inteiro | sim |
dob | string, YYYY-MM-DD | alternativa aceita para age |
city | string | não |
gender | string | não |
marital_status | string | não |
education | string | não |
employment_status | string | não |
occupation | string | não |
credit_range | string | não |
home_ownership_status | string | não |
residence_type | string | não |
military_affiliation | string | não |
memberships | string[] | não |
effective_date | string | não |
prior_insurance | objeto | não |
companion_policies | objeto[] — {line, carrier} | não |
companion_policies lista as apólices que a família já possui, cada uma com a seguradora que a emite — {"line": "home", "carrier": "State Farm"}. O desconto de múltiplas apólices de uma seguradora se aplica apenas a uma apólice que ela emite, portanto, uma apólice existente sem seguradora não gera desconto, e a cotação solicita a seguradora em tighten_by.
Perfil de Seguro de Automóvel
| Campo | Tipo | Obrigatório |
|---|---|---|
auto.vehicles[].year | inteiro | sim |
auto.vehicles[].make | string | sim |
auto.vehicles[].model | string | sim |
auto.vehicles[].ownership | string | não |
auto.vehicles[].annual_mileage | inteiro | não |
auto.vehicles[].primary_use | string | não |
auto.vehicles[].garaging_zip | string | não |
auto.drivers[].relation | string | não (self para o primeiro) |
auto.drivers[].dob | string | não |
auto.drivers[].years_licensed | inteiro | não |
auto.drivers[].accidents | objeto[] | não |
auto.drivers[].violations | objeto[] | não |
auto.drivers[].sr22_required | booleano | não |
accidents e violations são listas de entradas datadas — {"on": "2025-01", "kind": "speeding"}, {"on": "2023-06-15", "at_fault": true} — onde uma lista vazia indica um histórico limpo. Uma entrada sem on (ou uma violação sem kind) é recusada, indicando seu caminho.
Perfil de Seguro Residencial e de Locatário
| Campo | Tipo | Obrigatório |
|---|---|---|
property.year_built | inteiro | não |
property.construction_type | string | não |
property.roof_type | string | não |
property.square_feet | inteiro | não |
property.protection_class | string | não |
property.replacement_cost | inteiro | não |
property.devices | string[] | não |
property.losses | objeto[] | não |
Opções de cobertura
Cada chave em lines recebe as opções de cobertura dessa linha. Nada é precificado com um padrão do servidor: as opções que você passar são as que serão precificadas.
Automóvel
| Opção | Tipo | Obrigatório | O que cobre |
|---|---|---|---|
bi | string | sim | Responsabilidade por danos corporais: lesões que você causar a outras pessoas. Limite por pessoa/acidente em milhares de R$, ex.: "100/300" |
pd | inteiro | sim | Responsabilidade por danos materiais: danos que você causar aos carros e propriedades de outras pessoas. Limite em milhares de R$, ex.: 100 |
coll_deductible | inteiro | sim | Colisão: danos ao seu próprio carro em um acidente, independentemente de quem seja o culpado. A franquia que você paga por sinistro, em reais |
comp_deductible | inteiro | sim | Compreensivo: danos ao seu próprio carro por qualquer coisa que não seja um acidente — roubo, incêndio, granizo, vandalismo, atropelamento de animal. A franquia que você paga por sinistro, em reais |
um | string | não | Motorista não segurado/subsegurado: suas lesões quando o motorista culpado não tem seguro ou tem seguro insuficiente. Limite por pessoa/acidente em milhares de R$, ex.: "100/300" |
medpay | inteiro | não | Pagamentos médicos: contas médicas para você e seus passageiros, independentemente de quem seja o culpado. Limite em reais, ex.: 5000 |
Residencial
| Opção | Tipo | Obrigatório | O que cobre |
|---|---|---|---|
coverage_a | inteiro | sim | Moradia: reconstrução da casa em si. Limite em reais, geralmente o custo de reposição |
coverage_e | inteiro | sim | Responsabilidade pessoal: lesões ou danos pelos quais você é legalmente responsável, dentro ou fora da propriedade. Limite em reais |
coverage_f | inteiro | sim | Pagamentos médicos a terceiros: contas médicas de um convidado após uma lesão em sua propriedade, independentemente de quem seja o culpado. Limite em reais |
aop_deductible | inteiro | sim | Franquia para todos os outros riscos: o que você paga por sinistro para tudo, exceto riscos com franquia própria (como terremoto). Em reais |
As coberturas B (outras estruturas, como uma garagem separada ou cerca), C (propriedade pessoal — seus pertences) e D (perda de uso — custos de moradia enquanto a casa não pode ser habitada) não são solicitadas em reais — elas retornam em sel como proporções da Cobertura A que foram precificadas.
Locatário
| Opção | Tipo | Obrigatório | O que cobre |
|---|---|---|---|
coverage_c | inteiro | sim | Propriedade pessoal: seus pertences. Limite em reais |
coverage_e | inteiro | sim | Responsabilidade pessoal: lesões ou danos pelos quais você é legalmente responsável. Limite em reais |
coverage_f | inteiro | sim | Pagamentos médicos a terceiros: contas médicas de um convidado após uma lesão em sua casa, independentemente de quem seja o culpado. Limite em reais |
deductible | inteiro | sim | O que você paga por sinistro antes de a cobertura começar. Em reais |
coverage_d | inteiro | não | Perda de uso: custos extras de moradia se você precisar se mudar enquanto o local é reparado. Limite em reais |
Formato da resposta
Um resultado precificado chega inteiramente em structuredContent; content está vazio. O detalhe da classificação é o campo dense: texto de máquina compacto, uma seção por linha, mostrado nos blocos response abaixo. Ao lado, ficam os campos principais por linha sob by_line (seguradoras com monthly, confidence_interval, carrier_quote_url, warnings, rated_vs_asked; além de assumptions, tighten_by, failures), e presentation (como apresentar os preços), bundle e skipped no topo. Recusas (profile_required, coverage_required) são JSON simples, sem dense.
| Prefixo | Frequência | Significado |
|---|---|---|
Q | uma vez por linha | O que foi precificado: estado, ramo, seleção de cobertura |
assumptions: | uma vez por linha | Premissas feitas pelo Foresee; high_impact: true significa que esse campo move materialmente a estimativa da cotação |
tighten_by: | uma vez por linha | Os caminhos de perfil dos fatos ausentes que mais moveriam o preço |
not_priced: | quando aplicável | Seguradoras excluídas, com o motivo |
C | uma vez por seguradora | Seguradora, entidade emissora, prêmio mensal (estimativa pontual e intervalo de confiança) |
W | conforme necessário | Uma nota sobre a seguradora acima, ex.: sem página de cotação online |
L | uma vez por seguradora | Custo mensal por cobertura, sob códigos que significam a mesma cobertura em todas as seguradoras (BI, PD, UMBI, MEDPAY, COMP, COLL…); A+B é um prêmio que cobre ambos, FEE uma taxa fixa |
D | por seguradora | Escadas de preço: para cada alavanca de cobertura, cada degrau oferecido como ±R$/mês em relação ao mensal cotado, com tudo o mais mantido na seleção. +0.00 marca o degrau selecionado; (asked X) = X não é oferecido e o preço fica no degrau oferecido mais próximo. Recalcule a partir de D; não faça nova chamada |
Exemplo: automóvel
Uma pessoa de 41 anos no CEP 90066 com um Honda Civic 2021.
A Mercury mostra a célula simples da seguradora; a Travelers precifica por meio de duas possíveis entidades emissoras, então sua célula carrega um segmento ci (o intervalo de colocação). A USAA aparece em not_priced com o motivo da própria seguradora.
{
"profile": {
"zip_code": "90066",
"age": 41,
"auto": {"vehicles": [{"year": 2021, "make": "Honda", "model": "Civic"}]}
},
"lines": {"auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500}},
"carriers": ["mercury", "travelers", "usaa"]
}
Cada campo de perfil omitido retorna como uma premissa declarada — o bloco gordo assumptions: abaixo é causado pela solicitação enxuta acima, e tighten_by: lista as nove respostas que mais moveriam o preço. A Mercury mostra a célula simples da seguradora; a Travelers precifica por meio de duas possíveis entidades emissoras, então sua célula carrega um segmento ci (o intervalo de colocação). A USAA aparece em not_priced com o motivo da própria seguradora.
Q CA auto sel={"bi":"100/300","coll_deductible":500,"comp_deductible":500,"pd":100}
assumptions: [{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":12000,"field":"auto.vehicles[].annual_mileage","high_impact":true},{"assumed":"Commute","field":"auto.vehicles[].primary_use","high_impact":true},{"assumed":15,"field":"auto.vehicles[].one_way_miles","high_impact":true},{"assumed":5,"field":"auto.vehicles[].commute_days","high_impact":false},{"assumed":16,"field":"auto.drivers[].age_first_licensed","high_impact":true,"note":"CA Good Driver discount (at least 20% off every CA price here, INS §1861.025) is granted on this assumption: it rates the applicant as licensed 3+ years. If they were first licensed less than 3 years ago, these prices are understated — send auto.drivers[].age_first_licensed (or date_first_licensed / years_licensed on the same driver) and re-quote."},{"assumed":[],"field":"auto.drivers[].accidents","high_impact":true},{"assumed":[],"field":"auto.drivers[].violations","high_impact":true},{"assumed":false,"field":"prior_insurance.insured","high_impact":true},{"assumed":null,"field":"home_ownership_status","high_impact":false},{"assumed":null,"field":"occupation","high_impact":true},{"assumed":null,"field":"memberships","high_impact":true}]
tighten_by: auto.vehicles[].annual_mileage,auto.vehicles[].primary_use,auto.vehicles[].one_way_miles,auto.drivers[].age_first_licensed,auto.drivers[].accidents,auto.drivers[].violations,prior_insurance.insured,occupation,memberships
not_priced: usaa:USAA: military families only — set military_affiliation to quote.
C mercury|Mercury Insurance Company|235.11
L BI:56.33,PD:44.10,UMBI:16.85,MEDPAY:0.97,COMP:17.49,COLL:99.38
D bi 100/300=30/60:-9.70,50/100:-6.72,100/300:+0.00,250/500:+12.31,300/300:+12.68,500/500:+23.13
D pd 100=15:-7.99,25:-6.39,50:-2.88,100:+0.00,250:+2.56,300:+3.83
D coll_deductible 500=100:+19.87,200:+14.91,250:+12.42,500:+0.00,1000:-9.94,2000:-29.81,2500:-39.75
D comp_deductible 500=25:+25.74,50:+17.88,100:+11.00,200:+6.09,250:+2.75,500:+0.00,1000:-2.75,2000:-5.70,2500:-8.06
C travelers|Travelers Commercial Insurance Company|368.50|ci 327.21-415.00
L BI:149.00,PD:70.17,COMP:15.50,COLL:114.33,UMBI:19.50
D bi 100/300=15/30:-61.67,25/50:-39.33,30/60:-32.83,50/100:-13.50,100/300:+0.00,250/500:+12.50,500/500:+16.67,1000/1000:+52.67
D pd 100=5:-21.50,10:-10.50,15:-6.67,25:-2.83,50:-0.67,100:+0.00,250:+0.50,300:+0.83,500:+1.17
D coll_deductible 500=100:+22.17,250:+13.17,500:+0.00,1000:-19.33,1500:-34.50,2500:-56.50,5000:-86.00
D comp_deductible 500=0:+11.17,50:+9.67,100:+8.00,250:+2.17,500:+0.00,1000:-1.67,1500:-3.67,2500:-6.50,5000:-10.50
Exemplo: residencial
A mesma pessoa de 41 anos de antes, segurando uma casa de alvenaria construída em 1998 com custo de reposição de R$ 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 ecoa B/C/D como as proporções da Cobertura A que foram precificadas. O L de cada seguradora é seu prêmio base (HO_BASE) mais taxas. Os fatos da moradia estão em assumptions:/tighten_by: — aqui, tipo de telhado, classe de proteção e um histórico de sinistros limpo.
Q CA home sel={"aop_deductible":1000,"coverage_a":450000,"coverage_b_pct":0.1,"coverage_c_pct":0.5,"coverage_d_pct":0.2,"coverage_e":300000,"coverage_f":1000}
assumptions: [{"assumed":"Asphalt Shingle","field":"property.roof_type","high_impact":false},{"assumed":1,"field":"property.stories","high_impact":false},{"assumed":2,"field":"property.bathrooms","high_impact":false},{"assumed":1,"field":"property.units","high_impact":false},{"assumed":"owner occupied","field":"property.occupancy","high_impact":false},{"assumed":5,"field":"property.protection_class","high_impact":true},{"assumed":"Attached","field":"property.garage","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"property.losses","high_impact":true}]
tighten_by: property.protection_class,property.losses
C mercury|CALIFORNIA AUTOMOBILE INS CO|123.67
L HO_BASE:118.76,FEE:3.75,FEE:1.16,FEE:0.01
D aop_deductible 1000=500:+13.38,1000:+0.00,1500:-5.38,2500:-21.45,3500:-26.58,5000:-37.01,10000:-48.28,25000:-63.01,50000:-72.51
D coverage_a 450000=30000:-90.60,65000:-82.94,95000:-76.38,130000:-68.81,165000:-61.24,195000:-54.76,230000:-47.27,265000:-39.79,295000:-33.39,330000:-25.82,365000:-18.34,395000:-11.94,430000:-4.37,445000:-1.17,450000:+0.00,455000:+1.01,465000:+3.20,500000:+10.86,570000:+26.34,630000:+39.88,700000:+56.03,770000:+72.77,830000:+87.49,900000:+105.41,970000:+124.09,2500000:+523.01,6000000:+1464.79
D coverage_e 300000=100000:-1.34,200000:-0.58,300000:+0.00,500000:+0.68,1000000:+4.04
D coverage_f 1000=1000:+0.00,2000:+0.17,5000:+0.42
C autoclub|Interinsurance Exchange of the Automobile Club|146.10
L HO_BASE:144.50,FEE:1.60
D aop_deductible 1000=500:+20.98,750:+7.59,1000:+0.00,1500:-11.45,2000:-16.93,3000:-21.06,5000:-25.36,10000:-28.73,15000:-51.90,20000:-63.44,25000:-71.53,30000:-77.34,50000:-90.49
D coverage_a 450000=60000:-120.65,90000:-115.51,110000:-110.96,130000:-105.66,150000:-99.59,170000:-92.85,190000:-86.53,220000:-76.17,250000:-64.54,280000:-54.09,320000:-40.02,350000:-29.15,360000:-26.54,400000:-16.00,440000:-3.62,450000:+0.00,460000:+2.45,480000:+9.44,550000:+32.95,650000:+77.19,750000:+98.00,850000:+116.62,950000:+147.71,2000000:+475.47,4000000:+1099.41,10000000:+2982.24
Exemplo: locatário
Uma família diferente no mesmo CEP: um locatário de 27 anos:
{
"profile": {"zip_code": "90066", "dob": "1998-11-11"},
"lines": {"renters": {"coverage_c": 30000, "coverage_e": 100000, "coverage_f": 1000, "deductible": 500}},
"carriers": ["farmers", "usaa"]
}
Q CA renters sel={"coverage_c":30000,"coverage_e":100000,"coverage_f":1000,"deductible":500}
assumptions: [{"assumed":2000,"field":"property.year_built","high_impact":false},{"assumed":5,"field":"property.protection_class","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"property.losses","high_impact":true}]
tighten_by: property.losses
not_priced: usaa:USAA: military families only — set military_affiliation to quote.
C farmers|Fire Insurance Exchange|29.88
L RENTERS_BASE:29.17,FEE:0.42,FEE:0.30
D deductible 500=100:+5.89,250:+1.85,500:+0.00,1000:-2.61,1500:-4.29,2500:-6.73
D coverage_c 30000=4000:-16.33,10000:-11.95,17000:-7.15,23000:-3.87,29000:-0.59,30000:+0.00,31000:+0.51,37000:+3.79,43000:+7.07,49000:+10.36,55000:+13.64,62000:+17.43,68000:+20.71,74000:+23.99,81000:+27.78,87000:+31.06,93000:+34.35,100000:+38.14,106000:+41.42,112000:+44.70,118000:+47.99,125000:+51.77,131000:+55.06,137000:+58.34,144000:+62.13,150000:+65.41
D coverage_e 100000=100000:+0.00,300000:+3.28,500000:+5.56,1000000:+10.69
Exemplo: automóvel + locatário
O mesmo locatário de 27 anos, agora com um carro. Listas vazias violations e accidents significam um histórico limpo, então as perguntas sobre o histórico de direção deixam assumptions: inteiramente de fora.
{
"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"]
}
Como agora fornecemos histórico, quilometragem e histórico de seguro, o assumptions: de automóvel encolhe para oito entradas e seu tighten_by: para cinco. A seção de locatário declara suas próprias substitutas de moradia. A Mercury precifica apenas automóvel; a Farmers precifica ambas as linhas.
Q CA auto sel={"bi":"100/300","coll_deductible":500,"comp_deductible":500,"pd":100}
assumptions: [{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":"Commute","field":"auto.vehicles[].primary_use","high_impact":true},{"assumed":15,"field":"auto.vehicles[].one_way_miles","high_impact":true},{"assumed":5,"field":"auto.vehicles[].commute_days","high_impact":false},{"assumed":16,"field":"auto.drivers[].age_first_licensed","high_impact":true,"note":"CA Good Driver discount (at least 20% off every CA price here, INS §1861.025) is granted on this assumption: it rates the applicant as licensed 3+ years. If they were first licensed less than 3 years ago, these prices are understated — send auto.drivers[].age_first_licensed (or date_first_licensed / years_licensed on the same driver) and re-quote."},{"assumed":null,"field":"home_ownership_status","high_impact":false},{"assumed":null,"field":"occupation","high_impact":true},{"assumed":null,"field":"memberships","high_impact":true}]
tighten_by: auto.vehicles[].primary_use,auto.vehicles[].one_way_miles,auto.drivers[].age_first_licensed,occupation,memberships
C mercury|Mercury Insurance Company|289.94
L BI:66.80,PD:52.55,UMBI:17.38,MEDPAY:1.05,COMP:23.50,COLL:128.67
D bi 100/300=30/60:-11.50,50/100:-7.96,100/300:+0.00,250/500:+14.60,300/300:+15.04,500/500:+27.43
D pd 100=15:-9.52,25:-7.61,50:-3.43,100:+0.00,250:+3.05,300:+4.57
D coll_deductible 500=100:+25.74,200:+19.30,250:+16.09,500:+0.00,1000:-12.87,2000:-38.60,2500:-51.47
D comp_deductible 500=25:+34.59,50:+24.03,100:+14.79,200:+8.19,250:+3.70,500:+0.00,1000:-3.70,2000:-7.66,2500:-10.83
C farmers|Farmers Insurance Exchange|398.00
L BI:111.83,PD:73.33,UMBI:28.33,UMPD:1.50,MEDPAY:13.33,COMP:34.00,COLL:133.17,FEE:2.50
D bi 100/300=30/60:-23.83,50/100:-14.67,100/300:+0.00,250/500:+9.83,500/500:+23.83,500/1000:+29.83
D pd 100=15:-8.83,25:-5.00,50:-1.50,100:+0.00,250:+1.33,500:+3.17
D coll_deductible 500=250:+30.67,500:+0.00,750:-13.67,1000:-23.50,1500:-37.50,2500:-56.33,5000:-87.00
D comp_deductible 500=100:+23.67,250:+9.17,500:+0.00,750:-7.17,1000:-10.67,1500:-13.50,2500:-18.83,5000:-21.17
Q CA renters sel={"coverage_c":30000,"coverage_e":100000,"coverage_f":1000,"deductible":500}
assumptions: [{"assumed":5,"field":"property.protection_class","high_impact":false},{"assumed":"Single","field":"marital_status","high_impact":false},{"assumed":[],"field":"property.losses","high_impact":true}]
tighten_by: property.losses
not_priced: mercury:no filed-rate renters program served in CA yet
C farmers|Fire Insurance Exchange|29.88
L RENTERS_BASE:29.17,FEE:0.42,FEE:0.30
D deductible 500=100:+5.89,250:+1.85,500:+0.00,1000:-2.61,1500:-4.29,2500:-6.73
D coverage_c 30000=4000:-16.33,10000:-11.95,17000:-7.15,23000:-3.87,29000:-0.59,30000:+0.00,31000:+0.51,37000:+3.79,43000:+7.07,49000:+10.36,55000:+13.64,62000:+17.43,68000:+20.71,74000:+23.99,81000:+27.78,87000:+31.06,93000:+34.35,100000:+38.14,106000:+41.42,112000:+44.70,118000:+47.99,125000:+51.77,131000:+55.06,137000:+58.34,144000:+62.13,150000:+65.41
D coverage_e 100000=100000:+0.00,300000:+3.28,500000:+5.56,1000000:+10.69
Ferramenta 2: live_carrier_quotes
Finalidade: confirmar estimativas de cotação nos próprios sites de cotação das seguradoras.
Esta ferramenta é idempotente: a primeira chamada aciona os agentes de uso de computador; chamar novamente com os mesmos argumentos coleta o progresso e os resultados da primeira chamada.
Um envio ao vivo submete os dados reais do usuário às seguradoras, que podem realizar uma consulta suave de crédito. O consentimento do usuário é obtido antes de a ferramenta ser chamada.
O Foresee apenas coleta cotações; ele não recebe pagamentos nem vincula seguros.
Parâmetros de Entrada
| Parâmetro | Tipo | Obrigatório | Detalhes |
|---|---|---|---|
profile | objeto | sim | Mesmos campos que quote_insurance — os fatos da avaliação |
lines | objeto | sim | Uma chave por linha a percorrer, cada valor é a solicitação daquela linha (veja abaixo); várias chaves comissionam caminhadas agrupadas |
user_authorization | string | sim | A afirmação do usuário no chat, verbatim (ex.: yes, go ahead) |
identity | objeto | geralmente | Os detalhes do usuário. |
carriers | string[] | não | Restringe a lista de seguradoras; o padrão é toda seguradora com uma caminhada validada para as linhas + estado |
lines
| Linha | Solicitação | Porquê |
|---|---|---|
auto | obrigatória — os mesmos quatro eixos que quote_insurance (bi, pd, coll_deductible, comp_deductible), como números reais | Os limites e franquias que os agentes solicitam nos formulários das seguradoras |
home | nenhuma — {"home": null} | O formulário da própria seguradora precifica seu pacote (valor da moradia a partir de sua estimativa de custo de reposição); os agentes relatam o que ela escolheu. Uma solicitação fornecida é recusada em voz alta, não ignorada silenciosamente |
renters | obrigatória — coverage_c, coverage_e, coverage_f, deductible, como dólares reais | Os agentes digitam os números do usuário no formulário em vez de aceitar os padrões; a Foresee nunca os inventa |
Várias chaves ao mesmo tempo comissionam caminhadas agrupadas: cada seguradora que cobre todas as linhas nomeadas é conduzida por seu próprio fluxo de cotação multi-linha e relata prêmios por linha além de seu próprio total de pacote; uma seguradora que cobre apenas algumas das linhas é percorrida apenas para essas. As regras de solicitação por linha não mudam com o agrupamento.
identity
| Campo | Tipo | Obrigatório | Detalhes |
|---|---|---|---|
first_name | string | sim | Primeiro nome legal |
last_name | string | sim | Sobrenome legal |
dob | string, YYYY-MM-DD | sim | |
street | string | sim | Endereço (linha 1) |
unit | string | não | Apartamento/unidade (linha 2) |
city | string | sim | |
zip_code | string | não | Apenas quando difere do perfil |
email | string | sim | As seguradoras enviam a cotação para cá |
phone | string | não |
Resposta
| Campo | Significado |
|---|---|
status | in_progress / partial / complete — re-chame com os mesmos argumentos para coletar |
agents | Uma entrada por seguradora (veja abaixo) |
note | O que fazer a seguir, ex.: tempo para re-chamada, ou que os resultados de uma execução anterior foram retornados |
authorization_recorded | No recibo: o registro de consentimento foi armazenado antes de qualquer seguradora ver o risco |
skipped | Seguradoras NÃO acionadas, cada uma com o motivo (no_deterministic_walk, missing_facts com os fatos nomeados) |
not_dispatched | Seguradoras precificadas por motor que este acionamento não percorrerá, com o porquê (held: …, no_walk, not_walked, offline, not_sold) — uma recomendação que a trilha de caminhada não pode confirmar nunca desaparece silenciosamente |
needs | Em uma recusa de missing_facts: fatos por seguradora a coletar do usuário, com caminhos de esquema exatos — e, para campos de vocabulário fechado, os values aceitos |
assumptions | Fatos menores não afirmados do formulário que as caminhadas resolveram como respostas declaradas de "não": o caminho do perfil (field) e o valor enviado (assumed) — repasse cada um com os resultados |
error / detail | Toda recusa é um dict estruturado de {"error", "detail"} |
Cada entrada de agents:
| Campo | Quando | Significado |
|---|---|---|
carrier_key, carrier | sempre | Chave do roster + nome de exibição |
status | sempre | in_progress / complete / failed |
lines | sempre | As linhas que esta caminhada cobre — várias em uma caminhada agrupada |
stage, eta_seconds_remaining | em andamento | Onde a caminhada está; tempo restante contra o fluxo típico da seguradora |
quote.premium | cotado | Verbatim como a página da seguradora imprimiu ("$857.80") — nunca analisado, arredondado ou derivado |
quote.term_months | cotado | O período que o prêmio impresso cobre |
quote.premium_by_line | cotado, caminhada agrupada | O prêmio de cada linha como a página imprimiu, ao lado do total do pacote em quote.premium |
quote.breakdown | cotado | Os itens de linha da própria página, seus próprios rótulos |
quote.bound | cotado, caminhadas mais recentes | Cobertura lida da página precificada — o que o formulário realmente vinculou, vs. o que foi solicitado |
quote.variants | cotado | Pacotes adicionais precificados que a página ofereceu |
quote.quote_number | cotado | O número de recuperação da seguradora, quando a página mostra um |
quote.evidence_recorded | cotado | Existe evidência de captura de tela no servidor (URIs internos nunca trafegam na rede) |
declined: true + detail | recusado | A seguradora revisou os detalhes e recusou cotar. Uma resposta, não um erro — repasse-a |
detail | falhou | As próprias palavras da caminhada sobre onde e por que parou |
Recusas
Toda recusa é um objeto estruturado de {"error", "detail"} — nada foi
enviado a qualquer seguradora a menos que a linha abaixo diga o contrário.
| Código | Quando | O que fazer |
|---|---|---|
profile_required | Fatos do domicílio enviados no nível superior, sem wrapper de profile | Re-chame com os fatos embrulhados como mostrado no example_arguments da recusa |
authorization_required | Chamado sem o consentimento do usuário | Explique os fatos de consentimento, obtenha um sim, passe-o verbatim em user_authorization |
bad_identity | Um drivers_license_number com formato de SSN | SSNs nunca são coletados; envie o número da licença como impresso na licença |
bad_profile | Um campo do perfil falha na validação | detail nomeia o campo |
one_line_per_dispatch | Um mapa lines vazio | Nomeie pelo menos uma linha para percorrer |
unknown_line | Uma linha sem caminhada (ex.: umbrella) | detail lista as linhas que o acionamento ao vivo conhece |
coverage_selection_required | Uma caminhada de auto ou locatário sem limites e franquias completos | Re-chame com os números — as caminhadas digitam valores reais, nunca padrões |
bad_ask | Uma caminhada de residência com solicitação de cobertura | Envie {"home": null} — o formulário da própria seguradora precifica seu pacote |
missing_facts | Nenhum formulário da seguradora solicitada pode ser preenchido a partir do perfil | Peça ao usuário os fatos de needs[].fields[] (usando seus values quando servidos) e re-chame — veja abaixo |
no_carriers | Nenhuma seguradora tem uma caminhada validada para aquela linha + estado | Recorra a quote_insurance |
launch_failed | Os agentes não conseguiram iniciar | Nada alcançou qualquer seguradora — tentar novamente é seguro |
Exemplo: auto
Um domicílio em Fresno confirmando o próprio número da GEICO. O perfil carrega os fatos
que o formulário da GEICO exige (propriedade, momento da compra, seguro anterior, idade
da primeira habilitação…); identity é o candidato real; a solicitação são os mesmos quatro eixos que
quote_insurance.
{
"profile": {
"zip_code": "93722",
"dob": "1954-07-02",
"gender": "Male",
"marital_status": "Married",
"education": "Bachelors",
"employment_status": "Employed",
"occupation": "Accountant or CPA",
"home_ownership_status": "Own",
"prior_insurance": {"insured": true, "limits": "not sure"},
"auto": {
"vehicles": [{
"year": 2024, "make": "Ford", "model": "Maverick",
"ownership": "Financed", "annual_mileage": 11000,
"primary_use": "pleasure", "purchase_date": "2026-08"
}],
"drivers": [{
"relation": "self", "age_first_licensed": 16,
"years_licensed_outside_us": 0, "defensive_driving_course": true,
"accidents": [], "violations": []
}]
}
},
"identity": {
"first_name": "Cornelius", "last_name": "Beaumont", "dob": "1954-07-02",
"street": "4381 W Spruce Ave", "city": "Fresno", "zip_code": "93722",
"email": "cornelius.beaumont@example.com", "phone": "559-555-0164"
},
"lines": {"auto": {"bi": "100/300", "pd": 100, "coll_deductible": 500, "comp_deductible": 500}},
"carriers": ["geico"],
"user_authorization": "yes, go ahead and get me GEICO's real quote"
}
{
"status": "in_progress",
"authorization_recorded": true,
"agents": [
{
"carrier_key": "geico",
"carrier": "GEICO",
"method": "browser_agent",
"detail": "deterministic Foresee agent completing the carrier's own quote flow with the user's details",
"eta_seconds": 480
}
],
"skipped": [],
"note": "1 carrier(s) are being quoted live. Collect results by calling this tool again with the same arguments after a few minutes."
}
Re-chamar com os mesmos argumentos mais tarde coleta a caminhada concluída.
O prêmio é a própria string da página; breakdown são os próprios rótulos da página
(a GEICO imprimiu dois pacotes lado a lado); term_months diz o que o número
cobre — $857,80 por 6 meses, não por mês.
{
"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
}
}
]
}