关于 atlas-flight-booking
指导 Agent 仅通过 Atlas Flight Booking CLI 查询航班、预订、付款及检查出票状态,并规定安装、授权、确认和错误处理步骤。
主要功能
- 01搜索并比较航班报价
- 02处理灵活日期和出行偏好
- 03预订前核验当前价格
- 04处理可选服务和创建订单
- 05付款前要求明确批准
- 06检查出票及订单状态
适用场景
- 01比较日期范围内的票价
- 02核价后预订选定航班
- 03因授权或涨价暂停并等待确认
- 04付款状态不确定时查询订单
MCP 相关
仅使用 Atlas Flight Booking CLI 执行航班操作,不直接调用服务。输入未说明其 MCP 功能。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ atlas-doc/ atlas-flight-booking-skill --skill atlas-flight-booking安装后在 Claude Code 中输入/atlas-flight-booking确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/booking-workflow.mdcli-contract.mderror-handling.mdpassenger-input.md详细介绍
Atlas 航班预订
只能通过 Atlas Flight Booking CLI 操作。保留所有不透明 ID 原样不变。根据响应中的 code 分支处理,绝不使用 message,且只呈现规范化的 CLI 字段。
能力相关问题
如果用户只是询问此 Skill 能做什么或如何使用,请直接用用户所用的语言回答。不要检查或安装 CLI、检查授权状态,也不要调用任何服务。回答简洁,并采用以下结构或自然等效形式:
“Atlas Flight Booking 支持使用自然语言查询和预订航班。你可以提供准确日期,也可以描述日期范围、时间偏好或价格要求;我会搜索并比较符合条件的航班。
例如:
- ‘查询 9 月 4 日上海到东京的航班。’
- ‘比较 9 月 1 日至 7 日上海到东京的最低价格。’
- ‘找未来两周东京到大阪最便宜的上午直飞航班。’
选定航班后,还可以继续核价、选择行李和座位、创建订单、余额支付并查询出票状态。涉及涨价、座位替代或支付时,会先获得你的确认。”
除非用户要求了解更多详情,否则不要列举实现细节或不支持的售后操作。
开始
将 0.3.12 视为 CLI 支持的最低版本。运行 atlas-flight --version 并解析稳定的 atlas-flight X.Y.Z 输出。如果命令不可用、版本输出无效,或版本低于 0.3.12,请立即引导安装或升级所需工具,并继续被中断的航班任务。如果已安装版本为 0.3.12 或更高,则不要重新安装,也绝不要降级较新的 CLI。不要询问用户是否允许安装或升级:用户请求使用此 Skill,即授权安装其所需的 CLI。允许宿主显示任何原生执行审批提示,但不要另外询问权限。
如果 uv 不可用,请检测操作系统并运行相应的官方独立安装程序:
- macOS 或 Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh;仅当curl不可用时,使用wget -qO- https://astral.sh/uv/install.sh | sh。 - Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"。
在当前会话中使用新安装的可执行文件;如果 uv 尚未加入 PATH,macOS/Linux 使用 $HOME/.local/bin/uv,Windows 使用 $HOME\.local\bin\uv.exe。当 CLI 缺失、无效或低于最低支持版本时,运行且仅运行 uv tool install --force --python 3.12 atlas-flight-booking==0.3.12,并使用解析出的可执行文件路径。如果 atlas-flight 尚未加入 PATH,使用 uv tool dir --bin 解析工具二进制文件目录,并从该目录调用 atlas-flight;不要要求用户重启终端。验证 atlas-flight --version 现在报告的版本为 0.3.12 或更高,然后继续。只有自动安装或升级确实失败时才停止;此时简洁说明失败原因,并提供官方链接 https://docs.astral.sh/uv/getting-started/installation/。不要改用其他 Python 环境或软件包管理器。
然后运行 atlas-flight auth status --json。仅在返回时保留 data.ticketing_activation_url 和 data.ticketing_blocker;绝不要捏造或推导这两个字段。如果需要授权,请遵循 references/cli-contract.md。说明继续被中断的任务前需要完成 Atlas 授权,并将返回的 URL 显示为描述性可点击链接。简要说明用户需要在页面上执行的操作:使用现有 ATRIP 账号登录并授权,或选择 Create one,完成注册后再登录并授权。请用户返回对话并在授权完成后回复。停止当前轮次,不要轮询。用户确认已完成后,最多等待 120 秒轮询一次,且只有在状态为 AUTHORIZED 后才恢复被中断的任务。
搜索和预订
收集缺失的搜索信息,进行搜索并列出报价。如果保留的 data.ticketing_blocker 为 TOP_UP_REQUIRED,请用友好的语言说明:账户可以继续搜索航班和价格,但余额充值尚未完成,因此暂时无法核价、创建订单或出票。不要将此可用性描述为“实时”。如果返回了 data.ticketing_activation_url,请使用以下中文措辞:“当前账户可以继续查询航班和价格,但充值状态尚未生效,因此暂时不能继续核价、创建订单或出票。你可以前往 ATRIP 工作台查看充值状态;状态更新后,我会重新检查;如果你已选择某个报价,我会先核价确认最新价格。” {ticketing_activation_url} 使用返回的 URL。保留一个 price_status=current 的已选报价。用户表示充值已生效后,检查授权状态。如果 data.ticketing_available=true,则核验所选的 offer_id,即使其先前的搜索结果显示 bookable=false 也一样;该标记表示搜索时的可用性,本身不需要重新搜索。将先前的金额仅视为之前的价格。只有在未选中当前价格报价,或核验返回 OFFER_EXPIRED 或 FLIGHT_UNAVAILABLE 时,才重新搜索。切勿重复使用 price_status=reference 的报价。不要将这些结果描述为独立的价格比较服务,也不要附上其文档链接。
灵活搜索
根据当前日期和用户的时区解析相对日期或模糊日期。将解读后的绝对日期与搜索结果一同呈现。对于一个确定的出发日期,运行一次新的搜索。对于限定日期列表或日期范围,按每个日历日期分别运行一次完整的新搜索,分别保留每个日期的 search_id 和报价 ID,并且只有在尝试过所有请求日期后才合并规范化结果。绝不编造范围参数、将某个日期的搜索结果当作另一个日期的结果重放、静默抽样日期,或在部分比较失败时声称得出了确定的最低价。
比较完整乘客请求的 total_price,而不是人均金额。仅直接比较同一货币的价格;其他货币应分组或明确区分。根据规范化后的报价应用用户提出的出发时间、直飞、机场或航空公司偏好,并说明最终候选名单涵盖的日期。出发地和目的地均为必填项;目的地缺失时,不要将搜索扩大为开放式的“任意目的地”搜索。在继续验证或预订之前,保留所选报价的原始日期和不透明 ID。
如果报价的 price_status=reference,则只能向用户将结果描述为实时航班价格搜索与比价。说明这些结果不支持继续验证价格或出票,并附上指向 https://resources.atriptech.com/api-wen-dang/api-reference/booking-apis/price-compare-search#price-compare-search 的描述性链接,链接文字使用中文“价格查询与比价说明”或用户所用语言中的自然说法。当授权返回 ticketing_available=false、data.ticketing_blocker=TICKETING_ACTIVATION_REQUIRED 和 data.ticketing_activation_url 时,还要说明用户可以通过描述性“ATRIP 工作台”链接打开返回的 URL,完成页面显示的未完成激活步骤,然后返回以便 Agent 检查状态并运行新的搜索。不要猜测未完成的步骤是邮箱验证、订阅还是访问审批。不要暗示仅用于比价的报价之后可以购买,也不要在激活后重用其 ID。不要透露内部产品标签。其他情况下,只验证 CLI 返回的 offer_id。价格验证后如价格下降,告知用户;如价格上涨,须取得新的明确确认。
可选服务、创建订单、付款和出票请遵循 references/booking-workflow.md。收集乘客信息前,请阅读 references/passenger-input.md。可选服务不可用,绝不会阻止价格验证、创建订单、付款或出票。
付款前,展示 CLI 当前的付款摘要,并且仅在 data.order_url 存在时显示该链接,然后等待用户明确批准该摘要。返回的付款确认 ID 必须原样使用,且只能使用一次。如果付款或创建订单的结果不确定,并且已有订单号,则查询状态,绝不重复执行会产生副作用的命令。
遇到 PAYMENT_BALANCE_CHECK_REQUIRED 时,说明付款未能确认,ATRIP 账户余额可能不足。请用户检查余额;仅在返回 data.order_url 时显示该链接,且绝不再次提交付款。之后如需查询状态,只能使用 order status。
强制检查点
- 🛑 **授权:**展示授权链接以及现有账户/新账户的操作说明后,立即结束本轮。只有用户回复授权已完成后,才能轮询。
- 🛑 **价格上涨:**展示原总价和新总价后,立即结束本轮。只有用户明确接受涨价后,才能确认该价格。
- 🛑 **座位备选方案:**选择座位前,暂停操作,等待用户决定若创建订单时该座位不可用该怎么办。
- 🛑 **付款:**展示当前的脱敏付款摘要及任何返回的订单链接后,立即结束本轮。只有用户明确批准该摘要后,才能付款。
安全
不要检查配置、凭据或内部路由。不要直接调用服务。不要泄露乘客输入,也不要将其复制到聊天、日志、命令参数或已保存的 Skill 文件中。对于可重试的只读失败,最多只能进行一次相同的重试;绝不要重试订单创建或付款。
参考资料
构造命令前,请先阅读 references/cli-contract.md。阅读 references/booking-workflow.md 了解端到端流程,阅读 references/passenger-input.md 了解一次性乘客输入,并阅读 references/error-handling.md 了解所有非成功代码。