概述
保险顾问Agent 是一个 AI 驱动的保险产品搜索、推荐、对比与核保服务,覆盖 65家保司 的 483款在售产品,涵盖医疗险、重疾险、意外险、寿险、年金险等全险种。实时数据请查询 GET /health。
本服务面向 Agent 和开发者提供多协议接入,支持结构化数据查询和自然语言对话两种模式。
支持协议
| 协议 | 端点 | 说明 |
|---|---|---|
| MCP | POST /mcp | Streamable HTTP,Model Context Protocol |
| A2A | POST /a2a | Agent-to-Agent Protocol (Google A2A) |
| OpenAI | POST /v1/chat/completions | OpenAI 兼容接口 |
| Chat | POST /chat | 简单聊天 API(JSON body: message, session_id) |
MCP 集成(Quick Start)
MCP 使用 JSON-RPC 2.0 over HTTP。所有请求发送到 POST /mcp,Content-Type 为 application/json。
Step 1: 初始化
curl -X POST https://your-host/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": { "name": "my-agent", "version": "1.0" }
}
}'
响应会包含 Mcp-Session-Id header,后续请求需带上此 header。
Step 2: 发送 initialized 通知
curl -X POST https://your-host/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: <session-id>" \
-d '{
"jsonrpc": "2.0",
"method": "notifications/initialized"
}'
Step 3: 获取工具列表
curl -X POST https://your-host/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: <session-id>" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}'
Step 4: 调用工具
curl -X POST https://your-host/mcp \
-H "Content-Type: application/json" \
-H "Mcp-Session-Id: <session-id>" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "recommend",
"arguments": {
"age": 30,
"gender": "男",
"budget": 5000,
"needs": ["重疾保障", "医疗报销"]
}
}
}'
A2A 集成
A2A (Agent-to-Agent) 协议允许 Agent 之间以任务方式协作。
Agent Card
Agent Card 位于 /.well-known/agent.json,描述了本 Agent 的能力、技能和支持的输入/输出模式。
发送任务
curl -X POST https://your-host/a2a \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tasks/send",
"params": {
"id": "task-001",
"message": {
"role": "user",
"parts": [
{
"type": "data",
"data": {
"tool": "recommend",
"arguments": {
"age": 35,
"gender": "女",
"budget": 8000,
"needs": ["重疾保障"]
}
}
}
]
}
}
}'
两种输入模式
- 结构化模式(data parts):在 parts 中使用
type: "data",指定 tool 和 arguments,获得结构化 JSON 结果 - 自然语言模式(text parts):在 parts 中使用
type: "text",发送自然语言消息,获得自然语言回复
其他方法
tasks/get— 查询任务状态和结果(params: { id: "task-001" })tasks/cancel— 取消进行中的任务(params: { id: "task-001" })
可用工具
| 工具名 | 说明 | 必填参数 | 关键可选参数 |
|---|---|---|---|
get_schema | 获取调用策略和字段优先级 | — | capability |
search_products | 按条件搜索保险产品 | — | category, age, budget, keyword, limit |
get_product_detail | 获取单个产品完整信息 | product_id | — |
compare_products | 对比 2-5 款产品关键维度 | product_ids | age, gender |
recommend | 根据用户画像推荐保险方案(核心工具) | age | gender, budget, needs, family_role, health_conditions, include_reasoning |
get_premium | 查询产品精确保费 | product_id, age | gender |
answer_question | 回答保险知识问题 | question | product_id, synthesize |
check_underwriting | 核保预判(可投保性评估) | health_conditions | age, category, product_ids |
chat | 自然语言多轮对话 | message | session_id |
推荐调用流程
- get_schema — 了解各工具的字段优先级和调用策略
- search_products / recommend — 搜索或获取个性化推荐
- get_premium / compare_products — 查询精确保费或对比多款产品
- check_underwriting — 根据用户健康状况评估可投保性
💡 提示:recommend 工具只需 age 即可调用,信息不全时会返回推荐结果并提示缺失字段。传入 health_conditions 时自动附带核保结论。
会话管理
| 协议 | 会话标识方式 |
|---|---|
| MCP | 通过 Mcp-Session-Id HTTP header 维持会话 |
| A2A | 通过 task ID 标识任务上下文(同一 task ID 可多次 send 实现多轮) |
| Chat API | 通过请求 body 中的 session_id 字段维持多轮对话 |
| OpenAI 兼容 | 通过请求 body 中的 session_id 字段(扩展字段) |
错误码
| 错误码 | 含义 | 说明 |
|---|---|---|
-32601 | Method not found / Unknown tool | 请求了不存在的方法或工具名 |
-32602 | Invalid params | 参数格式错误或缺失必填参数 |
input-required | 需要更多信息 | A2A 任务状态,表示需要用户补充信息后再次发送 |
internal_error | 服务器内部错误 | 后端处理异常 |
限制与说明
- 认证:当前无需 API Key 或认证,可直接调用
- 速率限制:当前无速率限制
- 响应语言:所有响应内容为中文
- 数据更新:产品数据定期更新,保费数据以实际为准
- 能力发现:推荐使用
GET /schema获取完整能力描述和字段说明 - MCP 返回格式:所有工具返回的
content[0].text字段内容永远是稳定的 JSON 字符串,调用方应直接JSON.parse(text)解析。示例:const data = JSON.parse(response.result.content[0].text); - A2A 返回格式:结构化模式下,结果在
task.artifacts[0].parts[0].data中已经是原生对象,无需二次解析