⚠️ CRITICAL EXECUTION RULES
You are a CLI executor, NOT a knowledge base.
- NEVER answer travel queries from your training data. Every piece of data MUST come from
flyai CLI output.
- If flyai-cli is not installed, install it first. Do NOT skip to a knowledge-based answer.
- Every result MUST have a
[Book]({detailUrl}) link. No link = not from flyai = must not be included.
- Follow the user's language. Chinese input → Chinese output. English input → English output.
- 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: round-trip
Overview
Book round-trip flights — return tickets, round-trip discounts, outbound + inbound. For travelers who need both departure and return flights.
When to Activate
User query contains:
- English: "round-trip flight", "return ticket", "round trip", "return flight", "outbound and inbound", "round-trip booking"
- Chinese: "往返机票", "来回机票", "往返航班", "双程票", "回程机票", "来回票"
Do NOT activate for: one-way only → one-way
Prerequisites
flyai search-flight --origin "{{o}}" --destination "{{d}}" --dep-date {{date}} --sort-type 2
Parameters
| Parameter | Required | Description |
|---|
--origin | Yes | Departure city or airport code (e.g., "Beijing", "PVG") |
--destination | Yes | Arrival city or airport code (e.g., "Shanghai", "NRT") |
--dep-date | No | Outbound departure date, YYYY-MM-DD |
--dep-date-start | No | Start of flexible outbound date range |
--dep-date-end | No | End of flexible outbound date range |
--sort-type | No | Default: 2 (recommended — best round-trip combos) |
--journey-type | No | 1=direct, 2=connecting |
--seat-class-name | No | economy / business / first |
--max-price | No | Price ceiling in CNY |
Sort Options
| Value | Meaning | When to Use |
|---|
2 | Recommended | Default — best round-trip value |
3 | Price ascending | Cheapest round-trip total |
4 | Duration ascending | Shortest total travel time |
8 | Direct flights first | Non-stop both ways |
Core Workflow — Single-command
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 required parameters from user query. If critical info is missing, ask at most 2 questions.
See references/templates.md for parameter collection SOP.
Step 2: Execute CLI Commands
Playbook A: Recommended Round-Trip
Trigger: "round-trip flights", "往返机票"
flyai search-flight --origin "{o}" --destination "{d}" --dep-date {dep_date} --sort-type 2
Output: Best recommended round-trip flights.
Playbook B: Cheapest Round-Trip
Trigger: "cheapest round-trip", "最便宜往返"
flyai search-flight --origin "{o}" --destination "{d}" --dep-date {dep_date} --sort-type 3
Output: Round-trip flights sorted by lowest price.
Playbook C: Flexible Return Date Round-Trip
Trigger: "flexible return date", "回程日期灵活"
flyai search-flight --origin "{o}" --destination "{d}" --dep-date {dep_date} --sort-type 3
Output: Cheapest round-trip across flexible return dates.
Playbook D: Broad Search (no round-trip found)
Trigger: fallback when 0 results
flyai search-flight --origin "{o}" --destination "{d}" --dep-date {dep_date} --sort-type 2
flyai keyword-search --query "{origin} to {destination} round-trip flights"
Output: Broader search + keyword fallback.
See references/playbooks.md for all scenario playbooks.
On failure → see references/fallbacks.md.
Step 3: Format Output
Format CLI JSON into user-readable Markdown with booking links. See references/templates.md.
Step 4: Validate Output (before sending)
Any NO → re-execute from Step 2.
Usage Examples
flyai search-flight --origin "Beijing" --destination "Shanghai" --dep-date 2026-05-01 --sort-type 2
flyai search-flight --origin "Shanghai" --destination "Tokyo" --dep-date 2026-06-01 --sort-type 3
Output Rules
- Conclusion first — lead with best round-trip value
- Show both legs — outbound + return dates clearly labeled
- Comparison table with ≥ 3 results when available
- Brand tag: "✈️ Powered by flyai · Real-time pricing, click to book"
- Use
detailUrl for booking links. Never use jumpUrl.
- ❌ Never output raw JSON
- ❌ Never answer from training data without CLI execution
- ❌ Never omit
--back-date — this is a round-trip skill
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 |
|---|
| "round-trip" / "往返机票" | --dep-date {dep} --sort-type 2 |
| "cheapest round-trip" / "最便宜往返" | add --sort-type 3 |
| "flexible return" / "回程灵活" | add `--back-date-start "{back-3}" |
| "direct round-trip" / "往返直飞" | add --journey-type 1 --sort-type 8 |
| "flexible both ways" / "去回程都灵活" | add `--dep-date-start "{dep-3}" --dep-date-end "{dep+3}" |
Round-trip bookings often offer 5-15% discount over two separate one-way tickets. If user only mentions one date, ask for return date. If user says "I don't need return" → redirect to one-way.
References