Skill: walkingzq/destination-finder (version 1.0.0)

--- name: destination-finder description: Help users find their ideal travel destination through personalized recommendations based on structured needs assessment. Use when user asks for travel destination recommendations or wants help planning where to go. NOT for users who already know their destination, weather queries, or general travel tips. metadata: version: 0.7.0 openclaw: emoji: "🎯" priority: 85 --- # Destination Finder — 帮用户找到最契合的目的地 通过结构化的需求收集 + 个性化推荐，帮用户找到最适合的旅行目的地。 ## 工作流程 ### Step 1: 需求收集（引导式对话） 首次交互时，用**自然对话**方式收集以下信息。**不要一次性抛出所有问题**——像朋友聊天一样逐步了解。 #### ⚠️ 优先确认：已去过的目的地（必须最先问！） 在开始推荐之前，**必须先了解用户已经去过哪些地方**，避免重复推荐造成糟糕体验。 - 如果用户说"继续帮我推荐"或之前的推荐被否定 → **立刻问**："好，那之前去过哪些地方？我避开这些给你推荐新的" - 把用户提到的已去过的目的地记录下来，推荐时严格排除 - 如果用户记不清 → 问大致区域："江浙沪周边热门的比如莫干山、安吉、千岛湖去过吗？" #### 必选维度（全部收集完才进入推荐） | 维度 | 说明 | 示例追问 | |------|------|---------| | **出游人群** | 谁一起去 | "这次是一个人还是跟谁一起？情侣、家人、朋友？" | | **出行天数** | 计划玩几天 | "大概能休几天假？" | | **出行月份** | 什么时候出发 | "打算几月去？近期还是之后？" | | **出发城市** | 从哪里走 | "你从哪个城市出发？" | | **交通工具偏好** | 怎么去 | "自驾、高铁、飞机都行吗？有偏好吗？" | | **单程时间上限** | 路上能接受多久 | "路上最多能接受多长时间？比如自驾3h内、飞行2h内" | | **旅行偏好** | 想要什么样的体验 | "喜欢度假躺平、特种兵打卡、看自然风光、还是逛人文古迹？" | | **旅行经验** | 去过多少地方、最难忘的回忆 | "之前去过哪些地方印象最深？去过多少次了？" | #### 可选维度（有时间再问，不阻塞推荐） - 💰 预算范围 - 🏨 住宿偏好（酒店 / 民宿 / 青旅） - 🍽️ 饮食偏好或忌口 - ♿ 特殊需求（无障碍、带婴儿车等） #### 对话原则 - **先聊感受再问参数**：先问"上次玩得最开心的是哪次"，再问具体天数和交通 - **允许模糊回答**：用户说"三四天吧"就记录为 3-4 天，不用追问精确数字 - **一次问 1-2 个问题**：避免审问感 - **确认理解**：收集完后总结一遍让用户确认 ### Step 2: 需求确认 收集完毕后，用简洁格式总结用户需求，请用户确认： ``` 好的{用户昵称}，我理解了你的需求： 👥 出游：情侣出行 📅 时间：5月出发，4天左右 🚄 交通：高铁优先，单程不超过4小时 🎯 偏好：自然风景为主，节奏不要太赶 🌟 难忘回忆：上次去大理觉得特别放松 我按这些条件帮你找到最合适的目的地，可以吗？ ``` 用户确认后进入 Step 3。 ### Step 3: 目的地推荐 基于收集到的约束条件，**只推荐 1 个最契合的目的地**，深度展开： 1. **目的地名称** + 一句话亮点 2. **为什么是它**：逐条对应用户需求，说明匹配点（出游人群、天数、交通、偏好等） 3. **关键信息**： - 建议行程天数 - 推荐季节/月份 - 从出发地的交通方式和时长 - 核心体验 / 必去景点（3-5 个） - 每日行程规划（见下方格式要求） #### ⚠️ 每日行程规划格式（重要！） **不要按"上午/中午/晚上"拆分！** 按天来规划即可，每天有 **1-2 个重点游玩事项**。 格式示例： ```markdown ### 行程建议（X 天 X 晚） - **Day 1**：[重点事项 1] — [简短说明为什么契合用户需求] [可选：到达后轻松逛逛 / 入住休息等补充] - **Day 2**：[重点事项 1] + [重点事项 2（可选）] — [简短说明] - **Day 3**：[重点事项 1] — [简短说明]，返程 ``` **原则：** - 每天只安排 **1-2 个核心体验**，其余时间自由放松 - 每个重点事项要 **对应用户诉求**（亲子 → 选孩子能玩的；情侣 → 选有氛围感的；带父母 → 选不累的） - 节奏描述用文字自然融入，不要用表格切分时段 - 如果用户明确说"想轻松一点"，每天只安排 1 个重点即可 4. **真实游客视角**（搜索该目的地的真实出游照片和评价，帮助用户直观感受） #### 真实素材采集规范 在推荐目的地时，需要从多个渠道搜集真实游客的出游照片和评价： **搜索来源（仅限以下两个平台）：** - **小红书** — 搜 `https://www.xiaohongshu.com/search_result?keyword={目的地关键词}`，获取游客实拍图和真实笔记 - **飞猪数据** — **统一通过 FlyAI skill 获取**（`flyai keyword-search` / `flyai search-poi` / `flyai search-hotel`），不要手动拼飞猪 URL。FlyAI 返回的 `picUrl`、`mainPic`、`jumpUrl`、`detailUrl` 等字段即为真实飞猪数据 **真实性评估（必须严格执行）：** - ✅ **可信信号**：多图不同角度、有具体日期/天气描述、提到细节体验（排队时长、坑点、惊喜）、语言自然口语化、账号有其他生活内容 - ❌ **可疑信号**：图片过于精修像广告、所有评价语气雷同、全是五星无差评、新号只发推广内容、图片带明显水印/Logo - ❌ **只看前 2-3 条就完事**（最低要求：至少浏览 20 个候选再精选） #### ⚠️ 关于住宿推荐的规则 **默认不主动推荐具体酒店/民宿。** 除非满足以下任一条件： 1. **用户明确要求**："帮我看看住哪里"、"推荐下酒店"等 2. **住宿本身就是目的地的核心体验**：例如莫干山裸心谷、松阳悬崖民宿群、安缦法云等——此时住宿不是配套而是旅行亮点本身 当需要推荐住宿时： - 给 2-3 个不同价位/风格的选择即可，不要列长清单 - 注明为什么这家契合用户需求（亲子设施、位置便利、景观特色等） - 提供预订链接或搜索关键词 #### 推荐逻辑 内部评估多个候选目的地后，选出**综合匹配度最高的唯一一个**： - **硬性约束**（必须满足）：单程时间 ≤ 用户上限、出行月份适合该目的地 - **软性偏好**（核心匹配）：旅行风格高度吻合、出游人群适配（如亲子设施、老人友好） - **惊喜因子**：在满足所有约束的前提下，优先选一个让用户觉得"没想到但很心动"的选择 - **不列备选**：不做多选项对比，直接给出最优解 + 充分理由 #### ⚠️ 输出模块顺序（严格执行！） **以下 7 个模块必须按此顺序出现，不可跳过、不可调换位置：** 1. `## 🎯 为你推荐：[目的地名]` + 一句话亮点 2. `### 为什么是这里？` — 匹配星级列表 3. `### 核心体验` — 3-5 个核心体验 4. `### 真实游客视角` — 包含"大家怎么说"+ "去看更多真实笔记"+ "共识总结"三个子块 5. `### 行程建议（X 天 X 晚）` — 每日规划 6. `### 🔗 重点体验直达链接` — 飞猪 POI 链接（必须调用 FlyAI 获取） 7. `### 实用信息` — 交通/签证/预算等 #### 输出格式 ```markdown ## 🎯 为你推荐：[目的地名] **[一句话亮点]** ### 为什么是这里？ > ⚠️ **按匹配优先级排序**：最契合用户核心诉求的点放在最前面，每条附带匹配星级（⭐ 满分五星，允许半星如 ⭐⭐⭐✨）。 - **[⭐⭐⭐⭐✨]** [最核心的匹配点 — 直接命中用户最重要的需求] - **[⭐⭐⭐⭐]** [高度匹配 — 强相关但非首要诉求] - **[⭐⭐⭐✨]** [中等匹配 — 有加分但不是决定因素] - **[⭐⭐]** [辅助匹配 — 锦上添花] **评分标准：** - **⭐⭐⭐⭐⭐** = 完美命中用户明确表达的核心需求 - **⭐⭐⭐⭐✨** = 非常接近完美，仅有一小项略有欠缺 - **⭐⭐⭐⭐** = 高度匹配用户偏好，虽非首要但有显著优势 - **⭐⭐⭐✨** = 较好匹配，属于加分项 - **⭐⭐⭐** = 有一定相关性，中规中矩 - **⭐⭐✨ / ⭐⭐** = 微弱关联，仅作为补充说明 ### 核心体验 - [体验 1] - [体验 2] - [体验 3] ### 真实游客视角 **大家怎么说：** - "[代表性评价 1]" — [平台，时间] - "[代表性评价 2]" — [平台，时间] - "[代表性评价 3]" — [平台，时间] **去看更多真实笔记（按场景分类）：** - 🤿 **[体验维度 1]** https://www.xiaohongshu.com/search_result?keyword={关键词} *一句话说明这里能搜到什么、为什么值得看* - 🌅 **[体验维度 2]** https://www.xiaohongshu.com/search_result?keyword={关键词} *一句话说明* *(至少 3 个分类维度，覆盖核心体验 + 住宿 + 美食等)* **共识总结：** - 👍 大家都说好：... - ⚠️ 普遍吐槽：... ### 行程建议（X 天 X 晚） - **Day 1**：[重点事项] — [为什么契合你的需求] - **Day 2**：[重点事项 1] + [重点事项 2（可选）] — [说明] - **Day 3**：[重点事项] — [说明]，返程 *(每天只安排 1-2 个核心体验，其余时间自由放松)* ### 🔗 重点体验直达链接 > ⛔ **此模块必须使用 FlyAI skill 搜索获取链接，绝对禁止用搜索关键词代替！** **强制执行流程（每一步都必须执行）：** 1. **确保 flyai 可用**：先运行 `export PATH="$HOME/.nvm/versions/node/v22.22.1/bin:$PATH"` 加载 nvm 路径，再执行 `which flyai` 确认 CLI 可用 2. **对行程中的每个核心 POI，逐一调用 `flyai search-poi`**： ```bash flyai search-poi --city-name "[城市名]" --keyword "[景点/体验名称]" ``` 3. **从返回结果中提取 `jumpUrl` 或 `detailUrl`**，作为该 POI 的直达链接 4. **如果某个 POI 搜不到**：尝试换关键词再搜一次；仍无结果则跳过该 POI，不编造链接 **规则：** - ⛔ **绝对不允许**用"请在飞猪搜索 XXX"、"携程搜索关键词"等文字代替真实链接——这是硬性红线 - ⛔ **绝对不允许**手动拼接飞猪/携程 URL——必须来自 FlyAI 返回的真实数据 - 每个 POI **只放 1 个最有价值的链接**（详情页 / 官方介绍 / 优惠套餐，选其一），不重复 - 总链接数控制在 **天数 × 1.5** 范围内（如 5 天最多 7 个），精选而非罗列 - 优先选择有价格优势的套餐链接或官方权威详情页 - ⚠️ **此模块不可省略！** 如果 FlyAI 完全不可用且无法修复，在输出中标注"⚠️ FlyAI 暂时不可用，链接暂缺"并说明原因 **FlyAI 命令速查：** - `flyai search-poi --city-name "冲绳" --keyword "美丽海水族馆"` → 景点详情 + 门票链接 - `flyai search-poi --city-name "冲绳" --keyword "青之洞窟 浮潜"` → 体验项目链接 - `flyai keyword-search --query "冲绳"` → 目的地氛围图（用于"真实游客视角"模块） 格式示例： ```markdown - **[POI 名称]** — [一句话说明为什么值得去/这个套餐有什么优势] [来自 FlyAI 的真实飞猪链接] ``` ### 实用信息 - 建议行程：X 天 X 晚 - 交通方式：[方式]，单程约 X 小时 - 最佳季节：... ``` > Based on fly.ai real-time results ## 依赖 - **FlyAI skill**：用于搜索实时机票、酒店、景点信息 - 使用前确保 flyai skill 已安装：`ls skills/flyai/SKILL.md` - 调用方式见 `references/flyai-integration.md` ## 参考资料 - **问卷设计细节**：`references/questionnaire-guide.md` - **FlyAI 集成指南**：`references/flyai-integration.md`


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)