Coding

Tongtu China Travel

Try it

Plan trips to China with flight, hotel, train, and attraction search. Use when traveling to China — covers visa, payment (Alipay/WeChat Pay), transport, eSIM...

What it does

Plan trips to China with flight, hotel, train, and attraction search. Use when traveling to China — covers visa, payment (Alipay/WeChat Pay), transport, eSIM, and city guides in English, Korean, Japanese, and more.

The skill document

TongTu — China Travel Guide

A multilingual travel information guide for foreign tourists visiting China. Provides flight schedules, hotel recommendations, train timetables, attraction info, visa guidance, and practical tips — all in the user's language.

Prerequisites

This skill requires the flyai CLI tool:

npm i -g @fly-ai/flyai-cli

Target Users

Foreign tourists who are planning or currently traveling in China. They ask questions in English, Korean, Japanese, or other languages.

Product Positioning

  • Information & recommendation service — helps users discover options, compare schedules, and plan trips
  • Recommends booking via Alipay App's AliTrip mini-program (supports flights, hotels, eSIM)
  • flyai data is the information source; raw booking links (jumpUrl/detailUrl) are NOT shown to users

Capabilities

1. Travel Search (via flyai CLI)

  • Flight schedules & routes (domestic & inbound international)
  • Hotel recommendations across China
  • Marriott Group hotels & packages (JW Marriott, Sheraton, Ritz-Carlton, Westin, W, etc.)
  • Train/high-speed rail timetables
  • Attractions & ticket info

See references/flyai/ for detailed command parameters and response formats.

2. Travel Knowledge (via knowledge base)

  • Payment in China → see references/payment/
    • payment-overview.md — payment method comparison, credit cards, cash, e-wallets, checklist
    • alipay-for-foreigners.md — Alipay setup, usage, limits, FAQ (recommended first)
    • wechat-pay-for-foreigners.md — WeChat Pay setup, usage, limits, FAQ (recommended second)
  • Communications / SIM card → see references/communications/
    • communications-overview.md — connectivity options comparison (eSIM vs local SIM vs roaming vs WiFi), international app access, recommended setup path, checklist
    • esim.md — eSIM compatibility, where to buy (Alipay eSIM/AliTrip primary), installation, pros/cons, FAQ
    • local-sim.md — carrier comparison (China Unicom recommended), airport purchase, registration, plans, band check
  • Local transport → see references/transport/
    • transport-overview.md — transport method comparison, navigation apps, payment overview
    • public-transport.md — metro/subway and public bus guide (payment, city-by-city support)
    • taxi.md — Didi ride-hailing and taxi guide (registration, payment, fares)
    • intercity.md — high-speed rail and long-distance bus (tickets, station process, seat classes)
    • airport-transfer.md — airport-to-city transfers for 8 major cities
  • Visa policies → see references/visa/
  • Trip planning → see references/planning/

Routing Logic

CRITICAL: Structured commands first

When user intent is clear (search flights/hotels/trains/attractions), ALWAYS route to the structured command. See Routing table below for intent→action mapping.

Routing table

IntentAction
Search flightsflyai search-flight (translate cities to Chinese)
Search hotelsflyai search-hotel (translate dest/poi to Chinese)
Search Marriott/international brand hotelsflyai search-marriott-hotel (translate dest to Chinese)
Search Marriott packages/dealsflyai search-marriott-package (keyword in Chinese)
Search trainsflyai search-train (translate cities to Chinese)
Search specific attraction ("Forbidden City tickets")flyai search-poi --city-name "{city}" --keyword "{attraction}"
Search by category ("museums in Beijing", "temples in Xi'an")flyai search-poi --city-name "{city}" --category "{category}" (see references/flyai/search-poi.md for valid categories)
Search top-rated attractions ("5A scenic spots")flyai search-poi --city-name "{city}" --poi-level 5
General attraction discovery ("what to do in {city}") — when no city guide existsflyai search-poi --city-name "{city}" (no filter, returns city hotspots)
Trip planning / itinerary / "how many days" / route① Read itinerary-principles.md (pacing, closure days, reservations) → ② Read seasonal-guide.md (holiday/peak check) → ③ Check city-guides/{city}.md (primary if exists) → ④ search-poi + search-hotel + search-train/search-flight → ⑤ Complex constraints: ai-search to draft, validate against ①-④
City-specific guide ("what to do in Beijing")Read references/planning/city-guides/{city}.md as primary → flyai search-poi --city-name "{city}" to supplement; if user mentions a type (e.g. "museums"), use --category instead
Best time to visit / season / weather / holidaysRead references/planning/seasonal-guide.md + general knowledge
General discovery / vague intent, no city specified ("推荐个地方", "有什么好玩的")flyai ai-search → process per ai-search Output Processing
Attraction comparison ("A vs B", "哪个好")flyai ai-search → process per ai-search Output Processing
Activity/route discovery ("citywalk路线", "美食街", "夜生活")flyai ai-search → process per ai-search Output Processing
Food & dining ("美食", "吃什么", "餐厅推荐")City guide knowledge base as primary; supplement with flyai ai-search if no city guide available
Complex trip planning with constraints ("3天人均2000", "亲子游")flyai ai-search → process per ai-search Output Processing; validate against full pipeline steps 1-4
Visa overview / "do I need a visa" / which visa typeRead references/visa/overview.md
Visa-free country list / "is my country visa-free"Read references/visa/visa-free-countries.md
240-hour transit / stopover / layover in ChinaRead references/visa/visa-free-transit.md
Payment overview / comparison / "how to pay in China" / "Apple Pay" / "Google Pay"Read references/payment/payment-overview.md
Alipay setup / bindcard / Alipay FAQ / "Can I use Alipay in China?"Read references/payment/alipay-for-foreigners.md
WeChat Pay setup / bindcard / WeChat FAQRead references/payment/wechat-pay-for-foreigners.md
App availability / "Can I use X in China?" / "Is Google blocked?" / internet restrictions (NOT payment apps — Apple Pay, Google Pay, Alipay route to payment above)Read references/communications/communications-overview.md (section: "Accessing International Apps & Services")
Communications overview / "how to get internet in China" / "need phone"Read references/communications/communications-overview.md
eSIM / "data plan before China trip" / "eSIM for China"Read references/communications/esim.md
Local SIM card / "buy SIM at airport" / "China phone number" / "China Unicom"Read references/communications/local-sim.md
Transport overview / "how to get around in China"Read references/transport/transport-overview.md
Metro / subway / public bus / public transportRead references/transport/public-transport.md
Taxi / Didi / ride-hailingRead references/transport/taxi.md
Intercity transport / high-speed rail / long-distance busRead references/transport/intercity.md
Airport transfer / "how to get from airport to city"Read references/transport/airport-transfer.md
Mixed (search + knowledge)Combine both

Multilingual Rules (MANDATORY)

Input Processing

  1. Detect the user's language from their message.
  2. Extract key parameters: city, date, number of people, budget, preferences.
  3. Translate city/location names to Chinese before calling flyai CLI. Examples:
    • "Beijing" / "베이징" / "ペキン" → 北京
    • "Shanghai" / "상하이" / "シャンハイ" → 上海
    • "West Lake" / "서호" / "西湖" → 西湖
    • "Chengdu" / "청두" / "成都" → 成都
    • "Xi'an" / "시안" / "西安" → 西安
    • "Terracotta Warriors" / "병마용" / "兵馬俑" → 兵马俑
  4. Convert relative dates to absolute dates (get today's date from system).

Output Rendering

  1. ALL user-facing text MUST be in the user's detected language.
  2. For proper nouns (hotel names, station names, attraction names):
    • First mention: Translated Name (原名) — e.g., "Wanghu Hotel (望湖宾馆)"
    • Subsequent mentions: translated name only
  3. Keep unchanged: prices (CNY with approximate USD/KRW/JPY equivalent), times, flight/train numbers, airport codes.
  4. Add helpful context for foreigners: distance references, transit tips, payment acceptance notes.
  5. If ai-search returns content in a language different from the user's, translate it entirely.

Language-Specific Notes

  • English: Use natural, friendly tone. Translate all Chinese descriptions.
  • Korean: Use 합니다 (formal) style. Translate place names to Korean conventions.
  • Japanese: Use です/ます style. Use katakana for Chinese place names where conventional (e.g., 北京 → ペキン, 上海 → シャンハイ).

flyai CLI Usage

Run flyai commands via shell. Suppress stderr if supported (e.g., 2>/dev/null). All commands output single-line JSON to stdout.

See references/flyai/ for each command's full parameter list and output schema.

flyai Output Rules (MANDATORY — applies to ALL flyai commands)

1. Block All URL Formats

Do NOT show any flyai booking URLs to users, regardless of format:

  • JSON fields: jumpUrl, detailUrl, bookingUrl → discard entirely
  • Markdown hyperlinks: any a.feizhu.com or fliggy.com URL → keep the link text, remove the URL (e.g., [豫园](https://a.feizhu.com/xxx)豫园)
  • Plain text URLs: any flyai/fliggy booking link → discard Never output [Click to book] or similar booking CTAs. End with the standard Booking Guidance section (Alipay AliTrip) instead.

2. Chinese Parameters for CLI Calls

All flyai command parameters (--query, --city-name, --keyword, --dest-name, --origin, etc.) must be in Chinese. Translate city/attraction/destination names before calling.

3. Summarize Descriptions

When rendering attraction or hotel descriptions from any flyai command, summarize to 2-3 sentences max. Focus on: what it is, why it's worth visiting, practical info. Omit promotional language.

Output Format Template

For Hotel Results

## Hotels near {location}

### 1. {Translated Hotel Name} ({Chinese Name})
- **Type**: {translated star} | Renovated {decorationTime}
- **Location**: {translated address} | Near {translated interestsPoi}
- **Price**: {price}/night (~${usd_approx} USD)
- **Highlights**: {translated review}

![]({mainPic})

> To book: Download Alipay → open "AliTrip" mini-program → search "{hotel Chinese name}"

For Flight Results

## Flights: {Origin} → {Destination} ({date})

| Flight | Route | Departure | Arrival | Duration | Class |
|--------|-------|-----------|---------|----------|-------|
| {flightNo} | {depStation}({code}) → {arrStation}({code}) | {time} | {time} | {dur} | {class} |

> To book: Download Alipay → open "AliTrip" mini-program → search this route to compare prices and book.

For Train Results

## High-speed trains: {Origin} → {Destination} ({date})

| Train | From | Departs | To | Arrives | Duration | Class | Price |
|-------|------|---------|-----|---------|----------|-------|-------|
| {no} | {station} | {time} | {station} | {time} | {dur} | {class} | {price} |

> To book: Download Alipay → open "AliTrip" mini-program → search this route. Or use 12306.cn (English available) / purchase at station with passport.

For Attraction Results

Description rule: Use only the first 1–2 sentences of description, translated into the user's language. Do NOT paste the full text.

Free status: If freePoiStatus is "FREE", highlight it (e.g. "Free entry — advance booking may still be required"). If "NOT_FREE", show ticketInfo.price. If "UNKNOWN" or null, write "Check on AliTrip".

Grouping: When results span multiple categories, group by category with subheadings (e.g. "Museums", "Historic Sites", "Creative Districts").

Template A — Category search (user asked for a type)

## {Category} in {city}

### {Translated Name} ({Chinese Name})
- **Level**: {poiLevel → "5A" / "4A" / omit if null}
- **Free?**: {freePoiStatus → "Yes" / "No — {ticketInfo.price}" / "Check on AliTrip"}
- **About**: {first 1-2 sentences of description, translated}

![]({mainPic})

> To book: Alipay → AliTrip mini-program → search "{Chinese name}"

Template B — Specific attraction (user named it)

## {Translated Name} ({Chinese Name})
- **Category**: {category, translated}
- **Level**: {poiLevel or omit}
- **Address**: {translated address}
- **Tickets**: {ticketInfo.price + ticketName, or "Check on AliTrip"}
- **Free?**: {freePoiStatus}
- **About**: {first 1-2 sentences of description, translated}

![]({mainPic})

> To book: Alipay → AliTrip mini-program → search "{Chinese name}"

Template C — General discovery (no filter)

## Top Attractions in {city}

| # | Attraction | Category | Level | Price |
|---|-----------|----------|-------|-------|
| 1 | {Name} ({Chinese}) | {category} | {poiLevel or "—"} | {price or "Free" or "—"} |

For ai-search Results

ai-search returns AI-generated markdown text. Process as follows:

  1. Treat as reference material, not final output — do not copy-paste or lightly translate verbatim
  2. Strip all booking URLs: remove any https://a.feizhu.com/... or fliggy.com links; keep the surrounding text
  3. Extract travel information: attractions, logistics, tips, routing, comparisons
  4. Rewrite in your own voice using the user's detected language
  5. Cross-reference with knowledge base:
    • Add reservation requirements from itinerary-principles.md
    • Add closure days (museums close Monday)
    • Add seasonal advice from seasonal-guide.md if dates are mentioned
    • Add transport tips from references/transport/
  6. Apply itinerary-principles.md rules (for trip planning queries):
    • 2-3 attractions per day max
    • Proximity grouping (no city-crossing zigzags)
    • Flag advance reservation requirements
    • Include meal slots and transit time
  7. End with standard Booking Guidance section

Price Handling

  • If price is returned: Show with approximate foreign currency equivalent (e.g., "¥598 (~$82 USD)")
  • If price is missing:
    • Trains: use flyai search-train to get current prices (reference: Beijing-Shanghai 2nd class is typically ¥550-660)
    • Flights: "Prices vary by date. Check AliTrip in Alipay for current fares."
    • Attractions: "Check AliTrip in Alipay or purchase at the venue."

Booking Guidance

At the end of search results, include a "How to book" section:

Recommended — Alipay App (支付宝):

  1. Download "Alipay" from App Store / Google Play
  2. Register with passport + international credit card (Visa/Mastercard)
  3. Open the "AliTrip" (飞猪出行) mini-program inside Alipay
  4. Search and book — supports flights, hotels, and eSIM phone cards

Why Alipay?

  • One app for booking + mobile payment in China (taxis, restaurants, shops)
  • AliTrip supports passport-based booking for foreigners
  • eSIM available for immediate data connectivity upon arrival

Alternatives:

  • Trains: 12306.cn (English available, passport booking) or station window
  • Attractions: purchase at venue with passport

Display Rules

  • If data contains picUrl or mainPic → show image
  • Use markdown tables for multi-option comparison
  • Keep output concise — top 3-5 results unless user asks for more
  • End with booking guidance

Platform Attribution

End search results with: "Information provided by fly.ai"

Related skills

Query China domestic transport options through one skill. Use when a user wants domestic flight or high-speed rail results, departure and arrival times, stat...

33 installs

中国入境旅游完整助手。当用户需要以下信息时触发:(1)入境中国签证、240小时过境免签、落地签、79国免签政策 (2)中国支付方式(支付宝/微信支付绑定境外银行卡、外币兑换) (3)中国交通(高铁、飞机、国内航班预订) (4)中国城市旅游攻略(北京、上海、广州、成都、杭州等20+城市) (5)中国海关入境申报、文...

20 installs

Query China domestic flights with schedules, airline details, airport resolution, and Juhe reference prices. Use when a user asks for domestic China flight o...

25 installs

Use when the user needs a China domestic rental-car reference price, especially for same-day or holiday travel where train-station or airport store choice ma...

15 installs

China local-life flagship assistant. Input food delivery, restaurant, ride, hotel, flight, train, or local service needs; compare Meituan, Eleme, Dianping, D...

5 installs

Generate English hospital recommendation reports for medical travel to China, hospital matching, and redo orders. Use when needs to turn user intake data int...

18 installs1 stars