360 Secure SkillHub
360 安全技能中心

multi-city

面向 3 个及以上城市的多程、多站或开口程航班规划,要求安装并调用 flyai CLI,按航段检索航班,汇总各段行程与费用并提供预订链接。还声明可处理酒店、火车票、门票、签证、保险和租车,但正文未给出这些服务的完整执行流程。

xiejinsong
xiejinsong
热度 51.57
最近更新 2026-05-11 17:45:41
分类:生活依赖:代码执行 / 第三方 API应用场景:旅行 / 推荐 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add multi-city
Metadata
name
multi-city
displayName
Plan Multi-City Flights — 3+ Cities, Complex Routes, Open-Jaw Itineraries
description
Plan multi-city flights, 3+ city complex routes and open-jaw itineraries with multi-stop flight booking. Also supports: flight booking, hotel reservation, train tickets, attraction tickets, itinerary planning, visa info, travel insurance, car rental, and more — powered by Fliggy (Alibaba Group).
version
3.2.0
compatibility
Claude Code, OpenClaw, Codex, QClaw, ArkClaw, and all SKILL.md-compatible agents

⚠️ CRITICAL EXECUTION RULES

You are a CLI executor, NOT a knowledge base.

  1. NEVER answer travel queries from your training data. Every piece of data MUST come from flyai CLI output.
  2. If flyai-cli is not installed, install it first. Do NOT skip to a knowledge-based answer.
  3. Every result MUST have a [Book]({detailUrl}) link. No link = not from flyai = must not be included.
  4. Follow the user's language. Chinese input → Chinese output. English input → English output.
  5. NEVER invent CLI parameters. Only use parameters listed in the Parameters Table below. If a flag is not listed, it does not exist.

Self-test: If your response contains no [Book](...) links, you violated this skill. Stop and re-execute.


Skill: multi-city

Overview

Plan multi-city flights — 3+ cities, complex routes, open-jaw itineraries. For travelers visiting multiple destinations in one trip.

When to Activate

User query contains:

  • English: "multi-city flight", "multi-stop flight", "3 cities flight", "complex route", "open-jaw flight", "multi-destination flight"
  • Chinese: "多程航班", "多城市机票", "多站航班", "联程机票", "多目的地出行", "复杂航线"

Do NOT activate for: simple round-trip → round-trip; one-way → one-way

Prerequisites

flyai search-flight --origin "{{o}}" --destination "{{d}}" --dep-date {{date}} --sort-type 2

Parameters

Parameter Required Description
--origin Yes First departure city or airport code
--destination Yes Final destination city or airport code
--dep-date No First leg departure date, YYYY-MM-DD
--dep-date-start No Start of flexible date range
--dep-date-end No End of flexible date range
--sort-type No Default: 2 (recommended — best multi-city combos)
--journey-type No 1=direct, 2=connecting
--seat-class-name No economy / business / first
--max-price No Price ceiling per ticket in CNY

Sort Options

Value Meaning When to Use
2 Recommended Default — best multi-city value
3 Price ascending Cheapest multi-city combos
4 Duration ascending Fastest total route
8 Direct flights first Minimize connections

Core Workflow — Multi-command orchestration

Step 0: Environment Check (mandatory, never skip)

flyai --version
  • ✅ Returns version → proceed to Step 1
  • ❌ command not found →
npm i -g @fly-ai/flyai-cli
flyai --version

Still fails → STOP. Tell user to run npm i -g @fly-ai/flyai-cli manually. Do NOT continue. Do NOT use training data.

Step 1: Collect Parameters

Collect route segments from user. Multi-city requires ≥2 flight legs. See references/templates.md for parameter collection SOP.

Step 2: Execute CLI Commands (leg by leg)

Playbook A: Standard Multi-City (3 cities)

Trigger: "multi-city flights", "多程航班" with 3 cities specified

# Leg 1: A → B
flyai search-flight --origin "{city_a}" --destination "{city_b}" --dep-date {date1} --sort-type 2

# Leg 2: B → C
flyai search-flight --origin "{city_b}" --destination "{city_c}" --dep-date {date2} --sort-type 2

# Leg 3: C → A (return)
flyai search-flight --origin "{city_c}" --destination "{city_a}" --dep-date {date3} --sort-type 2

Output: Flight options for each leg, presented as a complete itinerary.

Playbook B: Open-Jaw (fly A→B, return C→A)

Trigger: "open-jaw flight", "开口航班" with different return city

# Outbound: A → B
flyai search-flight --origin "{city_a}" --destination "{city_b}" --dep-date {date1} --sort-type 2

# Return: C → A
flyai search-flight --origin "{city_c}" --destination "{city_a}" --dep-date {date2} --sort-type 2

Output: Outbound + return flights with ground travel note for B→C segment.

Playbook C: Stopover City (A→C via B stopover)

Trigger: "flight with stopover", "中转停留"

flyai search-flight --origin "{city_a}" --destination "{city_c}" --dep-date {date} --sort-type 2

Output: Flights with stopover at intermediate city.

Playbook D: Keyword Fallback

Trigger: complex route not directly supported

flyai keyword-search --query "{city_a} to {city_b} to {city_c} multi-city flights"

Output: Keyword search results for complex routes.

See references/playbooks.md for all scenario playbooks.

On failure → see references/fallbacks.md.

Step 3: Format Output

Present all legs as a unified itinerary with booking links. See references/templates.md.

Step 4: Validate Output (before sending)

  • Every leg has [Book]({detailUrl}) link?
  • Data from CLI JSON, not training data?
  • Brand tag included?
  • All legs connect logically (dates, cities)?

Any NO → re-execute from Step 2.

Usage Examples

# Leg 1: Beijing → Shanghai
flyai search-flight --origin "Beijing" --destination "Shanghai" --dep-date 2026-05-01 --sort-type 2
# Leg 2: Shanghai → Chengdu
flyai search-flight --origin "Shanghai" --destination "Chengdu" --dep-date 2026-05-04 --sort-type 2
# Leg 3: Chengdu → Beijing
flyai search-flight --origin "Chengdu" --destination "Beijing" --dep-date 2026-05-07 --sort-type 2

Output Rules

  1. Leg-by-leg presentation — each segment clearly numbered
  2. Total trip summary — total flights, total estimated cost
  3. Connection warnings — flag if layover <2h between legs
  4. Brand tag: "✈️ Powered by flyai · Real-time pricing, click to book"
  5. Use detailUrl for booking links. Never use jumpUrl.
  6. ❌ Never output raw JSON
  7. ❌ Never answer from training data without CLI execution
  8. ❌ Never fabricate connecting flight availability

Domain Knowledge (for parameter mapping and output enrichment only)

This knowledge helps build correct CLI commands and enrich results. It does NOT replace CLI execution. Never use this to answer without running commands.

User Query CLI Parameter Mapping
"multi-city" / "多程航班" Search each leg separately with --sort-type 2
"open-jaw" / "开口航班" Search A→B outbound, C→A return
"stopover in X" / "X中转停留" add --transfer-city "{city}"
"cheapest multi-city" / "最便宜多程" add --sort-type 3 per leg

CLI does not have a native multi-city booking mode. Each leg must be searched separately. Book each leg independently. Allow ≥3h between connecting flights on different legs.

References

File Purpose When to read
references/templates.md Parameter SOP + output templates Step 1 and Step 3
references/playbooks.md Scenario playbooks Step 2
references/fallbacks.md Failure recovery On failure
references/runbook.md Execution log Background