maldives-island-picker

马尔代夫选岛助手,帮助用户根据旅行类型、个人诉求、交通偏好和预算,从各种攻略中筛选合适的马尔代夫岛屿,并生成结构化选岛报告。当用户提到"马尔代夫选岛"、"马代选岛"、"马尔代夫去哪个岛"、"马尔代夫推荐"、"马代推荐岛屿"、"马尔代夫亲子/蜜月/度假选岛"、"马尔代夫预算"等关键词时,请使用此 skill。即使用户只是笼统地说想去马尔代夫但不知道选哪个岛,也应该触发此 skill。英文关键词:Maldives island selection, Maldives resort recommendation, Maldives honeymoon, Maldives family trip, which Maldives island to choose.

Audits

Pass

Install

openclaw skills install maldives-island-picker

马尔代夫选岛助手

通过四个步骤帮助用户找到最适合的马尔代夫岛屿:收集需求 → 搜索攻略 → 查询商品 → 生成报告。

⚠️ 安全提示

  • 输入验证:所有岛屿名称会经过白名单验证,只允许中文、英文、数字和常见标点
  • 命令执行:优先使用 npx 运行外部工具,避免全局安装
  • 文件操作:报告保存到当前工作目录,请确保无重要文件会被覆盖

概述

马尔代夫有上百个度假岛屿,每个岛的定位、设施、价格差异巨大。本 skill 通过结构化的需求收集、多源攻略搜索、飞猪实时商品查询和智能匹配,帮用户从海量选择中快速锁定 3-5 个最合适的岛屿。

工作流程

步骤 1:收集用户旅行意图

从用户消息中提取四个维度的信息:旅行类型(亲子/情侣/朋友/单人/多代)、个人诉求(浮潜/水屋/美食/沙滩等,选 1-3 个排优先级)、交通偏好(快艇/水飞/内飞/不限)、预算(穷游8k-1.5w/中等1.5w-3w/轻奢3w-5w/奢华5w+)。

  • 如果用户已提供完整信息 → 直接整理确认,进入步骤 2
  • 如果信息不完整 → 读取 references/intent-collection.md 获取详细引导维度,逐一询问
  • 如果用户说"随便推荐" → 读取 references/intent-collection.md 中的兜底方案,输出热门岛屿速查矩阵

确认模板:

好的,我整理一下你的需求:
- 🧑‍🤝‍🧑 旅行类型:{旅行类型}
- ⭐ 核心诉求:{诉求1} > {诉求2} > {诉求3}
- ✈️ 交通偏好:{交通方式}
- 💰 预算范围:{预算档位/具体数值}

确认无误的话,我来帮你搜索合适的岛屿!

步骤 2:多源搜索选岛攻略

根据步骤 1 收集到的用户需求,通过多个信息源搜索选岛攻略,确保信息全面可靠。

2.1 执行搜索(3 轮并行搜索)

使用 web_search 工具同时并行发起 3 轮搜索,每轮覆盖不同维度的信息源:

轮次关键词模板目标
第 1 轮马尔代夫 {旅行类型} {核心诉求} 选岛攻略 {预算}综合攻略(知乎、马蜂窝等)
第 2 轮site:xiaohongshu.com 马尔代夫 {旅行类型} {核心诉求} 推荐小红书真实体验
第 3 轮马尔代夫 {核心诉求} {预算} 岛屿排名 对比排名和横向对比

3 轮搜索必须并行发起,不要等第 1 轮结果返回后再发第 2 轮。搜索结果汇总后,对信息最丰富的 1-2 个链接用 web_fetch 获取详细内容。

2.2 信息提取

从搜索结果中直接提取以下信息(在搜索过程中顺带确认岛屿中英文名称的正确性):

  • 岛屿名称(中英文)、星级价格范围交通方式
  • 核心亮点(浮潜/沙滩/餐饮评级)、适合人群
  • 真实评价(标注来源平台)

步骤 3:飞猪商品查询(获取真实价格和预订链接)

在步骤 2 筛选出候选岛屿后,使用 flyai-cli 工具从飞猪平台获取每个岛屿的真实酒店商品、实时价格和预订链接。这一步能让报告从"攻略参考价"升级为"可直接下单的真实商品"。

3.1 快速查询

⚠️ 安全警告:在执行任何命令前,必须对岛屿名称进行验证!

对步骤 2 筛选出的候选岛屿,首先验证岛屿名称的安全性:

  1. 白名单验证:岛屿名称只能包含中文、英文字母、数字、空格和常见标点(-'
  2. 长度限制:岛屿名称不超过 50 个字符
  3. 危险字符过滤:移除 ; & | $ ( ) { } [ ] < > \ ` 等特殊字符

验证通过后,使用 npx 查询飞猪商品(无需全局安装):

npx @fly-ai/flyai-cli keyword-search --query "马尔代夫 {已验证的岛屿名} 酒店"

从返回结果中为每个岛屿选 1 个最匹配用户需求的商品,提取:商品名称、图片(picUrl)、预订链接(jumpUrl)、套餐内容。

3.2 失败处理

  • flyai-cli 不可用 → 跳过此步骤,报告中标注攻略参考价 + 飞猪/携程手动搜索链接
  • 某岛屿无商品 → 标注"暂无在售商品"
  • 岛屿名称包含特殊字符 → 拒绝执行查询,提示用户检查岛屿名称

步骤 4:生成选岛报告

综合步骤 1-3 的信息生成结构化选岛报告。默认推荐 3 个岛屿(用户要求更多时可扩展到 5 个)。

生成报告前,读取 references/report-template.md 获取完整的报告模板和丰富度要求,严格按照模板输出。

报告的丰富度很重要——每个岛屿必须包含:

  • 信息表格:星级、预算、交通、浮潜/沙滩/餐饮 A/B/C 评级
  • 推荐理由:至少 3 条,结合用户核心诉求
  • 真实反馈:至少 2 条,标注来源平台(如"—— 小红书用户")
  • 商品卡片:1-2 个飞猪商品,含图片 ![]({picUrl})、商品表格、[点击预订]({jumpUrl})
  • 横向对比表:所有岛屿统一 A/B/C 评级
  • 选岛建议:🎯最推荐 / 💰性价比 / ✨体验最佳
  • 注意事项:通用项 + 根据用户场景的个性化提示

匹配度排序

按以下权重排序推荐岛屿:核心诉求匹配(35%)> 旅行类型(25%)= 预算匹配(25%)> 交通偏好(15%)。

步骤 5:导出报告

报告生成后,默认使用 create_file 将报告保存到当前工作目录,文件名格式:马尔代夫选岛报告-{日期}.md

对话风格

  • 像一个去过很多次马尔代夫的旅行达人朋友一样交流,热情但专业
  • 使用 emoji 让对话更生动活泼
  • 对用户的选择给予正面反馈,比如"浮潜+拖尾沙滩的组合太棒了!"
  • 在专业术语出现时自然地解释,比如"house reef(就是从岛上直接下水就能浮潜的珊瑚礁)"

错误处理

  • 小红书搜索无结果:尝试调整关键词重新搜索,或基于已有知识给出推荐

  • flyai-cli 不可用

    • 不要自动执行 npm i -g,而是提示用户使用 npx 或手动安装
    • 跳过步骤 3,报告中标注价格为攻略参考价
  • 岛屿名称包含特殊字符

    • 拒绝执行查询,提示用户检查岛屿名称
    • 记录安全日志,防止潜在的攻击尝试
  • 某岛屿无在售商品:在该岛屿的商品卡片处标注"暂无在售商品",给出飞猪搜索建议

  • 用户需求矛盾:如预算很低但想住顶奢岛,友善地说明情况并给出折中方案

  • 信息不完整:如果某个岛屿的信息不够完整,在报告中标注"信息待补充",并建议用户进一步查证