# 工作流程

### 前置步骤：安装/升级 FlyAI CLI

在执行任何搜索之前，**必须先执行安装命令**（无论是否已安装，确保为最新版本）：

```bash
npm install -g @fly-ai/flyai-cli@latest --registry=https://registry.npmjs.org
```

> 💡 此命令会自动处理首次安装和版本升级，无需手动判断是否已安装。**安装后验证：**
```bash
flyai --help
```

**安装失败处理：**
| 情况 | 处理方式 |
|-----|---------|
| npm 未安装 | 提示用户先安装 Node.js (https://nodejs.org/) |
| 权限不足 | 建议使用 `sudo npm install -g @fly-ai/flyai-cli@latest --registry=https://registry.npmjs.org` 或使用 nvm 管理 Node |
| 网络问题 | 建议用户检查网络或使用国内镜像 `npm config set registry https://registry.npmmirror.com` |

**注意：** 此步骤只在首次使用时执行，后续调用会直接跳过已安装的情况。

### 第1步：收集用户信息

使用 `ask_user_question` 工具收集必要信息：

**必须收集的信息：**

```
问题1: "你想评估哪种产品的价格？"
选项:
- "机票 ✈️"
- "酒店 🏨"
- "两个都要评估"

问题2: "请告诉我查询条件"（根据产品类型动态调整）
# 机票：出发城市、目的地城市、出发日期、返程日期（可选）
# 酒店：目的地城市、入住日期、退房日期

问题3: "你有心理价位吗？"
选项:
- "有，低于 ¥XXX 就买"
- "没有，帮我判断就好"

问题4: "你的日期灵活吗？"
选项:
- "完全不灵活，只能这个日期"
- "可以前后调整1-2天"
- "非常灵活，帮我找最便宜的日期"
```

### 第2步：调用 FlyAI 能力搜索

**重要：SSL 证书验证问题处理**
如果遇到 "SSL 证书验证失败" 错误，需要在命令前加上环境变量：
```bash
NODE_TLS_REJECT_UNAUTHORIZED=0 flyai <command>
```

**2.1 机票价格搜索**

搜索用户指定日期的机票：
```bash
flyai search-flight --origin "[出发城市]" --destination "[目的地]" --dep-date [出发日期] --sort-type 3
```

如果用户日期灵活，搜索邻近日期：
```bash
# 前后各2天，共5天
flyai search-flight --origin "[出发城市]" --destination "[目的地]" --dep-date-start [日期-2] --dep-date-end [日期+2] --sort-type 3
```

**2.2 酒店价格搜索**

搜索用户指定日期的酒店：
```bash
flyai search-hotel --dest-name "[目的地]" --check-in-date [入住日期] --check-out-date [退房日期] --sort price_asc
```

**2.3 景点搜索（补充信息）**

如果评估酒店，顺带搜索附近景点信息以评估位置价值：
```bash
flyai search-poi --city-name "[目的地]" --poi-level 4
```

### 第3步：价格分析与评估

基于搜索结果和旅行定价规律进行分析：

**3.1 价格水位评估**

根据以下维度判断当前价格处于什么水平：

| 价格区间 | 评估结果 | 标记 |
|---------|---------|------|
| 接近历史低价（淡季特价） | 超值低价 | 🟢 |
| 低于同期均价 | 合理偏低 | 🟢 |
| 接近同期均价 | 中等水平 | 🟡 |
| 高于同期均价 | 偏高 | 🟠 |
| 接近旺季峰值 | 偏贵 | 🔴 |

**3.2 趋势预判因素**

综合以下因素预测涨跌概率：

| 因素 | 涨价信号 | 降价信号 |
|-----|---------|---------|
| 距出发时间 | <7天，大概率涨 | >30天，可能有促销 |
| 季节 | 旺季（暑假/春节/国庆） | 淡季（3-4月/11月） |
| 剩余库存 | 舱位/房间紧张 | 库存充足 |
| 近期价格走势 | 连续上涨 | 连续下跌 |
| 航司/酒店促销周期 | 无促销信号 | 促销季即将到来 |

**3.3 建议决策矩阵**

| 涨价概率 | 降价空间 | 建议 |
|---------|---------|------|
| 高（>60%） | 小 | 🟢 现在就买！ |
| 高 | 大 | 🟡 可以等几天看看 |
| 低（<40%） | 小 | 🟡 买了也不亏 |
| 低 | 大 | 🟠 建议再等等 |

### 第4步：输出格式化结果

**机票评估输出格式：**

```markdown
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✈️ 机票价格评估 | [航线] [日期]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1️⃣ 当前价格水位

  ¥[历史低]      ¥[均价]       ¥[当前]    ¥[峰值]
   │              │            ↓ 你现在   │
   └──────────────┴────────────●─────────┘
   历史最低        中位价      当前价     旺季峰值
   
  评估：[🟢/🟡/🟠/🔴] [评估词]
  当前价在历史区间的 [X]% 位置

2️⃣ 邻近日期价格对比

  [日期1]  ¥[价格]  ▓▓▓▓▓▓▓▓▓▓
  [日期2]  ¥[价格]  ▓▓▓▓▓▓▓▓  ← 你看的
  [日期3]  ¥[价格]  ▓▓▓▓▓▓  ← 更便宜！省¥XXX
  ...
  
  💡 [发现提示]

3️⃣ 趋势预判

  ┌──────────────────────────────────────┐
  │ AI 分析（基于旅行定价规律）：          │
  │                                      │
  │ 📈 该航线近期价格趋势：[大概率走高/震荡/可能下降]│
  │                                      │
  │ 依据：                                │
  │ · [依据1]                             │
  │ · [依据2]                             │
  │ · [依据3]                             │
  │                                      │
  │ 🔮 未来价格预判：                      │
  │ · 1周内降价概率：[X]%（可能到¥[价格]）   │
  │ · 1周内涨价概率：[X]%（可能到¥[价格]）   │
  │ · 不变概率：[X]%                        │
  └──────────────────────────────────────┘

4️⃣ AI 建议

  ┌──────────────────────────────────────┐
  │                                      │
  │ [🟢/🟡/🟠] 建议：[现在就买！/可以再等等/建议观望]│
  │ 置信度：[⭐⭐⭐⭐/⭐⭐⭐/⭐⭐]（[X]%）         │
  │                                      │
  │ 理由：                                │
  │ · [理由1]                             │
  │ · [理由2]                             │
  │ · [理由3]                             │
  │                                      │
  │ 💡 如果你日期灵活：                    │
  │   [推荐更优日期和价格]                 │
  │                                      │
  └──────────────────────────────────────┘

5️⃣ 快速预订

  👉 [立即预订 ¥XXX](jumpUrl)
     [查看更多航班](jumpUrl)
     [设价格雷达·再等等]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

**酒店评估输出格式：**

```markdown
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏨 酒店价格评估 | [酒店名/区域] [日期]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

1️⃣ 当前价位

  📊 当前价位：[🟢/🟡/🟠/🔴] [评估词]
  · 同区域同档次均价：¥[均价]/晚
  · 当前价格：¥[价格]/晚（[高于/低于/接近]均价 [X]%）

2️⃣ 房源紧张度

  🏠 剩余房间：[X]间 [⚠️紧张/充足]
  [如果紧张，提示犹豫可能售罄]

3️⃣ 位置价值评估

  📍 周边景点：
  · [景点1]（[距离]）
  · [景点2]（[距离]）
  · [景点3]（[距离]）
  
  💡 位置评价：[核心地段/交通便利/稍偏但安静]

4️⃣ AI 建议

  ┌──────────────────────────────────────┐
  │ [🟢/🟡/🟠] 建议：[立刻订！/可以再看看/等降价]│
  │                                      │
  │ 理由：                                │
  │ · [理由1]                             │
  │ · [理由2]                             │
  │                                      │
  │ 💡 [补充提示，如支持免费取消等]         │
  └──────────────────────────────────────┘

5️⃣ 快速预订

  👉 [立即预订 ¥XXX/晚](jumpUrl)
     [查看更多酒店](jumpUrl)
     [设价格提醒]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

### 第5步：提供预订按钮

**重要：每个输出必须包含可操作的预订链接**

从 FlyAI 搜索结果中提取 `jumpUrl` 字段，构建预订按钮：

```markdown
👉 **快速操作**
   [✈️ 预订机票 ¥XXX](jumpUrl) 
   [🏨 预订酒店 ¥XXX/晚](jumpUrl)
   [🎫 预订景点门票](jumpUrl)
```

如果用户想等待，提供价格雷达设置入口（引导到其他skill或功能）。
