保险产品竞品对比分析器(Competitor Analysis)
帮保险代理人用数据应对客户"别家更便宜/更好"的质疑。客观、中立、可核实,不诋毁同业的红线。
一、三种输入模式(最终都收敛为「对比」)
| 模式 | 触发 | 行为 | |------|------|------| | A. 名称搜索确认 | 用户只给一个产品名称(如"华贵大麦2026") | 联网搜索核实 → 弹确认框让用户确认搜到的就是目标产品 → 进入模式 C(单品基准对比) | | B. 双品直比 | 用户明确给出两款(或多款)产品 | 逐项核实后直接对比,跳过"搜索确认"环节(名称歧义时仍做一次轻量核实) | | C. 单品基准对比 | 用户给一款产品,要"和市面上同类比" | 从产品库/搜索找同险种 3-5 款同类竞品 → 做基准横评 |
模式 A 与 C 的区别:A 是"先确认你指的是哪款",C 是"确认后自动找对手盘"。 三模式最终都走到「第二节的对比流程」。
二、标准对比流程
Step 1 · 解析输入,决定模式
- 含 ≥2 个明确产品名 → 模式 B
- 只含 1 个产品名 → 模式 A(先确认)→ 模式 C
- 只含险种(无具体产品)→ 视为模式 C 的"找该险种头部产品横评"
Step 2 · 搜索与确认(仅模式 A / 名称歧义时)
必须加载 wechat-eco-search 技能做微信生态核实(公众号+视频号+网页三线),同时用 WebSearch 检索「金融监管总局 / 银保监」官网与产品备案信息做交叉验证。
搜索后,用 AskUserQuestion 工具向用户弹出确认框:
- 列出命中的 2-3 个候选(每项显示:公司 / 产品名 / 关键参数如保费·保额·险种)
- 让用户点选「这就是我要的」,或选「都不对(我重新输入)」
- 未确认前,绝不进入对比。确认后才锁定目标产品。
Step 3 · 拉取对比维度数据
- 优先从本地产品库读取结构化
details:D:\workbuddy\skills-data\insurance-plan\products\(按险种分组,24 类文件;字段含年交保费/保障期间/缴费年期/健康告知/可选责任/预定利率/投保年龄/职业类别/等待期/案例) - 产品库缺失或过期 → 用 Step 2 的搜索结果补充,并标注数据来源与时效
- 维度口径见
references/comparison-dimensions.md - ⚠️ 数据兜底:产品库里
company字段常为空、name即公司名(如"华贵人寿"),展示时用name作产品标识,不要留空。
Step 4 · 组装对比数据并渲染(核心输出)
- 把对比数据整理为 JSON。每个 row 必须包含以下字段:
- 基础字段:
产品、年交保费(元)、最高保额、健康告知、等待期、可选责任 - 核心参数(险种专属维度)
核心参数字典:按险种从产品库提取专业维度- 定寿:投保年龄 / 职业类别 / 免责条款数 / 智能核保
- 重疾:重疾种类 / 赔付次数(是否分组) / 中症/轻症种类 / 癌症二次赔 / 心脑血管二次赔 / 三同条款
- 医疗:免赔额 / 续保条件 / 医院范围 / 赔付比例
- 年金:领取方式 / 领取金额 / 保证领取期 / 现价表现
- 优劣势标签:
优势(list)、劣势(list),每条一句话,客观事实
- 基础字段:
- 根据产品数量自动选择布局模式:
- 2 款产品 → 1v1 并排对比模式(左右 VS 对照):
- 额外填充
diff_summary(关键差异点列表,每项含维度/A值/B值/winner) - 输出含:标题(VS标签) → 价格双条形图 → 差异对照表(Grid三列+赢方✔) → 两款并排参数卡片 → 合规条
- 额外填充
- 3+ 款产品 → Multi 多产品横评:
- 输出含:标题栏 → 结论块 → 价格条形图(低→高) → 核心指标矩阵(保额/健告★/等待期) → 详情卡×N(每张含基础参数+险种专属核心参数网格+优劣势标签) → 合规条
- 2 款产品 → 1v1 并排对比模式(左右 VS 对照):
- 调用
references/build_comparison.py渲染为 两种格式:- 图片(PNG):
comparison.png— HTML+CSS 精确排版 + Playwright 截图(2x高清,无错位) - HTML:
comparison.html— 可交互详细版(浏览器查看/打印PDF)
- 图片(PNG):
- 同时给出各产品优劣势点评(基于产品库硬数据)。 ⚠️ 此时不要写任何话术——话术必须先经过 Step 4.5 市场调研。
Step 4.5 · 话术前置市场调研(强制,先于任何话术生成)
铁律:任何话术(含本步差异化话术、Step 5 分场景话术)生成前,必须完成本步调研。绝不允许跳过、直接用模板生成。
- 必须再次加载
wechat-eco-search技能(本 skill 已集成该能力,是话术质量的硬依赖),对主推产品(以及客户最可能拿来比的 1-2 个竞品)做专项搜索。本步目的不是确认产品存在,而是摸清市场对它的真实评价与定位:- 微信生态(公众号测评 / 视频号 / 小红书):该产品"性价比 / 地板价 / 口碑 / 槽点"的真实声音,行业 KOL 怎么评价
- 行业测评:价格定位(是否真为市场低价 / 高性价比标杆)、被反复提及的核心优势、常见客户异议
- 监管 / 停售 / 理赔反馈:是否有负面事件,客观纳入
- 把调研结果沉淀为**「市场画像」**要点(内部使用,不一定要全展示给用户):
- 价格定位:是否市场地板价 / 高性价比标杆?尽量量化(如"同类100万保额年保费低约 X%")
- 真实优势:市场反复提及的 2-3 个卖点(必须来自搜索,不要想当然)
- 真实槽点 / 局限:客户常见顾虑(停售、健告、公司体量、线上服务等)
- 常见异议:客户最常说"别家更便宜 / 更好"的具体场景
- 话术必须基于本步画像落地:把产品的"真优势"讲透、把"真槽点"准备好应对话术,而不是泛泛而谈。
Step 4.6 · 主推差异化话术(基于 Step 4.5 市场画像)
基于 Step 4.5 的市场画像撰写「为什么选它」:
- 必须点出产品的真实市场定位 / 真优势(例:华贵大麦本就是定寿地板价,同口径比多数大牌便宜 X%,且最高保额、可选责任行业顶格)
- 必须预置真实槽点的应对话术(例:停售→"已确认在售替代款 / 以投保时最新规则为准")
- 结构见
references/comparison-dimensions.md第三节,但内容必须来自调研,不得空套模板
Step 5 · 分场景沟通话术(默认不生成,先问)
完成 Step 4.6 后,用 AskUserQuestion 问用户: 「是否需要生成分场景客户沟通话术(面对面 / 微信)?」
- 用户选「要」→ 生成一份 MD 格式话术建议(含:破冰→呈现对比→化解异议→促成 的步骤,分面对面/微信两种场景)。话术内容必须延续 Step 4.5 的市场画像与 Step 4.6 的差异化要点,不得另起炉灶空写。
- 用户选「不要」→ 直接结束,不消耗算力
目的:省算力、提时效。用户没要就不做;要了也必须基于已做的市场调研。
三、合规红线(不可逾越)
- 客观中立,不贬损具体保险公司或产品
- 所有对比结论定性不承诺收益;涉及演示利率/保费须注明口径与时效
- 标注数据来源(产品库版本 + 搜索核实日期),提示"以保单条款为准"
- 不出现"最好/第一/绝对"等绝对化用语
四、渲染工具
references/build_comparison.py(与 skill 同步 v0.2.0):
python build_comparison.py --input 对比数据.json --outdir ./输出目录
技术栈:HTML+CSS Grid/Flexbox + Playwright Chromium 截图(不再使用 matplotlib)
- 自动布局路由:2 款产品 → 1v1 并排 VS 模式(含差异对照表);3+ → Multi 多产品横评
- 险种专属维度:每个 row 支持
核心参数字典(动态展示专业维度网格) - 依赖:
playwright+chromium(已安装到受管 Python workspace) - HTML 双格式天然支持;用户如需 PDF,用浏览器打开 HTML 后「打印→另存为 PDF」即可。
五、能力边界
| 不支持 | 说明 | |--------|------| | 预测收益 / 演示利率承诺 | 仅展示公开数据,不承诺 | | 非人身险(股/基/理财) | 仅覆盖寿/重/医/年/定寿 | | 绕过合规红线的夸大话术 | 一律不生成 | | 实时核保结论 | 以条款+保司为准 |
六、交付前自检
- [ ] 保费已统一「被保人/保额/缴费期」口径
- [ ] 数据来源+核实日期已标注
- [ ] 无"最好/第一/绝对"等绝对化用语
- [ ] 话术基于 Step 4.5 市场画像,非空套
- [ ] PNG 或 HTML 至少一种成功产出
七、版本历史
- v0.2.0:修复脚本末尾 PNG 打印变量名 bug(
png_path→pnd_path,截图后不再崩溃);frontmatter 补author占位符(上架给人用不固化本人姓名);精简 description 至 ≤200 字并露出触发词;新增「能力边界」「交付前自检」两节;脚本注释版本与 skill 同步。 - v0.1.0:初版。
微信扫一扫