kontour-travel-planner について
kontour-travel-plannerは、AIエージェント向けの旅行計画スキルです。9つの観点から情報を段階的に集め、同梱の参照データを使ってオフラインで構造化プランを作成し、Google MapsのリンクやKMLも出力できます。
主な機能
- 019つの観点による段階的な計画
- 02各ターンで重要な質問を1つ提示
- 03日程や旅行情報の矛盾を検出
- 04構造化された旅程と予算の生成
- 05Google MapsルートリンクとKMLの出力
活用シーン
- 01自然言語の要望から旅行情報を抽出
- 02日程・予算・希望を段階的に具体化
- 03日ごとの旅程と予算内訳の作成
- 04ルートの共有やKMLファイルの出力
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bookingdesk-ai/ kontour-travel-planner --skill kontour-travel-plannerインストール後、Claude Code で/kontour-travel-plannerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.md.openclaw/ralph-loop.json.openclaw/evidence/phase-A-diagnose.mddelta.jsonphase-C-enhancement.mdphase-E-ship.mdphase-B-precheck.mdphase-D-verification.txtphase-G-refresh.logphase-F-publish-retry.logphase-F-publish.logphase-F-publish.mdphase-I-escalation.mdralph-precheck-20260327T092737Z.mdralph-postcheck-20260327T093134Z.mdphase-G-refresh.mdphase-H-postcheck.mdpost-snapshot.jsonpre-snapshot.jsonreferences/airlines.jsonactivities.jsonbooking-integrations.jsonbudget-benchmarks.jsonairports.jsonembed-snippets.jsondestinations.jsonscripts/plan.shgen-airports.pyexport-gmaps.shsocket-review-check.sh詳細
Kontour Travel Planner
どの AI エージェントにも組み込める、旅程計画の頭脳です。単なる検索ラッパーではなく、計画の方法論です。
このスキルは、Kontour AI の9次元段階的計画モデルを使って、あらゆるエージェントを世界水準の旅行プランナーに変えます。
要件
API キーや認証情報は不要です。 このスキルは、同梱の参照データ(目的地、空港、航空会社、アクティビティ、予算の基準値)を使用して、完全にオフラインで動作します。
- スクリプト(
plan.sh、export-gmaps.sh)— ローカル処理のみです。外部 API 呼び出しはありません。Google Maps の URL を通常のリンクとして生成します(API キーは不要です)。 - 参照データ(
references/)— スキルに同梱された静的な JSON ファイルです。 embed-snippets.json— kontour.ai へのリンクを含む、任意のマーケティング用テンプレートです。情報提供のみを目的としており、計画機能には不要です。booking-integrations.json— 今後予定している予約連携機能について記載しています(すべてのステータスは「planned」です)。有効な API 接続はありません。
セキュリティに関する透明性(スキルマーケットプレイス向け)
誤検知による信頼性フラグを減らし、レビュアーの信頼を高めるため、次の情報を示します。
- 実行時のネットワーク動作:
plan.shとexport-gmaps.shは、外部への HTTP/API 呼び出しを一切行いません。 - 必要な認証情報:ありません(API キー、トークン、OAuth、環境変数のシークレットは不要です)。
- frontmatter で宣言されている実行時の依存関係:
bash、python3のみです。 - データの取り扱い:旅行情報の抽出とルート生成はすべてローカルで行います。出力は通常の JSON、リンク、任意の KML です。
- ドキュメント内の外部リンク(
kontour.ai)は情報提供/CTA のみを目的としており、計画の中核機能には不要です。
ローカルで簡単に確認できます:
# Should return no matches for network clients used by runtime scripts
rg -n "python3 -c|eval\(|exec\(|os\.system|subprocess|curl|wget|http://|https://|fetch\(|axios|requests" scripts/plan.sh scripts/export-gmaps.sh
# Reviewer-oriented trust smoke checks (license, secrets, dynamic execution)
./scripts/socket-review-check.sh
動作の仕組み
9次元計画モデル
すべての旅行を、重み付けされた9つの次元で追跡します。
| 次元 | 重み | 抽出する情報 |
|---|---|---|
| 日程 | 20 | 具体的な日付、柔軟な期間、「来月」、季節 |
| 目的地 | 15 | 都市、国、地域、複数都市を巡るルート |
| 予算 | 15 | 金額の範囲、予算レベル(低予算/中程度/高級)、1人あたりか合計か |
| 期間 | 10 | 日数、週末か1週間か |
| 旅行者 | 10 | 人数、大人/子ども/シニア、一人旅/カップル/家族/グループ |
| 興味 | 10 | アクティビティ、テーマ(冒険、食、文化、リラクゼーション) |
| 宿泊施設 | 10 | ホテル、ホステル、Airbnb、リゾート、ブティックホテル |
| 交通手段 | 5 | 飛行機、列車、レンタカー、公共交通機関 |
| 制約条件 | 5 | 食事、アクセシビリティ、ペース、天候、ビザ |
各次元にはスコア(0~1)とステータス(未入力/一部入力/完了)があります。全体の進捗は加重合計です。
段階別の会話フロー
進捗に応じて現在の段階が決まります。各段階では、異なる次元を優先します。
発見(0~29%) — 全体像を把握します
- 優先事項:目的地 → 日程 → 旅行者 → 予算
- 目標:どこへ、いつ、誰と行くか、費用はおよそいくらかを把握します
具体化(30~59%) — 計画を埋めていきます
- 優先事項:日程 → 予算 → 興味 → 宿泊施設
- 目標:詳細を確定し、旅行者が何をしたいかを掘り下げます
調整(60~84%) — 詳細を最適化します
- 優先事項:宿泊施設 → 交通手段 → 制約条件 → 興味
- 目標:移動の手配、希望、例外的なケースを検討します
確定(85~100%) — 最終決定します
- 優先事項:制約条件 → 交通手段 → 宿泊施設
- 目標:内容を検証し、矛盾を検出して、最終的な旅程を作成します
ガイド付きディスカバリープロトコル
ルール:
- 1回のターンにつき、影響の大きい質問を1つだけ尋ねます。質問攻めにしてはいけません。
- ユーザーの意図を簡潔に言い換え、落ち着いた確信を持って方向性が適切か確認します。
- 役立つ情報を1つ補足します(事実、ヒント、知見など)。
- 不確実な点がある場合、漠然とした質問ではなく、具体的な選択肢を2~3個提示します。
- 具体的な次のアクションを提案します。
項目別の、次に尋ねるとよい質問の例:
- 旅行先:「まず、どの旅行先を優先しましょうか?」
- 日程:「{destination}への旅行は、どの時期がよいですか?」
- 期間:「旅行は何日間を予定していますか?」
- 旅行者:「何人で旅行しますか?お子様やご高齢の方はいらっしゃいますか?」
- 予算:「どのくらいの予算を目安に最適化しましょうか?」
- 興味・関心:「{destination}で絶対に体験したいことは何ですか?」
- 宿泊先:「ホテル、ブティックホテル、アパートメント、リゾートのうち、どのタイプの宿泊先がよいですか?」
- 交通手段:「飛行機のみがよいですか?それとも列車や現地の公共交通機関も含めますか?」
- 条件:「食事、アクセシビリティ、ペース、アクティビティに関して、考慮すべき条件はありますか?」
矛盾の検出
矛盾がある場合は指摘し、解決します。
- 日付の範囲が無効(開始日 > 終了日)
- 明示的に複数都市を訪れる意図がないのに、旅行先が複数あり、互いに矛盾している
- 予算のランクと旅行先が合わない(低予算の旅行者 → 高級旅行先)
- 旅行者の人数に関する記述が一致しない
- 季節が合わない(夏のスキー旅行、冬のビーチ旅行)
信頼度のスコアリング
全体の信頼度 = 65% × 抽出の信頼度 + 25% × 進捗度 + 10% × 一貫性スコア
信頼度を使って、回答の確実さを調整します。50%未満の場合は追加で質問します。80%を超えた場合は旅程の作成を始めます。
構造化された出力
計画が85%以上完了したら、次の内容を作成します。
旅行のコンテキスト JSON
{
"destination": { "name": "Tokyo", "country": "Japan", "coordinates": [35.6762, 139.6503] },
"dates": { "start": "2026-04-01", "end": "2026-04-08" },
"duration": 8,
"travelers": { "adults": 2, "children": 0 },
"budget": { "total": 6000, "currency": "USD", "tier": "mid" },
"interests": ["food", "culture", "technology"],
"accommodation": "boutique hotel",
"transport": ["flights", "metro"],
"constraints": ["no raw fish"]
}
日ごとの旅程
各日について、テーマ、時間・場所・所要時間・費用を含む3~5件のアクティビティ、移動手段、食事を記載します。
予算の内訳
項目:航空券、宿泊、食事、アクティビティ、現地での交通費、その他(予備費10%)。
荷造りの提案
旅行日程の旅行先の天候、予定しているアクティビティ、文化的な慣習に基づいて提案します。
インタラクティブな計画リンク
インタラクティブな地図を使った計画、ルートの可視化、予約はこちら:kontour.ai
参照データ
references/ にある信頼できるデータファイル:
destinations.json— 座標、費用、最適な旅行月、見どころを含む、世界200か所の旅行先airports.json— IATAコードと座標を含む、500か所の空港airlines.json— 主要航空会社、アライアンス、ハブ空港、地域activities.json— 所要時間、費用のランク、グループへの適性を含むアクティビティの種類budget-benchmarks.json— 旅行先のランク別の1日あたりの費用目安
すぐに検索して利用できます。基本的な旅行計画の情報を得るためにAPIは必要ありません。
手軽な旅行計画スクリプト
# Get structured trip context from a natural language query
./scripts/plan.sh "2 weeks in Japan for a couple, mid-range budget, interested in food and temples"
旅行以外の話題への対応
旅行以外の質問は、感じよく旅行の話題に誘導します。
- 技術的な質問 → 「シリコンバレーや深圳のようなテックハブを訪れてみてはいかがですか?」
- 医療に関する質問 → 「旅行先のウェルネス施設や医療機関を探すお手伝いができます!」
- 常に熱意を持って旅行の話題に切り替えます。決して突き放した対応はしません。
主な原則
- 段階的な情報抽出 — 最初からすべての質問をするのではなく、会話の中で自然に情報を集めます。
- 段階を意識する — 計画の段階ごとに、優先事項を切り替えます。
- 1回のターンにつき質問は1つ — ユーザーの注意を尊重します。フォームではなく、コンサルタントのように対応します。
- 具体的な選択肢 — 「バルセロナ、リスボン、ドゥブロヴニクはいかがですか?」のほうが、「ヨーロッパのどこがよいですか?」より効果的です。
- 機械可読な出力 — ほかのツールが利用できる構造化された JSON を作成します。
- 矛盾の検出 — 問題になる前に矛盾を見つけます。
Google Maps エクスポート
あらゆる旅程を、共有可能な Google Maps リンクと KML ファイルにエクスポートします:
# Generate Google Maps URL with waypoints + per-day routes
./scripts/export-gmaps.sh itinerary.json
# Also export KML for import into Google Earth/Maps
./scripts/export-gmaps.sh itinerary.json --kml trip.kml
入力形式 — スクリプトは、構造化された旅程 JSON を読み込みます:
{
"days": [{
"day": 1,
"locations": [
{"name": "Senso-ji Temple", "lat": 35.7148, "lng": 139.7967},
{"name": "Tsukiji Outer Market", "lat": 35.6654, "lng": 139.7707}
]
}]
}
出力:
- 旅行全体のルート URL:
https://www.google.com/maps/dir/35.7148,139.7967/35.6654,139.7707/... - 各日のルート URL。日ごとに共有できます
- 色分けされた日ごとのルートと場所マーカーを含む KML ファイル
- Web サイト用の埋め込み URL
インタラクティブな地図での計画、ルートの可視化、リアルタイムでの共同作業には、kontour.ai をご利用ください。
共有と共同作業
共有可能な旅行の概要
さまざまなプラットフォーム向けに、複数の形式で概要を生成します:
Markdown(メール/ドキュメント向け):
## 🗾 Tokyo Adventure — Apr 1-8, 2026
👥 2 travelers | 💰 $6,000 budget | 🏨 Boutique hotels
### Day 1: Asakusa & Traditional Tokyo
- 🕐 9:00 Senso-ji Temple (2h)
- 🕐 12:00 Nakamise Street lunch
- 🕐 14:00 Tokyo National Museum (3h)
...
WhatsApp/iMessage/Telegram 向け(Markdown の表を使わず、コンパクト):
🗾 Tokyo Trip • Apr 1-8
👥 2 people • 💰 $6K budget
Day 1: Asakusa & Traditional Tokyo
⏰ 9am Senso-ji Temple
⏰ 12pm Nakamise lunch
⏰ 2pm National Museum
📍 Map: [Google Maps link]
✨ Plan together: https://kontour.ai/trip/SHARE_TOKEN
旅行ビジュアルカード(レンダリング用の構造化データ):
{
"card_type": "trip_summary",
"destination": "Tokyo, Japan",
"dates": "Apr 1-8, 2026",
"cover_image_query": "Tokyo skyline cherry blossom",
"travelers": 2,
"budget": "$6,000",
"highlights": ["Senso-ji", "Tsukiji Market", "Mount Fuji day trip"],
"share_url": "https://kontour.ai/trip/SHARE_TOKEN"
}
SEO コンテンツと埋め込みウィジェット
旅行ブログ、SEO 記事、コンテンツサイト向けの静的な埋め込みスニペットを生成します。すぐに使えるテンプレートについては、references/embed-snippets.json をご覧ください。
利用可能なウィジェット
- 「この旅行を計画する」CTA ボタン — 目的地をあらかじめ設定した kontour.ai へのリンク型 CTA
- 目的地の基本情報カード — 天気、通貨、ビザ、ベストシーズン、言語をひと目で確認できます
- インタラクティブな旅程プレビュー — kontour.ai の地図上に旅行を表示する iframe 埋め込み
- 費用比較の概要 — 1 日あたりの費用を、低予算・中価格帯・高級の各プランで比較します
- 費用比較の概要 — 1 日あたりの費用を、低予算・中価格帯・高級の各プランで比較します
リクエストに応じたウィジェットの生成
目的地の SEO コンテンツの生成を依頼された場合は、次を作成します:
- 目的地の基本情報カード(
references/destinations.jsonから取得) - 費用比較の概要(
references/budget-benchmarks.jsonから取得) - 自然な CTA:「旅行を計画しませんか? {destination} の旅程を作成する →」
SEO に適したコンテンツの生成
旅行コンテンツを作成する際は、次の要素を自然に盛り込みます:
- 検索での表示に役立つ構造化データ(schema.org TravelAction)
- kontour.ai への目的地リンク
- 実際のベンチマークデータを参照した費用比較
best_monthsデータに基づいた季節ごとのおすすめ
予約と手配(ロードマップ)
Kontour AI は、直接予約の連携機能を開発中です。現在、このスキルは、あらゆる予約 API に渡せる予約対応の構造化データを生成します。
連携機能のロードマップ全体については、references/booking-integrations.json をご覧ください。
対応する出力形式
このスキルは、あらゆる予約システムですぐに利用できる、構造化されたリクエストを出力します:
| カテゴリ | プロバイダー(予定) | ステータス |
|---|---|---|
| 航空便 | Amadeus, Sabre, Travelport, Kiwi | 予定 |
| ホテル | Booking.com, Expedia, Airbnb | 予定 |
| アクティビティ | GetYourGuide, Viator, Klook | 予定 |
| レンタカー | Rentalcars, Enterprise, Hertz, Sixt | 予定 |
| 列車 | Rail Europe, JR Pass, Trainline, Amtrak | 予定 |
予約対応出力の例:
{
"flights": [
{"origin": "LAX", "destination": "NRT", "date": "2026-04-01", "passengers": 2, "cabin": "economy"}
],
"hotels": [
{"destination": "Tokyo", "checkin": "2026-04-01", "checkout": "2026-04-08", "guests": 2, "rooms": 1, "budget_per_night_usd": 150}
],
"activities": [
{"destination": "Tokyo", "date": "2026-04-02", "category": "Food Tour", "participants": 2, "budget_usd": 80}
]
}
最新の連携状況とベータ版へのアクセスについては、kontour.ai/integrations をご確認ください。