活动演出出行规划
整合小红书真实用户攻略(xhs-cli)和飞猪出行供应链(flyai-cli)的一站式活动规划。
工具与参考
机票、酒店、门票、景点搜索与预订 |
references/flyaicli.md |
|
xhs_filter.py | 精简 xhs-cli 输出,只保留 AI 决策字段 | 用法见下方 |
|
联网搜索 | 辅助确认活动信息(WebSearch 等 IDE 自带工具) | — |
环境配置与故障排查:references/setup_guide.md
路径约定: 本 skill 中所有 scripts/ 开头的路径都相对于 skill 安装目录。执行 bash 命令前,必须将其拼接为绝对路径(即 <本skill安装目录>/scripts/...)。例如加载时显示 base directory 为 /path/to/skill/,则 scripts/xhs_filter.py 应写为 /path/to/skill/scripts/xhs_filter.py。
xhs-cli 输出过滤(所有 xhs 命令必须通过管道过滤):
CODEBLOCK0
xhs-cli 关键约束:
- - 短索引从 1 开始(不是 0)
- 每次 search 后缓存被覆盖,必须立即完成该组的 read,不能攒着读
- 内置限速 ~1-1.5s/请求,不要并行调用,多次调用间隔 2 秒
执行前检查(必须执行,禁止跳过)
在进行任何搜索或规划之前,必须先执行以下检查。 尤其是 date 命令——未获取当前日期就搜索会导致无法判断活动时效性,搜到过期活动而全盘出错。
CODEBLOCK1
将 date 输出记为 TODAY,后续所有时效判断(活动是否过期、筛选发布时间、航班日期)都基于此值。
异常时参阅 references/setup_guide.md。
核心工作流
Step 1:确认活动信息(最关键的一步)
目标: 在做任何规划之前,先明确活动是什么、什么时候、在哪里。找错活动(比如去年的、已过期的)会导致后续全部白费。
操作: 拿到用户 query 后,同时用小红书搜索和联网搜索(WebSearch)交叉验证活动信息:
- - 小红书搜索
"<活动名> <城市>" → 从笔记标题和正文中提取活动时间、地点、场馆 - 联网搜索
"<活动名> 年份 时间 地点" → 获取官方信息
确认后向用户展示并请求确认:
- - 活动全称、场次、时间、场馆
- 如果活动日期 < 当前日期 → 明确告知已过期,询问是否有新场次
- 如果是泛品类搜索(如"最近有什么演唱会")→ 列举搜到的多个活动,让用户选择
此步关键判断: 本轮搜索如果能拿到有价值的攻略信息(抢票难度、往期经验、场馆特点等),先记住,Step 2 可以直接利用。
Step 2:明确用户出行需求
目标: 收集个性化信息,结合 Step 1 已获取的攻略内容,给出有针对性的建议。
必须明确的信息:
- - 出发城市
- 出行人数和同行者(影响住宿和交通选择)
- 预算范围(可选但有用)
主动建议(结合 Step 1 搜索到的信息):
- - 如果活动有多个场次 → 结合攻略中的抢票难度、酒店价格波动等信息推荐场次
- 如果攻略提到了"XX 区域住宿性价比高""XX 交通方式更方便" → 提前透露给用户参考
- 如果 Step 1 信息不足以做推荐 → 询问用户是否需要先搜索更多内容帮助决策
等用户确认后再进入 Step 3。
Step 3:深度攻略搜索(二轮搜索)
目标: 基于已确认的活动和用户需求,精确搜索攻略,收集足够的规划信息。
与一轮搜索的区别: 活动和场次已确认,可以用更精准的关键词,并严格按时效性过滤。
搜索策略: 分多组关键词搜索,每组走"搜索 → 筛选 → 读取验证"流程。关键词不限于固定三组,根据信息缺口灵活追加,直到覆盖以下维度:
| 维度 | 关键词示例 | 目标信息 |
|---|
| 活动攻略 | INLINECODE10 、 INLINECODE11 | 入场规则、最佳区域、禁带物品 |
| 抢票经验 |
"<活动名> 抢票"、
"<活动名> 购票攻略" | 抢票时间、渠道、技巧 |
| 交通 |
"<场馆名> 交通"、
"<场馆名> 怎么去" | 到达方式、最优路线 |
| 住宿 |
"<城市> <活动名> 住宿"、
"<场馆名> 附近酒店" | 推荐区域、价位参考 |
| 周边 |
"<城市> <场馆名> 美食"、
"<城市> 一日游" | 餐饮、景点、行程填充 |
每组搜索流程:
CODEBLOCK2
步骤 3 读评论是必须的,不可跳过。 评论区包含正文中没有的关键信息:酒店实际涨价情况、交通拥堵时段、黄牛风险、入场排队时长、活动临时变更等。这些避坑信息直接影响最终攻略质量,是本 skill 区别于普通搜索的核心价值。每篇通过验证的笔记都要读评论。
筛选候选的判断(过滤后的输出已包含所有必要字段):
优先选:标题含攻略关键词("攻略""避坑""指南""干货")+ 收藏数 > 500 + 发布时间在本次活动前 3 个月内
可以选:标题具体、信息量大("从XX机场怎么去""5个注意事项")
应跳过:标题暗示纯图片内容("备忘录""截图""看图");发布时间明显属于往届活动;通用攻略不受时效限制
读取验证标准: 正文字数 >= 100 且包含实质攻略内容 → 保留;正文过短或为空 → 跳过读下一篇
信息充足的判断: 当活动入场须知、交通方案、住宿区域推荐这三方面都已有可靠信息时,可停止搜索。如果某个维度反复搜不到有用内容,也不要死磕,进入下一步后在输出中标注"该信息暂未找到可靠来源"。
Step 4:飞猪供应链搜索
调用前必读: references/flyai_cli.md — 各命令参数字段不同,切勿猜测。
目标: 将用户攻略中的推荐转化为可预订的产品。优先推荐飞猪有售且用户攻略中提到的选项。
搜索顺序与策略:
CODEBLOCK3
航班时刻与活动时间的对齐(关键): 搜航班不能只看日期,必须确保时刻和活动行程兼容。推荐前先推算时间约束:
- - 去程: 必须在活动开始前到达并留出余量。如果活动当天到 → 用
--dep-hour-end 限制出发时段,确保落地+赶到场馆的时间早于活动开始;如果前一天到则不需限制 - 返程: 必须在活动结束后才能离开。用
--dep-hour-start 确保出发时间晚于「活动结束 + 离场 + 到机场」的时间。
供应链与攻略的融合原则:
- - 攻略推荐的酒店区域 + flyai 搜到的具体酒店 → 优先推荐有预订链接的
- 攻略提到的交通方式 + flyai 搜到的航班/火车 → 给出具体班次和价格
- 飞猪搜到但攻略没提到的 → 可以补充推荐,但标注"供参考"
- 攻略推荐但飞猪没有的 → 保留攻略建议,注明"需自行预订"
展示规范(必须遵守): 飞猪返回的数据中如果包含图片和链接字段,必须展示,不可省略。
图片展示(独立一行):
- -
search-hotel 用 mainPic 字段 - 其他命令用
picUrl 字段
预订链接(独立一行,在图片之后):[点击预订]({链接URL})
- -
search-hotel 用 detailUrl 字段 - 其他命令用
jumpUrl 字段
每个推荐的酒店、航班、门票都必须按"图片 → 关键信息 → 预订链接"的顺序展示。 自然提及"基于 fly.ai 实时搜索结果"。
Step 5:整合输出
输出内容根据实际搜集到的信息灵活组织,不必拘泥于固定模板。以下维度按需覆盖:
- - 活动信息卡 — 名称、时间、地点、票价、购票渠道与抢票攻略
- 交通方案 — 航班/火车推荐(表格对比),含飞猪预订链接
- 住宿推荐 — 结合攻略推荐区域和飞猪搜索结果,含价格、评分、预订链接
- 行程时间表 — 按时间线串联交通、活动、周边游
- 实用攻略 — 入场须知、最佳观演区域、必带/禁带物品等(来自笔记和评论)
- 避坑提醒 — 来自评论区的真实反馈,如酒店涨价、交通拥堵、黄牛风险等
输出格式: 先在对话中给出完整的 Markdown 攻略,最后生成一份排版良好的 HTML 文件供用户保存。
场景示例
用户: "我要从北京去上海看五月天演唱会,5月10号的"
CODEBLOCK4
活动演出出行规划
整合小红书真实用户攻略(xhs-cli)和飞猪出行供应链(flyai-cli)的一站式活动规划。
工具与参考
机票、酒店、门票、景点搜索与预订 |
references/flyaicli.md |
|
xhs_filter.py | 精简 xhs-cli 输出,只保留 AI 决策字段 | 用法见下方 |
|
联网搜索 | 辅助确认活动信息(WebSearch 等 IDE 自带工具) | — |
环境配置与故障排查:references/setup_guide.md
路径约定: 本 skill 中所有 scripts/ 开头的路径都相对于 skill 安装目录。执行 bash 命令前,必须将其拼接为绝对路径(即 <本skill安装目录>/scripts/...)。例如加载时显示 base directory 为 /path/to/skill/,则 scripts/xhsfilter.py 应写为 /path/to/skill/scripts/xhsfilter.py。
xhs-cli 输出过滤(所有 xhs 命令必须通过管道过滤):
bash
xhs search 关键词 --sort popular --type image --json | python3 scripts/xhs_filter.py search
xhs read <索引> --json | python3 scripts/xhs_filter.py read
xhs comments <索引> --json | python3 scripts/xhs_filter.py comments
xhs-cli 关键约束:
- - 短索引从 1 开始(不是 0)
- 每次 search 后缓存被覆盖,必须立即完成该组的 read,不能攒着读
- 内置限速 ~1-1.5s/请求,不要并行调用,多次调用间隔 2 秒
执行前检查(必须执行,禁止跳过)
在进行任何搜索或规划之前,必须先执行以下检查。 尤其是 date 命令——未获取当前日期就搜索会导致无法判断活动时效性,搜到过期活动而全盘出错。
bash
date +%Y-%m-%d
xhs status --yaml 2>/dev/null | grep -q authenticated: true && echo XHSOK || echo XHSAUTH_NEEDED
flyai --help >/dev/null 2>&1 && echo FLYAIOK || echo FLYAINEEDED
将 date 输出记为 TODAY,后续所有时效判断(活动是否过期、筛选发布时间、航班日期)都基于此值。
异常时参阅 references/setup_guide.md。
核心工作流
Step 1:确认活动信息(最关键的一步)
目标: 在做任何规划之前,先明确活动是什么、什么时候、在哪里。找错活动(比如去年的、已过期的)会导致后续全部白费。
操作: 拿到用户 query 后,同时用小红书搜索和联网搜索(WebSearch)交叉验证活动信息:
- - 小红书搜索 <活动名> <城市> → 从笔记标题和正文中提取活动时间、地点、场馆
- 联网搜索 <活动名> 年份 时间 地点 → 获取官方信息
确认后向用户展示并请求确认:
- - 活动全称、场次、时间、场馆
- 如果活动日期 < 当前日期 → 明确告知已过期,询问是否有新场次
- 如果是泛品类搜索(如最近有什么演唱会)→ 列举搜到的多个活动,让用户选择
此步关键判断: 本轮搜索如果能拿到有价值的攻略信息(抢票难度、往期经验、场馆特点等),先记住,Step 2 可以直接利用。
Step 2:明确用户出行需求
目标: 收集个性化信息,结合 Step 1 已获取的攻略内容,给出有针对性的建议。
必须明确的信息:
- - 出发城市
- 出行人数和同行者(影响住宿和交通选择)
- 预算范围(可选但有用)
主动建议(结合 Step 1 搜索到的信息):
- - 如果活动有多个场次 → 结合攻略中的抢票难度、酒店价格波动等信息推荐场次
- 如果攻略提到了XX 区域住宿性价比高XX 交通方式更方便 → 提前透露给用户参考
- 如果 Step 1 信息不足以做推荐 → 询问用户是否需要先搜索更多内容帮助决策
等用户确认后再进入 Step 3。
Step 3:深度攻略搜索(二轮搜索)
目标: 基于已确认的活动和用户需求,精确搜索攻略,收集足够的规划信息。
与一轮搜索的区别: 活动和场次已确认,可以用更精准的关键词,并严格按时效性过滤。
搜索策略: 分多组关键词搜索,每组走搜索 → 筛选 → 读取验证流程。关键词不限于固定三组,根据信息缺口灵活追加,直到覆盖以下维度:
| 维度 | 关键词示例 | 目标信息 |
|---|
| 活动攻略 | <活动名> 攻略、<活动名> 避坑 | 入场规则、最佳区域、禁带物品 |
| 抢票经验 |
<活动名> 抢票、<活动名> 购票攻略 | 抢票时间、渠道、技巧 |
| 交通 | <场馆名> 交通、<场馆名> 怎么去 | 到达方式、最优路线 |
| 住宿 | <城市> <活动名> 住宿、<场馆名> 附近酒店 | 推荐区域、价位参考 |
| 周边 | <城市> <场馆名> 美食、<城市> 一日游 | 餐饮、景点、行程填充 |
每组搜索流程:
bash
1. 搜索(图文 + 热度排序)
xhs search <关键词> --sort popular --type image --json | python3 scripts/xhs_filter.py search
2. 从过滤结果中筛选候选(~5 篇)并依次读取验证
xhs read <候选索引> --json | python3 scripts/xhs_filter.py read
3. 验证通过后,必须读评论(评论是避坑信息的核心来源)
xhs comments <已通过索引> --json | python3 scripts/xhs_filter.py comments
步骤 3 读评论是必须的,不可跳过。 评论区包含正文中没有的关键信息:酒店实际涨价情况、交通拥堵时段、黄牛风险、入场排队时长、活动临时变更等。这些避坑信息直接影响最终攻略质量,是本 skill 区别于普通搜索的核心价值。每篇通过验证的笔记都要读评论。
筛选候选的判断(过滤后的输出已包含所有必要字段):
优先选:标题含攻略关键词(攻略避坑指南干货)+ 收藏数 > 500 + 发布时间在本次活动前 3 个月内
可以选:标题具体、信息量大(从XX机场怎么去5个注意事项)
应跳过:标题暗示纯图片内容(备忘录截图看图);发布时间明显属于往届活动;通用攻略不受时效限制
读取验证标准: 正文字数 >= 100 且包含实质攻略内容 → 保留;正文过短或为空 → 跳过读下一篇
信息充足的判断: 当活动入场须知、交通方案、住宿区域推荐这三方面都已有可靠信息时,可停止搜索。如果某个维度反复搜不到有用内容,也不要死磕,进入下一步后在输出中标注该信息暂未找到可靠来源。
Step 4:飞猪供应链搜索
调用前必读: references/flyai_cli.md — 各命令参数字段不同,切勿猜测。
目标: 将用户攻略中的推荐转化为可预订的产品。优先推荐飞猪有售且用户攻略中提到的选项。
搜索顺序与策略:
bash
1. 活动门票(如果活动在飞猪有售,一定要推荐)
flyai keyword-search --query <活动名称>门票 <城市>
2. 交通(注意时刻约束,见下方说明)
flyai search-flight --origin <出发城市> --destination <活动城市> --dep-date <日期> --sort-type 3
3. 住宿(场馆附近,结合攻略推荐的区域)
flyai search-hotel --dest-name <城市> --poi-name <场馆名称> --check-in-date <入住> --check-out-date <退房> --sort rate_desc