安装与下载
1 ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install flight-itinerary-comparison
2 手动安装
将技能文件夹复制到以下位置之一
~/.openclaw/skills/
{'/skills/'}
优先级:工作区 › 全局 › 内置
3 提示词安装
将此提示词复制到 Openclaw 即可自动安装。
请帮我使用 Clawhub 安装 skill-flight-itinerary-comparison。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
基本信息
flight-itinerary-comparison
安装指南
- ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install flight-itinerary-comparison - 手动安装
将技能文件夹复制到以下位置之一
全局模式
~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置 - 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 flight-itinerary-comparison。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
更倾向于下载?
获取包含原生技能文件的ZIP压缩包。
下载技能 (.zip)
什么是
Flight Itinerary Comparison 可帮助 AI 代理根据通过 Crawlora 获取的 Agoda 和 Expedia 公开优惠,建立更可靠的航班候选清单。它会统一航线、出行日期、乘客详情、舱位、货币和行程类型,然后比较航班航段、时间、时长、中转次数、价格及已报告的条件。这样,Openclaw Skills 在评估行程取舍时,不会把条件不匹配的搜索结果视为等价。
此技能会保留来源网址和观察时间,区分单人价格与团体价格,并标记缺失或不受支持的信息。它不会预订航班、保证有票、推断行李额度或票价灵活性,也不会声称 Expedia 的出发航段结果构成完整的往返行程。
应用场景
规划行程时比较 Agoda 和 Expedia 上的公开航班优惠。
根据价格、出发时间、中转次数、承运航空公司或旅程时长创建候选清单。
检查两项结果的机场、日期、乘客人数、舱等和价格计算方式是否可比。
查看行程取舍,同时明确列出行李、退款、改签和设施信息,或标记为未知。
当服务商无法表示所需的乘客组合或返程航段选择时,识别其限制。
无需登录、预订或付款,即可准备基于证据的比较简报。
工作原理
确定所需的机场或城市范围、出行日期、乘客人数和年龄、舱位、货币、时间、中转偏好及行李要求。
使用 Agoda 航班地点搜索解析自由文本地点;使用返回的机场代码,并将附近机场视为替代航线,而非完全相同的替代项。
使用双方均支持的等效条件搜索 Agoda 和 Expedia。对于可比较的单程搜索,将 Expedia 设为 one_way,并披露 Agoda 或 Expedia 无法等效表示的乘客组合。
检查 HTTP 状态和应用程序 code,从 data 读取结果,并遵循 Agoda 分页上限,不要假设第一页包含所有优惠。
根据机场、本地日期和时间、承运航空公司及航班号、按顺序排列的航段、中转次数和全程时长匹配优惠。若提供了代码共享及营销承运人与实际运营承运人的区别,应予以保留。
比较价格和条件,同时保留货币、价格计算方式、舱位和票价基础、来源网址、来源日期、检索或抓取时间、税费、行李、灵活性及未知信息。
返回包含取舍和注意事项的候选清单。不要把不完整价格呈现为结账总价,不要推断缺失条款,也不要将出发航段优惠描述为已完成的往返行程。
配置指南
获取 Crawlora API 密钥,并将其设置为环境变量 CRAWLORA_API_KEY。
若已连接,优先使用列出的 Crawlora MCP 工具。否则使用随附的 scripts/crawlora.sh 客户端,该客户端会将密钥发送至 Crawlora 的 API。
查阅 reference/endpoints.md,了解准确的方法和参数。
将请求限制在所需范围和额度内。遇到身份验证错误时停止;遇到 HTTP 429 时退避;上游出现暂时性故障时重试一次。
export CRAWLORA_API_KEY="your-crawlora-key"
Resolve a location
scripts/crawlora.sh /agoda/flights/search-locations keyword="Bangkok"
Search Agoda flights
scripts/crawlora.sh /agoda/flights/search origin=BKK destination=HKT departure_date=2026-10-20 adults=1 cabin_class=Economy page=1
Search Expedia with a comparable one-way request
scripts/crawlora.sh -X POST /expedia/flights/search '{"origin":"BKK","destination":"HKT","departure_date":"2026-10-20","trip_type":"one_way","adults":1,"cabin_class":"COACH","currency":"USD","locale":"en_US"}'
对于 Expedia,请将请求正文作为扁平 REST 正文发送,而不要嵌套在 option 包装对象中。Agoda 支持单程搜索以及成人、儿童和婴儿人数;Expedia 的文档正文支持成人数量,但未提供等效的儿童或婴儿字段。对于不受支持的乘客组合,应予以报告,而不要在不说明的情况下将其与仅成人的结果进行比较。
数据架构
此技能围绕服务商结果和匹配的行程组织比较证据。返回或提供以下字段时应予以保留:
Data group Fields and handling
Search criteria 出发和到达机场代码、机场或城市范围、出发日期及适用的返程日期、乘客人数和年龄、舱位、货币、地区设置及行程类型。
Source provenance 服务商、来源 ID、来源网址、来源日期及检索或抓取时间;这些时间戳应彼此区分。
Itinerary 机场、本地日期和时间、按顺序排列的航段、承运航空公司及航班号(如有提供,还包括营销承运人和实际运营承运人)、中转次数及全程时长。
Price and fare 货币、显示价格、按乘客或团体计算的价格基础、请求条件基础、舱位和票价基础,以及已提供的税费。不要根据不完整数据计算最终结账总额。
Conditions 已报告的行李、退款和改签条款及设施。字段缺失表示信息不可用,并不证明某项服务或条件不存在。
Comparison caveats 未知时区偏移、不受支持的乘客组合、不完整的返程航段信息、缺失的条件,以及任何不等效的航线或价格计算方式。
查询 Agoda 设施时,请使用每个返回航段的机场代码、本地 departure_date_time、flight_number、航空公司 carrier_code,并将 cabin_code 作为请求的 cabin_class;如有票价基础,也应一并提供。以扁平形式发送 segments 对象。将报告的设施视为来源信息,而不是对实际执飞飞机的保证。
高级特性
使用 Agoda 地点搜索,而不是根据城市或机场名称猜测机场代码;同时指出空白的
city_code
和附近机场并不能证明航线完全等效。
统一服务商特有的舱位名称和行程设置,同时清楚显示不受支持的乘客字段以及单程与往返之间的差异。
准确处理 Expedia 仅提供出发航段结果的情况;返程航段选择尚未实现,因此绝不会把出发优惠呈现为完整往返行程。
根据航段顺序、航班身份、中转次数和提供的全程时长匹配行程;若缺乏时区证据,则避免对跨夜或跨越国际日期变更线的旅程进行不安全的本地时钟时间相减。
支持有界请求、Agoda 页码和
last_page
处理、API 错误代码检查、速率限制退避,以及对暂时性上游故障进行一次重试。
如具备所需的航段和票价详情,可针对返回的航段补充指定的 Agoda 设施查询。
保留缺失数据和比较注意事项,不会臆造行李额度、灵活性、汇率、中转可行性、签证资格或联程机票保障。
仅提供比较取舍;除非明确提出要求,否则不会预订、付款、登录或联系航空公司。
name: flight-itinerary-comparison description: Compare public Agoda and Expedia flight offers through Crawlora with matched airports, dates, passengers, cabin, price basis, segment timing, and connection evidence. Use for a flight shortlist or itinerary tradeoff brief while preserving one-way and departing-leg coverage limits.
Flight itinerary comparison
Access and scope
Set CRAWLORA_API_KEY to your Crawlora key. Prefer the listed Crawlora MCP tools when connected; otherwise use the bundled scripts/crawlora.sh, which sends x-api-key to https://api.crawlora.net/api/v1. Read reference/endpoints.md for exact methods and parameters. Check application code as well as HTTP status; payloads are inside data. Stop on authentication errors, back off on 429, and retry a transient upstream failure once. Bound requests by the requested scope and credit budget. Preserve source IDs, URLs, source dates, and retrieval/crawl times separately.
Build a comparable shortlist of observed flight offers. Establish airport versus city scope, travel dates, passenger ages/counts, cabin, currency, timing needs, connection preferences, and baggage requirements before querying providers.
Resolve routes and equivalent search criteria
Resolve free-text airports/cities with Agoda flight location search. Use airports[].code; a city_code can be blank, and nearby airports are alternate routes rather than exact replacements. Do not infer airport codes from names.
Agoda supports one-way search only, with adult/child/infant counts and its own cabin names (Economy, PremiumEconomy, Business, First). Expedia's body supports adult count and cabin names (COACH, PREMIUM_ECONOMY, BUSINESS, FIRST); it exposes no equivalent child/infant fields. State an unsupported passenger mix rather than quietly comparing it with an adult-only query.
Expedia defaults to round_trip, which requires a return date after departure. Set trip_type=one_way for an equivalent Agoda comparison. Send the MCP option value as the flat REST body, not an option wrapper.
Expedia returns departing-leg offers even for a round-trip request; return-leg selection is unimplemented. Preserve displayed price_note and request basis. Do not call a departing offer a completed round-trip itinerary or compare a roundtrip-per-traveler price with a one-way price as if they buy the same trip.
scripts/crawlora.sh /agoda/flights/search-locations keyword="Bangkok"
scripts/crawlora.sh /agoda/flights/search origin=BKK destination=HKT departure_date=2026-10-20 adults=1 cabin_class=Economy page=1
scripts/crawlora.sh -X POST /expedia/flights/search '{"origin":"BKK","destination":"HKT","departure_date":"2026-10-20","trip_type":"one_way","adults":1,"cabin_class":"COACH","currency":"USD","locale":"en_US"}'
Match itineraries and compare conditions
Use returned airports, local dates/times, carrier/flight numbers, segment order, stop count, and whole-journey duration to match offers. Keep marketing/operating carrier and nonstop/direct/connecting distinctions explicit where supplied. For codeshares, verify segment identity rather than double-counting flight numbers. Overnight/date-line trips cannot be compared by subtracting local clock times without timezone evidence; use supplied durations and mark missing offsets.
Follow Agoda page/last_page bounds rather than assuming the first page is every flight. Selected amenity calls use each returned segment's airport codes, local departure_date_time, flight_number, airline carrier_code, and cabin_code (as the body's cabin_class), plus fare basis when available. Send that flat segments object; missing amenities are unavailable content, not proof a service is absent. Amenities are source reports, not guarantees for the aircraft operated.
Preserve currency, per-passenger versus group basis, cabin/fare basis, source URL, observation time, taxes/fees, baggage, refund/change conditions, and unknowns. Do not infer included baggage or flexibility from cabin or an opaque fare code, compute a final checkout total from incomplete prices, or invent a conversion rate. A search snapshot does not guarantee seats, price, connection feasibility, transfer/visa eligibility, or a protected through-ticket. Return an itinerary comparison with price-basis and missing-condition columns and tradeoffs under the user's criteria. Do not book, pay, sign in, or contact an airline unless requested.
电影票房比较