← Back to Skills Marketplace
ryan-zry

AI机票预订助手

by 赵瑞宇 · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ⚠ suspicious
115
Downloads
1
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install ai-flight
Description
AI机票助手 - 实现国内航班搜索、舱位查询、预订下单、机票改期、机票退票。适用于用户询问航班、查询机票价格、提交机票订单、改期航班、退票时使用。
README (SKILL.md)

AI机票助手

当用户询问航班搜索、舱位查询、机票预订、机票改期或机票退票时,使用此 skill 调用AI机票服务。

运行环境要求

本 skill 通过 python3 执行 HTTP POST 请求调用AI机票服务。运行环境必须提供 python3

隐私与个人信息(PII)说明

预订功能会将用户提供的个人信息(乘客姓名、手机号、证件号等)通过 HTTP POST 发送至AI机票服务,以完成机票预订。使用本 skill 即表示用户知晓并同意上述 PII 被发送到外部服务。请勿在日志或回复中暴露用户个人信息。

可用工具

重要:下方示例中的参数均为占位,调用时需根据用户当前需求填入实际值(城市、日期、航班号、乘机人、联系方式等),勿直接照抄示例值。

适用场景

  • 按出发/到达城市、日期搜索航班列表
  • 查看指定航班的舱位价格详情
  • 用户确认后创建机票预订订单
  • 查询已创建订单的详细信息
  • 用户确认后改期或退票已创建订单的航班

鉴权流程(必须先完成)

重要:使用任何功能前,用户必须先完成鉴权流程。鉴权成功后获得的 apiKey 会自动保存在用户主目录的 ~/.fbt_auth.json 文件中,新会话会自动沿用。

鉴权步骤

  1. 发送验证码:用户提供手机号,系统发送验证码到手机
  2. 验证并获取 apiKey:用户输入验证码,验证成功后获得 apiKey
  3. 自动注入:后续所有 API 调用会自动携带 apiKey

鉴权命令

1. 发送验证码

python3 scripts/auth.py send \x3Cphone>

示例

python3 scripts/auth.py send 13800138000

2. 验证并获取 apiKey

python3 scripts/auth.py verify \x3Cphone> \x3Ccode>

示例

python3 scripts/auth.py verify 13800138000 123456

3. 查看鉴权状态

python3 scripts/auth.py status

鉴权检查规则

  • 在执行任何航班查询、预订、改期、退票操作前,必须先检查鉴权状态
  • 如果未鉴权或 apiKey 已过期,必须引导用户完成鉴权流程
  • 鉴权成功后,所有 API 调用会自动携带 apiKey,无需手动传递

1. 航班搜索 (searchFlight)

功能:查询国内航班列表

必填参数

  • start_code: 出发城市名称(如 北京、上海、广州)
  • end_code: 到达城市名称
  • date: 出发日期(格式 YYYY-MM-DD)

触发词:某地到某地航班、查机票、搜航班、机票价格

执行命令

python3 scripts/search_flights.py \x3Cstart_code> \x3Cend_code> \x3Cdate>

示例

python3 scripts/search_flights.py 北京 上海 2026-03-15

返回结果:航班列表(航班号、航空公司、起降时间、机型、机场、最低价等)

上下文检查规则

  • 如果用户在当前或之前的消息中已经提供了某个参数,则无需再次询问该参数
  • 只向用户询问尚未提供的参数
  • 如果所有参数都已提供,直接发起请求

展示要求:

  • 必须使用代码块包裹脚本输出的表格
  • 必须展示完整表格
  • 参考"输出格式要求"章节的标准格式

2. 舱位详情查询 (searchPrice)

功能:查询特定航班的详细价格信息

必填参数

  • start_code: 出发机场三字码(从 searchFlight 响应结果中获取)
  • end_code: 到达机场三字码(从 searchFlight 响应结果中获取)
  • date: 出发日期(格式 YYYY-MM-DD)
  • flight_no: 航班号

触发词:查看航班详情、这个航班的舱位价格

执行命令

python3 scripts/search_price.py \x3Cstart_code> \x3Cend_code> \x3Cdate> \x3Cflight_no>

示例

python3 scripts/search_price.py PEK PVG 2026-03-15 CA1501

返回结果:该航班的各舱位价格、折扣、退改签规则等详细信息,并将舱位信息保存到 /tmp/flight_seat_items.json 供下单使用

使用场景:用户先使用航班搜索查询航班列表,从返回的航班列表中选择某个航班后,使用此功能查询该航班的详细价格信息

展示要求:

  • 必须使用代码块包裹脚本输出的表格
  • 必须展示完整表格
  • 参考"输出格式要求"章节的标准格式

3. 退改规则和行李额查询 (searchGuestRule)

功能:查询指定舱位的详细退改签规则和行李额

必填参数

  • seat_index: 舱位编号(从舱位详情查询结果中选择,如 1、2、3)

触发词:退改规则、退票规则、改签规则、这个舱位的退改政策、行李额、客规

执行命令

python3 scripts/search_guest_rule.py \x3Cseat_index>

示例

python3 scripts/search_guest_rule.py 1

返回结果:该舱位的退票、改签、行李额等详细规则说明

重要说明

  • 此功能为可选流程,仅在用户明确询问退改规则时调用
  • seat_index 必须来自最近一次舱位详情查询的结果
  • 舱位信息从 /tmp/flight_seat_items.json 文件中读取
  • 如果文件不存在或舱位编号无效,会提示用户先执行舱位详情查询

4. 机票下单 (createOrder)

功能:创建机票订单

必填参数

  • seat_index: 舱位编号(从上一步舱位详情查询结果中选择,如 1、2、3)
  • passenger_name: 乘客姓名
  • passenger_phone: 乘客手机号
  • passenger_id: 乘客证件号

触发词:订这个、预订、下单

执行命令

python3 scripts/create_order.py \x3Cseat_index> \x3Cpassenger_name> \x3Cpassenger_phone> \x3Cpassenger_id>

示例

python3 scripts/create_order.py 1 "张三" "13800138000" "110101199001011234"

返回结果:订单号、支付链接、订单详情链接等

重要说明

  • seat_index 必须来自最近一次舱位详情查询的结果
  • 舱位信息从 /tmp/flight_seat_items.json 文件中读取
  • 如果文件不存在或舱位编号无效,会提示用户先执行舱位详情查询
  • 必须向用户索取乘客姓名、手机号和证件号,不可使用默认值或跳过

5. 订单详情查询 (orderDetail)

功能:查询已创建订单的详细信息

必填参数

  • order_id: 订单号(从下单接口返回的订单号中获取)

触发词:订单详情、查看订单、查询订单、订单状态

执行命令

python3 scripts/order_detail.py \x3Corder_id>

示例

python3 scripts/order_detail.py 69a677bee4b0252bd532e35c

返回结果:订单的详细信息,包括航班信息、乘客信息、支付状态等

重要说明

  • 订单号可以从下单接口的返回结果中获取
  • 此功能可用于查询订单的实时状态和详细信息

6. 取消订单 (cancelOrder)

功能:取消待支付状态的订单

必填参数

  • order_id: 订单号(从下单接口返回的订单号中获取)

触发词:取消订单、不要了、取消这个订单

执行命令

python3 scripts/cancel_order.py \x3Corder_id>

示例

python3 scripts/cancel_order.py 69a677bee4b0252bd532e35c

返回结果:取消成功或失败

重要说明

  • 此功能仅适用于待支付状态的订单
  • 订单号可以从下单接口的返回结果中获取
  • 已支付或已出票的订单无法通过此接口取消,需要使用退票功能

7. 改期航班搜索 (endorseSearchFlight)

功能:查询可改期的航班列表

必填参数

  • order_id: 订单号(从订单详情或下单接口返回的订单号中获取)
  • dep_date: 改期日期(格式 YYYY-MM-DD,需要向用户索取)

触发词:改期、改签、换航班、查改期航班

执行命令

python3 scripts/endorse_search_flight.py \x3Corder_id> \x3Cdep_date>

示例

python3 scripts/endorse_search_flight.py 69a677bee4b0252bd532e35c 2026-03-20

返回结果:可改期的航班列表(航班号、航空公司、起降时间、机场、最低价等)

重要说明

  • 订单号可以从订单详情接口获取
  • 改期日期需要向用户索取
  • 此接口会自动从订单详情中提取 flight_no(从 segmentInfo.flight_no 获取)和 ticket_ids(从 passengerList[0].productId 获取)
  • 返回的航班列表格式与航班搜索接口一致,方便用户选择

展示要求:

  • 必须使用代码块包裹脚本输出的表格
  • 必须展示完整表格
  • 参考"输出格式要求"章节的标准格式

8. 改期舱位详情查询 (endorseSearchPrice)

功能:查询指定改期航班的舱位价格详情(改期费、机票差价费等)

必填参数

  • order_id: 订单号(从订单详情或下单接口返回的订单号中获取)
  • dep_date: 改期日期(格式 YYYY-MM-DD,与改期航班搜索时使用的日期一致)
  • flight_no: 航班号(从改期航班搜索结果中选择)

触发词:查看改期价格、这个航班的改期费、改期舱位详情

执行命令

python3 scripts/endorse_search_price.py \x3Corder_id> \x3Cdep_date> \x3Cflight_no>

示例

python3 scripts/endorse_search_price.py 69a677bee4b0252bd532e35c 2026-03-20 HU7603

返回结果:该航班的各舱位改期费、机票差价费、预估总改期费等详细信息,并将舱位信息保存到 /tmp/endorse_seat_items.json 供改期下单使用

重要说明

  • 此接口必须在改期航班搜索之后调用
  • flight_no 必须来自改期航班搜索返回的航班列表,需要用户选择
  • 此接口会自动从订单详情中提取 ticket_ids(从 passengerList[0].productId 获取)
  • 展示的改期费用信息包括:改期费、机票差价费、预估总改期费
  • 舱位信息会保存到临时文件供后续改期下单使用

展示要求:

  • 必须使用代码块包裹脚本输出的表格
  • 必须展示完整表格
  • 参考"输出格式要求"章节的标准格式

9. 提交改期申请 (endorseApply)

功能:提交改期申请,创建改期订单

必填参数

  • seat_index: 舱位编号(从改期舱位详情查询结果中选择,如 1、2、3)
  • order_id: 原订单号(从订单详情或下单接口返回的订单号中获取)

触发词:确认改期、提交改期申请、改期下单

执行命令

python3 scripts/endorse_apply.py \x3Cseat_index> \x3Corder_id>

示例

python3 scripts/endorse_apply.py 1 69a677bee4b0252bd532e35c

返回结果:改期单订单号、支付链接、订单详情链接等

重要说明

  • seat_index 必须来自最近一次改期舱位详情查询的结果
  • 舱位信息从 /tmp/endorse_seat_items.json 文件中读取
  • 如果文件不存在或舱位编号无效,会提示用户先执行改期舱位详情查询
  • 改期申请成功后会返回新的改期单订单号,需要用户完成支付

10. 预估退票费查询 (refundFeeDetail)

功能:查询退票费用详情

必填参数

  • order_id: 订单号(从订单详情或下单接口返回的订单号中获取)

触发词:查询退票费、退票费用、预估退票费

执行命令

python3 scripts/refund_fee_detail.py \x3Corder_id>

示例

python3 scripts/refund_fee_detail.py 69a677bee4b0252bd532e35c

返回结果:预估退票费(单票)

重要说明

  • 此接口用于在退票前预估退票费用
  • 用户需要确认退票费用后才能提交退票申请
  • 返回的 refund_amount 需要在提交退票申请时使用

11. 提交退票申请 (refundApply)

功能:提交退票申请

必填参数

  • order_id: 订单号(从订单详情或下单接口返回的订单号中获取)
  • refund_amount: 预估退票费(从预估退票费查询接口返回的 refund_amount 获取)

触发词:确认退票、提交退票申请、退票

执行命令

python3 scripts/refund_apply.py \x3Corder_id> \x3Crefund_amount>

示例

python3 scripts/refund_apply.py 69a677bee4b0252bd532e35c 808

返回结果:退票申请结果、退票单号

重要说明

  • 此接口必须在预估退票费查询之后调用
  • refund_amount 必须来自预估退票费查询接口返回的 refund_amount
  • product_ids 会自动从订单详情中获取(从 passengerList 中提取 productId)
  • 退票申请提交后需要等待审核

完整流程示例

用户:3月15号北京到上海的航班

AI 执行

  1. 检查上下文,发现用户已提供出发城市(北京)、到达城市(上海)、日期(3月15号)
  2. 调用 search_flights.py 北京 上海 2026-03-15
  3. 展示航班列表

用户:看一下 CA1501 这个航班的舱位

AI 执行

  1. 从上一轮结果确认航班号 CA1501,连同城市和日期
  2. 调用 search_price.py PEK PVG 2026-03-15 CA1501
  3. 展示舱位列表(价格、退改签规则等)
  4. 提示用户可选择舱位编号进行预订

用户:第1个舱位的退改规则是什么?(可选步骤)

AI 执行

  1. 调用 search_guest_rule.py 1
  2. 展示该舱位的详细退改签规则

用户:订第1个,乘客张三 13800138000 110101199001011234

AI 执行

  1. 从用户输入提取:seat_index=1、passenger_name=张三、passenger_phone=13800138000、passenger_id=110101199001011234
  2. 调用 create_order.py 1 "张三" "13800138000" "110101199001011234"
  3. 展示订单号、支付链接等信息
  4. 提醒用户完成支付

用户:查看订单详情

AI 执行

  1. 从上一轮结果获取订单号(如:69a677bee4b0252bd532e35c)
  2. 如果用户没有提供手机号,向用户索要创建订单时使用的乘机人手机号
  3. 调用 order_detail.py 69a677bee4b0252bd532e35c 13800138000
  4. 展示订单的详细信息

用户:取消订单

AI 执行

  1. 从上一轮结果获取订单号和手机号
  2. 调用 cancel_order.py 69a677bee4b0252bd532e35c 13800138000
  3. 展示取消订单成功或失败的信息

用户:我想改期到3月20号

AI 执行

  1. 从上一轮订单详情中获取订单号和手机号
  2. 向用户确认改期日期(3月20号,格式化为 2026-03-20)
  3. 调用 endorse_search_flight.py 69a677bee4b0252bd532e35c 13800138000 2026-03-20
  4. 展示可改期的航班列表

用户:看一下 HU7603 这个航班的改期价格

AI 执行

  1. 从上一轮改期航班搜索结果中确认航班号 HU7603
  2. 调用 endorse_search_price.py 69a677bee4b0252bd532e35c 13800138000 2026-03-20 HU7603
  3. 展示该航班的改期舱位价格详情(改期费、机票差价费、预估总改期费等)
  4. 提示用户可选择舱位进行改期

用户:确认改期第1个舱位

AI 执行

  1. 从上一轮改期舱位详情查询结果中确认舱位编号 1
  2. 调用 endorse_apply.py 1 69a677bee4b0252bd532e35c 13800138000
  3. 展示改期单订单号、支付链接、订单详情链接等信息
  4. 提醒用户完成支付

用户:我要退票

AI 执行

  1. 从上一轮订单详情中获取订单号、手机号和票号
  2. 调用 refund_fee_detail.py 69a677bee4b0252bd532e35c 13800138000
  3. 展示退票费详情
  4. 必须强制用户确认退票费用,无论退票费是多少(包括¥0),都不得擅自提交退票申请

用户:确认退票

AI 执行

  1. 从上一轮退票费查询结果中获取退款金额
  2. 调用 refund_apply.py 69a677bee4b0252bd532e35c 525 13800138000
  3. 展示退票状态、退票单号等信息
  4. 提醒用户等待审核

输出格式要求

🚨 强制要求:

  1. 禁止用自然语言改写表格内容
  2. 所有表格必须用plaintext代码块包裹
  3. 不得省略或截断任何航班/舱位信息

航班列表展示

查询结果以表格形式平铺展示,每个航班一行,只显示最低价:

=================================================================================================
航班号    航空公司      出发时间    到达时间     出发机场    到达机场    最低价
=================================================================================================
HO2218   吉祥航空      08:45      10:55        大兴       虹桥       ¥470
MF8561   厦门航空      07:55      10:25        大兴       浦东       ¥490
=================================================================================================
共找到 X 个航班
=================================================================================================

舱位详情展示

展示各舱位价格、折扣等详细信息,并标注舱位编号供用户选择:

====================================================================================
编号   舱位      价格      折扣    机建费   燃油费   总票价       状态
====================================================================================
[1]   经济舱     ¥800     9.5     ¥50      ¥20    ¥870     余座充足
[2]   经济舱     ¥850     10      ¥50      ¥20    ¥920     余座充足
====================================================================================

退改规则展示

展示选定舱位的详细退改签规则和行李额:

====================================================================================================
舱位信息: 经济舱 | T舱 | 票面价 ¥800 
====================================================================================================
【退票规则】
----------------------------------------------------------------------------------------------------
  • 未使用的首个航班起飞前168小时(含)到∞小时(不含)退票时,余额再收20%退票费
----------------------------------------------------------------------------------------------------
【改期规则】
----------------------------------------------------------------------------------------------------
  • 起飞前168小时以上:变更费按订座舱位公布运价10%收取
----------------------------------------------------------------------------------------------------
【签转规则】
----------------------------------------------------------------------------------------------------
  不能签转
----------------------------------------------------------------------------------------------------
【行李额】
----------------------------------------------------------------------------------------------------
  • 免费托运行李额:20KG,单件尺寸上限:40*60*100CM
  • 免费手提行李额:5KG,单件尺寸上限:20*40*55CM
====================================================================================================

订单结果展示

展示订单号、支付链接、航班信息等关键信息:

✅ 订单创建成功!

航班信息:
- 航班号: CA1501
- 出发时间: 08:00
- 到达时间: 10:30
- 舱位: 经济舱

订单号: 69a677bee4b0252bd532e35c
支付截止时间: 23:59

💳 [立即支付](https://dwz.cn/TftO1qmp)

订单详情展示

展示订单的完整信息,包括航班信息、乘客信息、支付状态等:

====================================================================================
订单详情
====================================================================================

订单号: 69a677bee4b0252bd532e35c
订单状态: 待支付
创建时间: 2026-03-04 10:30:00
支付截止时间: 2026-03-04 23:59:59

航班信息:
- 航班号: CA1501
- 出发时间: 2026-03-15 08:00
- 到达时间: 2026-03-15 10:30
- 出发机场: 北京首都T3
- 到达机场: 上海虹桥T2
- 舱位: 经济舱

乘客信息:
- 姓名: 张三
- 证件类型: 身份证
- 证件号: 110101199001011234
- 联系电话: 13800138000
- 票号: 888-1234567890

价格信息:
- 票面价: ¥800
- 机建费: ¥50
- 燃油费: ¥20
- 总金额: ¥870

====================================================================================

改期航班搜索展示

展示可改期的航班列表,格式与航班搜索一致:

=========================================================================================
正在搜索改期航班...
原航班号: HU7601
改期日期: 2026-03-20

=========================================================================================
航班号    航空公司      出发时间    到达时间     出发机场    到达机场    最低价
=========================================================================================
HO2218   吉祥航空      08:45      10:55        大兴       虹桥       ¥470
MF8561   厦门航空      07:55      10:25        大兴       浦东       ¥490
=========================================================================================
共找到 2 个航班
=========================================================================================

改期舱位详情展示

展示指定改期航班的各舱位改期费用详情:

==================================================================================================================================
航班信息: HU7603 | 08:25-10:35 | 空客A330 | T2-T2
==================================================================================================================================
编号      舱位          改期费        机票差价费     预估总改期费    状态          
==================================================================================================================================
[1]     经济舱         ¥100         ¥50          ¥150         余座充足        
[2]     经济舱         ¥100         ¥100         ¥200         余座充足        
==================================================================================================================================

共找到 3 个舱位价格
==================================================================================================================================

改期申请结果展示

展示改期申请成功后的关键信息:

改期航班信息:
- 航班号: HU7603
- 出发时间: 08:25
- 到达时间: 10:35

✅ 改期申请成功!

改期单订单号: 69b21e1ce4b0b89fdebddbd4

💳 [立即支付](https://dwz.cn/TftO1qmp)

退票费详情展示

展示退票费用详情:

预估退票费(单票): ¥0
请确认是否同意退票费用,如同意,系统将自动提交退票申请

退票申请结果展示

展示退票申请结果:

================================================================================
✅ 退票申请成功,请等待审核!

退票单号: 69c12345e4b0c12fdeabcdef

温馨提示:
- 退票审核通常需要1-3个工作日
- 退款到账时间取决于银行处理速度
- 您可以随时查询订单状态了解退票进度
================================================================================

注意事项

  1. PII 安全:乘客姓名、手机号、证件号等仅在预订时发送至服务,勿在日志或回复中暴露
  2. 日期格式:所有日期均为 YYYY-MM-DD
  3. 下单前:必须先执行舱位详情查询,获取舱位信息后才能下单
  4. 强制索取信息:下单时必须向用户索取乘客姓名、手机号和证件号,不可使用默认值或跳过
  5. 数据准确性:展示结果时必须基于脚本输出的原始数据,不得修改、添加或删除任何数据
  6. 禁止幻想:不得添加任何脚本输出中不存在的航班信息、价格或推荐内容
  7. 强制确认退票:退票时必须强制用户确认退票费用,无论退票费是多少(包括¥0),都不得擅自提交退票申请
Usage Guidance
要点汇总与建议: - 功能一致性:脚本实现的功能(搜索、查询舱位、下单、改期、退票)与描述一致,使用 python3 发起 HTTP POST 到远端服务(默认 https://app-gate.fenbeitong.com/air_biz/skill/execute)。 - 需要注意的安全/隐私问题(高优先级): 1) apiKey 存储位置:代码将 apiKey 明文写到系统临时目录 (/tmp 或 tempfile.gettempdir()) 的 .fbt_auth.json,这比写入用户主目录或受限存储更易被本地其他用户读取。SKILL.md 文档却写到 ~/.fbt_auth.json,文档与代码不一致。 2) TLS 验证被禁用:common.call_api() 与 call_api_without_auth() 使用 ssl._create_unverified_context(),绕过了 HTTPS 证书验证,存在中间人攻击风险(敏感 PII 与凭证可能被窃取或篡改)。 3) PII 泄露风险:脚本在控制台打印乘客姓名、手机号、证件号等(create_order.py 在请求前打印这些信息),会出现在终端/日志中,和 README 中“不要在日志中暴露 PII”自相矛盾。 4) 未声明的环境影响:可以通过环境变量 FBT_API_URL 更改后端地址(代码读取但文档未列出),应验证该端点是否可信。 - 操作建议: • 若要使用,先联系技能来源或维护者确认 API 服务域名与资质(app-gate.fenbeitong.com 是否为可信服务提供方)。 • 在部署或运行前,修改代码以恢复 TLS 证书验证(移除 ssl._create_unverified_context() 的使用),并尽量使用受保护的凭据存储而不是临时目录(将文件放在用户主目录下并设置合适的文件权限,或使用系统密钥环)。 • 不要在多用户或不受信任的机器上运行,因为 /tmp 中的凭据可能被其他本地用户读取。考虑把 auth 文件放到安全位置并加密。 • 如果关心日志隐私,删除或屏蔽脚本中打印完整乘客证件信息的语句,或确保运行环境不会保存命令行输出到持久日志。 • 要求作者/来源提供主页、隐私政策或服务方说明;目前包元数据缺少主页且来源未知,降低了可信度。 - 结论:该技能并非明显恶意,但实现上存在多项安全与隐私缺陷(尤其是 TLS 验证禁用与在 /tmp 中明文保存凭证),在未修复这些问题并确认后端可信前,不建议在生产或包含敏感 PII 的环境中使用。
Capability Analysis
Type: OpenClaw Skill Name: ai-flight Version: 1.0.1 The flight booking skill bundle contains a significant security vulnerability in `scripts/common.py`, where SSL certificate verification is explicitly disabled using `ssl._create_unverified_context()`. This is particularly concerning because the skill is designed to collect and transmit highly sensitive Personal Identifiable Information (PII), including passenger names, phone numbers, and national ID numbers (as seen in `scripts/create_order.py`), to an external endpoint (app-gate.fenbeitong.com). While the logic appears consistent with its stated purpose of flight management, the intentional bypass of transport layer security for PII makes the bundle high-risk.
Capability Assessment
Purpose & Capability
Skill 的名称、描述与代码一致:提供国内航班搜索、舱位价格、下单、改期、退票等功能。所需运行时仅为 python3,且脚本实现了 SKILL.md 中声明的大部分功能,整体能力与目的相符。
Instruction Scope
SKILL.md 明确说明会将乘客姓名、手机号、证件号等 PII 通过 HTTP POST 发送到外部服务 —— 这与下单功能预期一致,但实现上有问题:scripts/create_order.py 在发起请求前将乘客姓名/电话/证件号打印到 stdout(会进入日志),与 SKILL.md 中“请勿在日志或回复中暴露用户个人信息”的建议自相矛盾。此外 SKILL.md 指出 apiKey 会保存到用户主目录 (~/.fbt_auth.json),但代码实际把鉴权文件存到临时目录(tempdir,通常 /tmp/.fbt_auth.json)——文档与实现不一致并带来隐私/持久性差异。
Install Mechanism
无安装脚本或外部下载,只有 Python 脚本(instruction-only + code files)。仅要求 python3 在 PATH 上,未从网络下载或执行任意外部二进制,安装风险较低。
Credentials
skill.json / SKILL.md 未声明需要任何环境变量,但代码支持并使用 FBT_API_URL 环境变量作为 API 端点(未在文档中显式列出)。鉴权以 apiKey 实现,但 apiKey 以明文写入临时目录文件(get_auth_file_path -> tempfile.gettempdir() + '.fbt_auth.json'),这在多用户或共享系统上容易被其他本地用户读取。总体上所需权限与功能相关,但对 apiKey 的存储位置与未声明的可配置环境变量存在不透明性与过度暴露风险。
Persistence & Privilege
skill 不要求 always:true,也不修改其他技能或系统配置。但它会在临时目录写入多个文件(/tmp/flight_seat_items.json、/tmp/endorse_seat_items.json、/tmp/.fbt_auth.json 等),并在会话间复用保存在临时目录的 apiKey(持久化直到系统清理或重启)。将长期凭据存放在临时目录而不是用户主目录或更安全的密钥存储是一个安全/隐私问题。
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install ai-flight
  3. After installation, invoke the skill by name or use /ai-flight
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
- Initial release of ai-flight (flightAI) skill. - Enables domestic flight search, fare detail query, booking, order management, flight change, and refunds. - Requires user authentication via mobile verification before any operation. - All functions triggered via command-line Python scripts; supports full booking, change, refund, and detail retrieval processes. - Includes privacy notice for handling personal information during booking.
v1.0.0
flightAI 1.0.0 – Initial Release - Provides AI-powered assistant for searching, booking, rescheduling, and refunding domestic flights in China. - Supports full flow: user authentication, flight & seat search, booking, order detail, cancellation, rescheduling, and refunds. - Requires python3 environment for executing API scripts. - Ensures sensitive information (name, phone, ID) only sent to flight service, not exposed in responses or logs. - Offers detailed command-line examples, user guidance, and strict context parameter checks. - Chinese-language prompts and scenarios included for frictionless customer experience.
Metadata
Slug ai-flight
Version 1.0.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is AI机票预订助手?

AI机票助手 - 实现国内航班搜索、舱位查询、预订下单、机票改期、机票退票。适用于用户询问航班、查询机票价格、提交机票订单、改期航班、退票时使用。 It is an AI Agent Skill for Claude Code / OpenClaw, with 115 downloads so far.

How do I install AI机票预订助手?

Run "/install ai-flight" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is AI机票预订助手 free?

Yes, AI机票预订助手 is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does AI机票预订助手 support?

AI机票预订助手 is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created AI机票预订助手?

It is built and maintained by 赵瑞宇 (@ryan-zry); the current version is v1.0.1.

💬 Comments