📦 Transit Risk Assessment & Delay Hotel Recommendations & Last-Mile Transport Check — 行程风险助手

v1.0.2

一站式旅行交通风险助手,实时评估转机延误概率,智能推荐机场周边酒店,并核验最后一公里交通方案,助你全程无忧。

0· 72·0 当前·0 累计
下载技能包
最后更新
2026/4/1
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
high confidence
该技能宣称的旅行风险功能看似合理,但运行时指令依赖未在注册元数据中声明的外部 MCP 服务器与 API 密钥,且通过运行时 npx 安装,这种不匹配及隐式远程代码执行令人担忧。
评估建议
该技能功能(转机风险、酒店推荐、最后一公里检查)逻辑自洽,但存在重要不匹配与运行时风险,安装前请解决:1)确认所需环境变量与 API 密钥(SKILL.md 提及 TRAVEL_API_KEY、HOTEL_API_KEY、TRANSPORT_API_KEY)并在注册中声明且限定范围;2)向发布者索要 MCP 包(@travel/mcp-server、@hotel/mcp-server、@city-transport/mcp-server)的源码、校验和与信任模型,运行时 npx 会拉取并执行远程代码,仅当包已审计/受信任时才允许;3)核实推送通知、短信/邮件及订单数据的发送/接收位置与所需凭据,避免提供高权限密钥;4)若必须测试,在受限沙箱内运行,限制网络与密钥访问,监控出站调用,勿复用生产凭据;5)优先使用已审计、版本锁定的安装产物或显式列出所需环境变量/权限的清单,若发布者无法提供,则视为高风险并考虑不安装。...
详细分析 ▾
用途与能力
技能名称、描述与 SKILL.md 均围绕转机风险、延误酒店推荐与最后一公里检查。然而 SKILL.md 要求集成三个 MCP 服务器(travel-data、hotel-booking、city-transport)及其 API 密钥(TRAVEL_API_KEY、HOTEL_API_KEY、TRANSPORT_API_KEY),而注册元数据未声明任何必需环境变量,这种未声明的凭据需求与已发布元数据不一致。
指令范围
运行时指令引用 $ARGUMENTS、$ORDER_DATA、$USER_LOCATION 并调用特定 MCP 方法(如 travel-data.get_order、hotel-booking.search_hotels)。同时描述推送通知、短信/邮件发送及自动触发,这些输出通道与数据访问(订单数据、航班状态、用户位置)意味着可访问敏感用户数据与通信渠道,但技能未声明所需凭据或权限。指令还指示代理在运行时通过 npx 启动 MCP 服务器,将下载并执行远程包。
安装机制
无正式安装规范,但 SKILL.md 要求通过 npx 启动 MCP 服务器(npx -y @travel/mcp-server 等)。这意味着运行时将拉取并执行代码。运行时 npx 安装属中高风险,因任意代码被拉取执行而无明确安装策略或已审计、版本锁定产物。package.json 中 publishConfig 指向内部仓库,引发包来源疑虑。
凭证需求
SKILL.md 引用 TRAVEL_API_KEY、HOTEL_API_KEY、TRANSPORT_API_KEY 作为 MCP 服务器环境变量,但技能元数据未声明任何必需环境变量。推送通知、短信/邮件网关或访问用户订单所需的其他凭据也未声明。请求多个外部 API 密钥对该功能合理,但未声明环境变量且无密钥范围或最小权限说明,存在不匹配及意外过度授权或密钥泄露风险。
持久化与权限
always:false 且 disable-model-invocation:false(默认)——技能非强制包含,可像普通技能一样自主调用。技能未声明修改其他技能或全局代理配置的操作。未声明安装时持久化。然而,运行时 npx 执行可能引入恶意代码以持久化或泄露数据,该风险归于上述安装机制问题。
安全有层次,运行前请审查代码。

运行时依赖

无特殊依赖

版本

latestv1.0.22026/4/1

此版本未检测到代码或文档变更。 - 版本号升至 1.0.2,无功能更新。 - 本版本无新功能、错误修复或文档编辑。

无害

安装命令

点击复制
官方npx clawhub@latest install travel-risk-checker
镜像加速npx clawhub@latest install travel-risk-checker --registry https://cn.longxiaskill.com

技能文档

获取以下参数:

  • $ARGUMENTS: 用户原始输入
  • $ORDER_DATA: 交通订单数据(如有)
  • $USER_LOCATION: 用户当前位置(如有)

# 核心功能 基于用户输入或订单数据,提供以下三大核心服务:

1. 极限转机风险检查

触发条件: 用户输入航班信息或检测到联程航班订单

检查内容:

  • 转机时间是否充足
  • 是否需要重新托运行李
  • 是否需要入境再出境
  • 是否需要更换航站楼
  • 机场平均转机耗时
  • 赶不上概率评估

输出格式:

【转机风险评估】
转机机场:{机场名称}
航站楼:{T1 → T2}
转机时间:{用户时间}
平均耗时:{机场平均时间}
风险项:
  • 需重新安检 ✓
  • 需入境再出境 ✓
  • 航站楼不同 ✓
错过概率:{XX}% 建议:{改签/提前到达/快速通道}

示例:

【转机风险评估】
转机机场:香港国际机场 (HKG)
航站楼:T1 → T1
转机时间:1 小时 10 分钟
平均耗时:65 分钟
风险项:
  • 需重新安检 ✓
  • 需入境再出境 ✗
  • 航站楼不同 ✗
错过概率:35% 建议:建议改签至 2 小时以上转机时间,或购买快速安检服务

2. 航班延误酒店保命助手

触发条件: 检测到航班延误 > 2 小时 或 航班取消

检查内容:

  • 预计到达时间
  • 到达地酒店入住政策
  • 24 小时前台酒店
  • 机场附近酒店(15 分钟车程内)
  • 凌晨 check-in 支持

输出格式:

【延误酒店推荐】
到达时间:{凌晨 HH:MM}
城市:{城市名称}
机场:{机场名称}
可入住酒店:
  • {酒店 A}
- 距离:{X.X km / X 分钟车程} - 前台:24 小时 - 服务:{机场接送/免费 shuttle} - 价格:{¥XXX 起}
  • {酒店 B}
- 距离:{X.X km / X 分钟车程} - 前台:24 小时 - 服务:{机场接送} - 价格:{¥XXX 起} 建议:立即预订,避免深夜无房

示例:

【延误酒店推荐】
到达时间:凌晨 1:40
城市:上海
机场:浦东国际机场 (PVG)
可入住酒店:
  • 机场大酒店
- 距离:2.3 km / 5 分钟车程 - 前台:24 小时 - 服务:免费机场接送 - 价格:¥458 起
  • 浦东机场宾馆
- 距离:1.8 km / 4 分钟车程 - 前台:24 小时 - 服务:航站楼直达 - 价格:¥528 起 建议:立即预订,避免深夜无房

3. 最后一公里交通失效提醒

触发条件: 检测到晚间到达交通订单(航班/高铁 22:00 后到达)

检查内容:

  • 目的地城市地铁末班车时间
  • 机场大巴运营时间
  • 夜班公交路线
  • 打车排队情况
  • 替代交通方案

输出格式:

【交通失效预警】
到达时间:{HH:MM}
到达站点:{站点名称}
城市:{城市名称}
交通状态:
  • 地铁:{已停运/末班车 XX:XX}
  • 机场大巴:{已停运/末班车 XX:XX}
  • 夜班公交:{有/无}
  • 打车排队:{约 X 分钟}
建议:
  • 改为{推荐时间}前到达的车次
  • 或预订接站车(¥XXX 起)
  • 或提前预约网约车

示例:

【交通失效预警】
到达时间:23:10
到达站点:西安北站
城市:西安
交通状态:
  • 地铁:已停运(末班车 23:00)
  • 机场大巴:已停运(末班车 22:30)
  • 夜班公交:无
  • 打车排队:约 60 分钟
建议:
  • 改为 22:00 前到达的车次
  • 或预订接站车(¥120 起)
  • 或提前预约网约车

# MCP 集成

MCP Server 配置

所需 MCP Servers:
mcpServers:
  travel-data:
    command: npx
    args: ["-y", "@travel/mcp-server"]
    env:
      TRAVEL_API_KEY: "${TRAVEL_API_KEY}"
  hotel-booking:
    command: npx
    args: ["-y", "@hotel/mcp-server"]
    env:
      HOTEL_API_KEY: "${HOTEL_API_KEY}"
  city-transport:
    command: npx
    args: ["-y", "@city-transport/mcp-server"]
    env:
      TRANSPORT_API_KEY: "${TRANSPORT_API_KEY}"

MCP 工具定义

工具 1:flight_transit_risk_check

用途: 检查航班转机风险

参数:

{
  "type": "object",
  "properties": {
    "flight_no_1": {"type": "string", "description": "第一程航班号"},
    "flight_no_2": {"type": "string", "description": "第二程航班号"},
    "transit_airport": {"type": "string", "description": "转机机场代码"},
    "transit_time_minutes": {"type": "integer", "description": "转机时间(分钟)"},
    "terminal_1": {"type": "string", "description": "第一程航站楼"},
    "terminal_2": {"type": "string", "description": "第二程航站楼"}
  },
  "required": ["flight_no_1", "flight_no_2", "transit_airport", "transit_time_minutes"]
}

返回示例:

{
  "risk_level": "HIGH",
  "transit_airport": "HKG",
  "terminals": "T1 → T1",
  "avg_transit_time": 65,
  "user_time": 70,
  "miss_probability": 0.35,
  "risk_items": ["security_recheck", "immigration_required"],
  "suggestions": ["建议改签至 2 小时以上转机时间", "购买快速安检服务"]
}

工具 2:delay_hotel_recommend

用途: 推荐延误时可入住的酒店

参数:

{
  "type": "object",
  "properties": {
    "airport_code": {"type": "string", "description": "机场代码"},
    "arrival_time": {"type": "string", "description": "预计到达时间 (ISO 8601)"},
    "max_distance_km": {"type": "number", "description": "最大距离(公里)", "default": 10},
    "require_24h_reception": {"type": "boolean", "description": "是否要求 24 小时前台", "default": true},
    "require_airport_shuttle": {"type": "boolean", "description": "是否要求机场接送", "default": true}
  },
  "required": ["airport_code", "arrival_time"]
}

返回示例:

{
  "hotels": [
    {
      "name": "机场大酒店",
      "distance_km": 2.3,
      "drive_time_minutes": 5,
      "reception_24h": true,
      "airport_shuttle": true,
      "price_from": 458,
      "available_rooms": 3
    }
  ]
}

工具 3:last_mile_transport_check

用途: 检查最后一公里交通可用性

参数:

{
  "type": "object",
  "properties": {
    "station_name": {"type": "string", "description": "到达站点名称"},
    "station_type": {"type": "string", "enum": ["airport", "train_station"], "description": "站点类型"},
    "arrival_time": {"type": "string", "description": "预计到达时间 (ISO 8601)"},
    "city_code": {"type": "string", "description": "城市代码"}
  },
  "required": ["station_name", "station_type", "arrival_time", "city_code"]
}

返回示例:

{
  "metro_status": "CLOSED",
  "metro_last_train": "23:00",
  "airport_bus_status": "CLOSED",
  "airport_bus_last": "22:30",
  "night_bus_available": false,
  "taxi_queue_time": 60,
  "alternatives": [
    {"type": "prebook_car", "price_from": 120},
    {"type": "ride_hailing", "estimated_time": 15}
  ]
}

数据源接入

必须结合以下数据:

数据类型用途触发条件MCP 工具
交通订单获取航班/车次信息用户授权访问订单travel-data.get_order
目的地城市查询当地交通政策订单中包含目的地city-transport.get_city_info
到达时间判断是否深夜到达订单中包含时间travel-data.get_order
实时延误检测航班延误状态航班起飞前 2 小时travel-data.get_flight_status
酒店数据推荐可入住酒店延误 > 2 小时hotel-booking.search_hotels
交通时刻表检查末班车时间到达时间 > 22:00city-transport.get_schedule

自动触发规则

规则 1:转机风险检查
IF 订单类型 == "联程航班" AND 转机时间 < 90 分钟
THEN 触发转机风险评估

规则 2:延误酒店推荐

IF 航班状态 == "延误" AND 延误时间 > 120 分钟 AND 到达时间 > 23:00
THEN 触发酒店推荐

规则 3:最后一公里检查

IF 到达时间 > 22:00 AND 交通方式 IN ["高铁", "飞机"]
THEN 触发交通失效检查

输出渠道

  • 订单详情页:在订单确认前展示风险提示
  • 推送通知:航班延误时主动推送
  • 短信/邮件:深夜到达前发送交通提醒
  • App 首页:行程卡片展示风险状态

# 风险等级定义

转机风险等级

错过概率计算公式:
miss_probability = base_risk × terminal_factor × immigration_factor × security_factor × time_factor

其中:

  • base_risk = 0.1(基础风险)
  • terminal_factor = 1.5(同航站楼)或 2.5(不同航站楼)
  • immigration_factor = 1.0(无需入境)或 2.0(需入境)
  • security_factor = 1.0(无需安检)或 1.5(需安检)
  • time_factor = min(2.0, (90 - user_time_minutes) / 30)
等级转机时间错过概率建议
🟢 安全> 120 分钟< 5%正常转机
🟡 注意90-120 分钟5-15%建议快速通道
🟠 风险60-90 分钟15-35%建议改签
🔴 高危< 60 分钟> 35%强烈建议改签
机场平均转机耗时参考数据:
数据来源:IATA Airport Connection Times
国内转国内:45-60 分钟
国内转国际:60-90 分钟
国际转国际:60-75 分钟
国际转国内:75-120 分钟

重点机场参考:

  • 香港 (HKG): 65 分钟
  • 东京成田 (NRT): 90 分钟
  • 首尔仁川 (ICN): 60 分钟
  • 新加坡 (SIN): 55 分钟
  • 曼谷 (BKK): 75 分钟
  • 吉隆坡 (KUL): 70 分钟

深夜到达风险等级

等级到达时间交通状态建议
🟢 安全< 22:00公共交通正常正常出行
🟡 注意22:00-23:00部分交通停运建议预约车
🟠 风险23:00-01:00公共交通停运必须预约车
🔴 高危> 01:00仅出租车可用提前安排住宿
交通可用性判断规则:
IF arrival_time < metro_last_train THEN metro_available = true
ELSE metro_available = false

IF arrival_time < bus_last THEN bus_available = true ELSE bus_available = false

IF metro_available OR bus_available THEN risk_level = LOW ELSE IF taxi_queue_time < 30 THEN risk_level = MEDIUM ELSE risk_level = HIGH

# 用户体验优化

提示语风格

  • 简洁明了:直接说明问题和解决方案
  • 数据支撑:使用具体数字(时间、概率、距离)
  • 行动导向:提供明确的下一步建议
  • 语气友好:避免制造焦虑,强调"有帮助"

交互设计

  • 风险可视化:使用颜色标识风险等级
  • 一键操作:提供"改签"、"预订酒店"、"预约车"快捷入口
  • 对比展示:显示当前方案 vs 推荐方案
  • 倒计时提醒:关键时间节点前主动提醒

# 数据更新频率

数据类型更新频率来源缓存策略
航班状态实时(5 分钟)航司 API / 飞常准不缓存,实时查询
地铁时刻每日 00:00城市交通数据缓存 24 小时
酒店房态实时(15 分钟)酒店 API / 携程缓存 15 分钟
打车排队实时(10 分钟)网约车 API缓存 10 分钟
机场转机时间每周IATA / 机场官方缓存 7 天
天气数据每小时气象局 API缓存 1 小时
降级策略:
IF 实时数据不可用
THEN 使用缓存数据(如果在有效期内)
ELSE IF 缓存数据过期
THEN 使用历史平均值
   提示用户"数据可能不准确,建议手动确认"
ELSE 使用默认安全值
   提示用户"暂时无法获取数据,建议预留更多时间"

# 错误处理

数据不可用时:

抱歉,暂时无法获取{数据名称}
建议您:
  • 联系{相关机构}确认
  • 预留更多缓冲时间
  • 购买可退改签产品

API 调用失败处理:

错误类型处理策略用户提示
超时重试 2 次,使用缓存"数据加载中,显示的是最近的数据"
认证失败告警,使用默认值"部分功能暂时不可用"
数据为空使用历史平均"基于历史数据估算"
服务不可用降级到离线模式"已切换到离线模式,建议手动确认"
降级策略优先级:
1. 实时 API 数据(首选)
  • 缓存数据(15 分钟内)
  • 历史平均值(同时间段)
  • 行业默认值(安全保守估计)
  • 提示用户手动输入

日志记录:

{
  "timestamp": "2026-04-01T12:00:00Z",
  "user_id": "xxx",
  "check_type": "transit_risk",
  "data_source": "realtime",
  "fallback_used": false,
  "response_time_ms": 234,
  "risk_level": "HIGH"
}

# 隐私保护

  • 订单数据仅用于风险评估
  • 不存储用户行程历史
  • 不向第三方分享位置信息
  • 用户可随时关闭风险检查功能
数据来源ClawHub ↗ · 中文优化:龙虾技能库