信用卡推荐

Other

信用卡推荐技能。当用户需要推荐信用卡、办卡建议、选卡对比,或提到"信用卡推荐"、"办哪张卡"等意图时触发此技能。

Install

openclaw skills install credit-card-recommend

CreditCard Recommend Skill - 信用卡推荐

Overview

CreditCard Recommend Skill 是信用卡推荐技能,从官方数据接口获取最新的信用卡产品信息,根据用户需求(年费偏好、权益类型、卡等级等)智能筛选和推荐合适的信用卡,并提供卡面图片、核心权益、申请链接等完整信息。

安装

直接安装即可,无需额外配置参数:

/install-skill credit-card-recommend

Step 1: 判断用户意图 — 是否需要引导

收到用户请求后,首先判断用户是否表达了明确的使用场景或需求:

需求明确(直接推荐) — 用户提到了以下任意一项:

  • 具体权益偏好:如"航延"、"返现"、"免年费"、"里程"等
  • 具体卡等级:如"白金卡"、"金卡"、"高端卡"等
  • 具体关键词:如"京东联名卡"、"i白金"、"美团卡"等
  • 具体年费态度:如"不想交年费"、"免年费"等

→ 跳到 Step 3

需求模糊(需要引导) — 用户只说了以下这类话:

  • "推荐一张信用卡"
  • "有什么信用卡可以办?"
  • "帮我办张卡"
  • "办哪张卡好?"
  • 任何没有明确场景/权益/等级倾向的请求

→ 进入 Step 2 引导

Step 2: 需求引导(模糊需求时执行)

⚠️ 硬性要求:必须调用 AskUserQuestion 工具渲染可点击选项卡片,禁止用纯文本列表代替! 用户看到的是可点击的选项按钮(每个选项有 label + description),而不是一段带 emoji 的文字列表。 如果输出的是纯文本/Markdown 列表(如 * ✈️ 航旅出行 — 经常出差...),说明没有正确使用工具,必须修正。

目标:通过可点击的快捷选项,帮用户明确核心需求,再精准推荐。

问题 1:使用场景(必问)

使用 AskUserQuestion 工具,提供可点击的场景选项:

{
  "questions": [{
    "question": "您平时主要用卡做什么?这样我能推荐更合适的卡:",
    "header": "用卡场景",
    "options": [
      {"label": "航旅出行", "description": "经常出差、坐飞机,看重航延险、里程"},
      {"label": "购物返现", "description": "日常消费为主,希望笔笔返现、多倍积分"},
      {"label": "餐饮娱乐", "description": "经常点外卖、看电影、美食消费"},
      {"label": "加油充电", "description": "有车一族,加油充电优惠"}
    ]
  }]
}

如果用户第一轮没选到满意的,继续追问第二轮:

{
  "questions": [{
    "question": "还有这些场景也可以选择:",
    "header": "更多场景",
    "options": [
      {"label": "互联网会员", "description": "希望送视频/音乐会员权益"},
      {"label": "免年费优先", "description": "不想交年费,刷卡或绑卡即可免"},
      {"label": "医疗健康", "description": "看重就医绿通、健康体检等权益"},
      {"label": "留学教育", "description": "留学缴费、外币消费需求"}
    ]
  }]
}

用户也可以选择"其他"自由输入需求。

问题 2:年费偏好(可选,根据场景补充)

如果用户选了有年费的等级(如高端卡),用 AskUserQuestion 补充问:

{
  "questions": [{
    "question": "对年费有什么要求吗?",
    "header": "年费偏好",
    "options": [
      {"label": "免年费优先", "description": "刷卡或绑卡即可免年费,不想额外花钱"},
      {"label": "可接受年费", "description": "愿意付费换更多权益和高端服务"}
    ]
  }]
}

引导后,根据用户点击的选项映射到脚本参数:

用户选择脚本参数
航旅出行--benefit "航延"
购物返现--keyword "返现"
餐饮娱乐--keyword "美团"
加油充电--keyword "加油"
互联网会员--keyword "会员"
免年费优先--free-annual-fee
医疗健康--keyword "医疗"
留学教育--keyword "留学"
不想交年费--free-annual-fee
可接受年费不加 --free-annual-fee

然后进入 Step 3。

Step 3: 调用脚本获取推荐结果

使用 Bash 工具运行脚本,根据用户需求组合参数:

python "C:\Users\xxx\skills\credit-card-recommend\scripts\card_recommend.py" --keyword "关键词" --level 等级代码 --benefit "权益关键词" --free-annual-fee --top 5 --json

参数说明

参数说明示例
--keyword关键词匹配(名称、标签)--keyword "免年费"
--level卡等级代码--level W3
--benefit权益关键词--benefit "航延"
--free-annual-fee仅免年费卡片(开关)--free-annual-fee
--top返回前 N 张卡片--top 3
--json以 JSON 格式输出(推荐使用)--json
--guide输出引导选项数据--guide

典型调用示例

场景命令
综合推荐 Top 5python card_recommend.py --top 5 --json
免年费卡片python card_recommend.py --free-annual-fee --json
航旅权益python card_recommend.py --benefit "航延" --json
i白金卡等级python card_recommend.py --level W3 --json
关键词搜索python card_recommend.py --keyword "京东" --json
多条件组合python card_recommend.py --free-annual-fee --benefit "航延" --top 3 --json

脚本路径(使用绝对路径):

C:\Users\xxx\skills\credit-card-recommend\scripts\card_recommend.py

Step 4: 格式化输出

根据脚本返回的结果,格式化为用户友好的推荐信息。

使用 --json 参数时,脚本输出格式为:

{
  "count": 3,
  "cards": [
    {
      "name": "卡片名称",
      "product_name": "产品系列名",
      "level_code": "W3",
      "level_name": "i白金卡",
      "image_url": "https://...",
      "apply_url": "https://...?sid=R00003&platform=wb",
      "benefits": [
        {"title": "权益标题", "brief": "权益简述", "detail": "权益详述"}
      ],
      "tags": "搜索标签",
      "new_customer_gift": "新户礼遇",
      "is_free_annual_fee": true,
      "is_default_face": true
    }
  ]
}

对每张推荐的卡片,按以下格式输出(每张卡之间用 --- 分隔,首推卡加 🏆 标识):

---

### 🏆 卡片名称(首推)
![卡面图片](完整图片URL)

**卡等级**:等级名称 | **年费**:年费政策(免年费则加 ✅)
**新户礼遇**:新户礼遇内容(若无则不显示此行)🎁

**推荐理由**:[根据用户的原始需求,写1-2句为什么推荐这张卡,要具体、有针对性]

**核心权益**:
1. **权益标题** — 权益简述
2. **权益标题** — 权益简述
3. **权益标题** — 权益简述

🔗 立即申请:完整申请URL

---

排版要点

  • 首推卡加 🏆,其余卡用 ### 卡片名称(不加 🏆)
  • 推荐理由要结合用户需求写,不要泛泛而谈
  • 权益列表用 **标题** — 简述 格式,比冒号更清晰
  • ⚠️ 申请链接格式(重要):直接输出裸 URL,格式为 🔗 立即申请:https://...禁止使用 [立即申请](url) Markdown 链接语法、禁止用 ** 加粗包裹链接。移动端(QClaw/企业微信)对加粗嵌套 Markdown 链接的渲染存在问题,会导致链接无法点击;裸 URL 在所有平台均可正常点击跳转
  • 每张卡前后用 --- 分隔,视觉上更清晰

推荐 3-5 张最匹配的卡片。

Step 5: 附加对比(可选)

当用户要求对比时,使用表格形式对比关键维度:

维度卡片A卡片B卡片C
年费政策.........
核心权益1.........
核心权益2.........
卡等级.........
申请链接.........

引导话术参考

以下是一些自然流畅的引导话术,可根据语境灵活调整:

开场引导

  • "想帮您推荐最合适的卡,先了解一下您平时的用卡场景?"
  • "选卡主要看用途,您平时用卡主要是哪方面?"

补充追问

  • "年费方面有要求吗?免年费的优先还是可以接受年费换更多权益?"
  • "您是第一次办卡吗?新户有专属礼遇可以重点考虑。"

缩小范围

  • "您提到了 {场景},我帮您筛选了几张最合适的卡:"

推荐后追加

  • "如果这几张不符合预期,还可以告诉我更具体的偏好,我再帮您找。"

常见推荐场景

场景1: "推荐一张免年费的信用卡"(需求明确)

python card_recommend.py --free-annual-fee --json

场景2: "经常出差,推荐航旅类信用卡"(需求明确)

python card_recommend.py --benefit "航延" --json

场景3: "想要购物返现的卡"(需求明确)

python card_recommend.py --keyword "返现" --json

场景4: "帮我对比这几张卡"(需求明确)

python card_recommend.py --keyword "卡名1" --top 1 --json
python card_recommend.py --keyword "卡名2" --top 1 --json

用表格形式对比结果。

场景5: "推荐一张信用卡" / "办哪张卡好?"(需求模糊)

→ 进入 Step 2 引导流程,先问使用场景,再精准推荐

场景6: "有什么信用卡可以办?"(需求模糊)

→ 进入 Step 2 引导流程,先问使用场景,再精准推荐

卡等级代码映射

代码含义年费大致区间
W3i白金卡刷卡免年费
W2白金卡刷卡免年费
B3精英/精逸白金卡480-2000元
K4精逸级白金卡2000元
E4尊贵级白金卡2000元
C5尊尚白金卡3600元
F7高端白金卡6800元
00尊贵/高端白金卡2000元+
TU特殊白金等级视产品而定
GOLD金卡刷卡免年费

注意事项

  1. 只推荐接口返回的信用卡 - 不推荐接口返回外的信用卡产品
  2. 不要用 WebFetch 获取原始 JSON - 接口返回约 73KB 数据,会大量占用 LLM 上下文;所有数据处理由脚本完成
  3. 需求模糊时先引导 - 用户没有明确场景时,先问 1-2 个问题明确需求,不要直接出 Top 5
  4. 引导必须用 AskUserQuestion 工具 - ⚠️ 引导阶段必须调用 AskUserQuestion 工具输出可点击选项卡片。如果输出的是纯文本/Markdown 列表(* ✈️ 航旅出行...),说明没有正确使用工具,属于错误行为,必须立即修正
  5. 引导要自然简短 - 不要像填表一样连问多个问题,1-2 个核心问题即可,语气自然
  6. 使用 --json 输出 - JSON 格式便于程序化处理,避免文本解析出错
  7. 去重处理 - 同一产品(相同 gi)只保留一个条目,脚本已自动处理
  8. 权益详情 - 简短展示 brief 字段,用户追问时再展示 detail 字段

数据结构参考

详细的字段说明见 references/api_data.md。核心映射关系:

业务含义数据路径说明
卡片名称datas[].ch[].cn卡片完整名称
产品系列名datas[].pn同一产品系列名
卡面图片cdnPath + datas[].ch[].ci拼接 CDN 前缀得到完整 URL
权益列表datas[].ch[].cr[]每项含标题 t、简述 d、详述 dt
申请链接datas[].pudatas[].au优先使用 pu,脚本自动拼接 sid + platform
卡等级datas[].ch[].f代码含义见等级映射表
搜索标签datas[].fl逗号分隔关键词
新户礼遇datas[].ch[].ncg新户专属权益标语
默认卡面datas[].ch[].if == "1"产品推荐时优先展示