pay-and-book について
pay-and-bookは、ホテル検索からウォレット確認、支払い、予約までを調整するエージェント向けメタスキルです。関連スキルを順に実行し、ホテル選択や入金・支払いの確認を必須にします。
主な機能
- 01ホテル検索・予約スキルの調整
- 02ウォレット認証とUSDC残高の確認
- 03必要に応じた料金プラン表示
- 04ホテル選択と支払い承認の確認
- 05予約・取引情報の要約
活用シーン
- 01USDCでのホテル予約
- 02予約前のウォレット残高確認
- 03予約前の客室プラン比較
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ justintravala/ travel-skills --skill pay-and-bookインストール後、Claude Code で/pay-and-bookを入力して読み込まれたか確認します。
詳細
pay-and-book
ホテル検索とオンチェーン決済を単一のフローにまとめる、エンドツーエンドのオーケストレーションスキルです。これはメタスキルです。コマンド自体は実行せず、ほかのスキルを適切な順序で調整します。
使用するタイミング
ユーザーが予約全体を一度に処理したい場合に、このスキルを使用します。
- 「来週末の東京のホテルを予約して。USDC で支払って」
- 「5 月 1 日から 5 日までパリで 4 つ星のホテルを探して、ウォレットから予約して」
- 「渋谷の近くで 3 泊できるホテルが必要です。すべてお任せします」
ユーザーが明らかに段階ごとの操作を希望している場合は、個別のスキル(search-hotel、book-hotel など)を使用してください。
フロー全体
以下のステップを順番に実行します。前提条件がすでに満たされている場合に限り、そのステップを省略してください。
ステップ 1:ホテルを検索する
search-hotel スキルを使用します。検索結果の上位候補をユーザーに提示し、希望するホテルを尋ねてください。ユーザーに代わって選んではいけません。
ステップ 2:(任意)客室の選択肢を表示する
ユーザーが特定のホテルの異なる料金プランを確認したい場合は、search-room スキルを使用します。それ以外の場合は、search-hotel のデフォルトの packageId で問題ありません。
ステップ 3:ウォレットの準備状況を確認する
認証の前に、現在の状態を確認します。
npx awal@latest balance
該当するケースは 3 つです。
- 未認証 →
coinbase/agentic-wallet-skillsのauthenticate-walletスキルを実行します。ユーザーにメールアドレスを尋ねます。awal が OTP を送信します。 - 認証済みだが USDC が予約総額未満 →
fundスキルを実行します。不足額(booking_total - current_balance + small buffer)を計算し、入金が必要な金額をユーザーに伝えます。 - 認証済みで十分な USDC がある → ステップ 4 に進みます。
ステップ 4:最終確認と予約
book-hotel スキルを使用します。x402 による決済と予約確認を処理します。
ステップ 5:概要を伝える
予約 ID、支払総額(USDC)、tx hash、キャンセル期限を含む、分かりやすい概要をユーザーに伝えます。
判断フロー
User asks to book a hotel autonomously
│
├─ Has destination + dates?
│ No → ask once, gather both
│ Yes ↓
│
├─ search-hotel skill → present results
│
├─ User picked a hotel?
│ No → wait for choice
│ Yes ↓
│
├─ User wants to see other rate plans?
│ Yes → search-room skill
│ No ↓ (use default packageId)
│
├─ Wallet authenticated?
│ No → authenticate-wallet skill
│ Yes ↓
│
├─ USDC balance >= total + 5%?
│ No → fund skill
│ Yes ↓
│
├─ User confirmed total + guest details?
│ No → ask for guest details, summarize, confirm
│ Yes ↓
│
└─ book-hotel skill (x402 pay) → confirm + recap
セッション例
User: Find me a hotel in Tokyo May 1-5 and book it with USDC
Agent: [search-hotel skill]
→ Presents 5 hotels
User: Book the Park Hyatt
Agent: [check wallet] → not authenticated
→ "Need to log in first. What email?"
User: [email protected]
Agent: [authenticate-wallet skill] → email OTP
User: OTP code is 123456
Agent: [authenticate-wallet completes]
→ "Logged in. Wallet balance: 0 USDC."
→ "You'll need 1,800 USDC for this booking. Want to fund the wallet?"
User: Yes, fund 2000
Agent: [fund skill] → onramp link
→ User completes onramp
→ "Wallet now has 2000 USDC."
→ "Ready to book Park Hyatt Tokyo, May 1-5, 1,800 USDC.
What name/email for the guest?"
User: Nguyen Van A, [email protected]
Agent: → "Booking summary: ... Confirm? (yes/no)"
User: yes
Agent: [book-hotel skill — awal x402 pay]
→ "✅ Booked! BK_2026_05_001, paid 1,800 USDC, tx 0xabc..."
重要なルール
- ユーザーが選択するステップを省略してはいけません。 検索結果が明らかに 1 件だけでも、ユーザーに提示して確認を待ってください。
- 自動で入金してはいけません。
fundスキルを実行する前に、必ずユーザーに確認してください。入金にはユーザーによる外部決済が伴います。 - 自動で支払ってはいけません。 最終ステップの
book-hotelでは、必ず概要を表示し、明示的な承認を待ってください。 - 日付、宿泊人数、ホテルの選択、宿泊者情報、入金額などが不明確な場合は、処理を停止して確認してください。
- ユーザーはどのステップでも中断できます(「やっぱり、別の日程で探して」など)。該当する前のステップからやり直してください。
参照するスキル(インストール必須)
| スキル | ソース | 用途 |
|---|---|---|
search-hotel | このパッケージ | ホテルを検索 |
search-room | このパッケージ | (任意)料金プランを確認 |
book-hotel | このパッケージ | x402 決済と予約 |
authenticate-wallet | coinbase/agentic-wallet-skills | メール OTP でログイン |
fund | coinbase/agentic-wallet-skills | Coinbase Onramp 経由で USDC をチャージ |
Coinbase のスキルがインストールされていない場合は、ユーザーに次のように伝えてください。
このフローでは Coinbase のウォレットスキルも必要です。次のコマンドでインストールしてください。
npx skills add coinbase/agentic-wallet-skills