C
バイブコーディング/入門/Lesson 05

プロンプト実践 — *トークン節約パターン20選*

45分·theory
このチャプター
3/3

プロンプト実践 — *トークン節約パターン20選*

🎯 このlessonを読み終えたら

このlessonを読み終えると、以下の3つを自信を持って実践できるようになります。

  • ✅ プロンプトの4要素(スコープ・コンテキスト・制約・出力形式)
  • ✅ Few-shotとZero-shotの使い分け
  • ✅ Chain-of-Thought・Self-Critiqueパターン

学習目標をチェックリストとして手元に置き、すべてに答えられるようになったらlessonを閉じてください。

なぜ*プロンプトパターン*なのか

核心の一文

同じ結果を10倍少ないトークンで得ることが、プロのバイブコーダーの秘訣。コスト・速度・精度のすべてに差が出ます。

トークン節約 = 単なるコスト削減ではない

効果意味
💰 コストAPI費用が10倍違う
⏱️ 速度出力が短いほど応答が速い
🎯 精度具体的であるほどAIが推測しない
🧠 コンテキスト保持短い出力 → 会話をより長く維持できる

トークン概算式

  • 英語:1単語 ≈ 1.3トークン
  • 日本語:1文字 ≈ 1.5〜2トークン
  • コード:1行 ≈ 10〜30トークン

→ 100行のコード出力 = 約1,500〜3,000トークン。不要な出力を減らすとコスト↓。

このlessonの構成

次の4セクションに20パターンの比較(❌悪い例 vs ✅良い例)を掲載。各ペアに想定トークン差を表示。

そのままCursorに貼り付けて使える形式でまとめています。

パターン1〜5:*スコープ制限*パターン

パターン1 — ファイルを明示する

❌ 「このコードを見て」(想定出力 〜2500トークン)

✅ 「@src/auth.ts の47行目の型エラーだけ修正。他のコードは変更しない」(想定出力 〜150トークン)

16倍の節約@でファイルを指定すると、AIはそのファイルだけを参照します。

パターン2 — 関数単位にスコープを絞る

❌ 「ログインロジックを改善して」(〜3000トークン)

✅ 「@auth.ts のvalidatePassword関数だけ。bcryptのコストを12に更新。他の関数は触らない」(〜200トークン)

パターン3 — 変更なしを強調する

❌ 「ボタンを赤にして」(コンポーネント全体が書き直される可能性あり)

✅ 「@Button.tsx の21行目のbg-blue-500bg-red-500それだけ。他の変更はしない。変更後のdiffだけ見せて」(〜50トークン)

パターン4 — diff形式でリクエストする

❌ 「修正して」(ファイル全体が出力される)

✅ 「変更箇所だけdiff形式で見せて:

diff
- old line
+ new line
」(〜100トークン)

パターン5 — 明示的なOut of scope

❌ 「決済ロジックを見て」(関連ファイルをすべて参照する)

✅ 「@payment.tsだけ。user.ts・order.tsは触らない。決済処理ロジックだけレビュー。READMEも変更しない」

→ AIが他のファイルを勝手に修正しなくなります。

まとめ — パターン1〜5

スコープは小さいほど良い@ファイル + 1行/関数 + 他は変更しない黄金の組み合わせ

パターン6〜10:*コンテキスト圧縮*パターン

パターン6 — CLAUDE.mdを活用する

❌ 「Next.js 15 App RouterにTypeScriptとTailwindとDrizzle ORMを使っているんですが…ログインAPIを作って」(毎回繰り返す)

✅ 「@CLAUDE.md のスタック基準。POST /api/auth/login。zod検証 + bcrypt + JWT」

→ 毎回スタックを説明しなくてよい。30倍の節約(会話ごと)。

パターン7 — 出力形式を明示する

❌ 「手伝って」(自由形式、大抵は冗長)

✅ 「以下の形式で:

  • 変更ファイル一覧
  • 各ファイルのdiff
  • 5行以内の要約」

→ AIはその形式だけ出力します。

パターン8 — コードのみ・説明なし

❌ 「関数を作って」→ 通常はコード + 使い方 + 注意点 + 代替案まで出力

✅ 「コードのみ。説明・コメントなし」(〜70%節約)

説明が本当に必要なときだけ別途リクエストする。

パターン9 — 簡潔な応答をリクエストする

❌ (自由形式の応答)

✅ 「各段落を1行で。結論を先に」

または:「30秒以内で読めるように」

パターン10 — 出力先を明示する

❌ 「テストを書いて」→ AIがどこに置くか悩んで説明

✅ 「@src/auth.tsのvitestテストをsrc/auth.test.tsに書いて。そのファイルをその場所に作成」

→ 追加の会話ゼロ。

まとめ — パターン6〜10

AIに自由度を与えない。形式・場所・長さをすべて明示。出力トークンを50〜70%節約。

パターン11〜15:*明確性*パターン

パターン11 — 入出力を明示する

❌ 「ログイン関数を作って」

✅ 「関数シグネチャ:

ts
async function login(input: LoginInput): Promise<LoginResult>
type LoginInput = { email: string; password: string }
type LoginResult = { ok: true; token: string } | { ok: false; error: string }

bcrypt比較 + JWT発行。エラー時はLoginResult.errorにメッセージを入れる」

→ AIがシグネチャ通りに実装。無意味な推測ゼロ。

パターン12 — 例と反例を提供する

❌ 「バリデーションを追加して」(AIがzod・yup・valibotを勝手に選ぶ)

✅ 「zodでバリデーション:

ts
const schema = z.object({
  email: z.string().email(),
  password: z.string().min(8)
})

このスタイルで追加」

パターン13 — バージョンを明示する

❌ 「Next.jsで…」

✅ 「Next.js 15.0.3 App Routerで…」

バージョンが違えばまったく異なるAPI。明示しないとAIが最新版を推測(間違える可能性あり)。

パターン14 — してはいけないことを禁止する

❌ 「セキュリティを考慮して」

✅ 「セキュリティ考慮事項:

  • dangerouslySetInnerHTMLは絶対に禁止
  • ❌ evalとnew Functionは禁止
  • ❌ ユーザー入力をSQLに直接使用しない
  • ✅ パラメータ化クエリ
  • ✅ DOMPurify」

→ AIが明示的な禁止事項を破らなくなります。

パターン15 — 分からなければ分からないと言わせる

❌ (そのまま質問)

✅ 「確信がない場合は「分からない」と答えて。でたらめを言わないで。関数名・ライブラリ名は公式ドキュメントと照合してから回答して」

→ ハルシネーションが大幅に減少

まとめ — パターン11〜15

明確性 = 推測の排除。シグネチャ・例・バージョン・禁止事項・「分からないなら分からない」をすべてプロンプトに含める

パターン16〜20:*繰り返し回避*パターン

パターン16 — 蓄積されたコンテキストを活用する

❌ (リクエストごとに最初から説明)

✅ 「前の会話を基準に。追加タスク:…」

同じチャットセッション内では、以前のコンテキストをそのまま使う。新しい会話を始めない。

パターン17 — チェイニングパターン

❌ 「関数を作ってテストも作って」→ 一度に両方(長い出力)

✅ 1ステップ:「@auth.ts にvalidatePassword関数だけ」
→ 受け取る
→ 2ステップ:「上記の関数のvitestテストだけ」
→ 受け取る

各ステップで検証 + 短い出力 × 2

パターン18 — リトライの最適化

❌ AI応答が気に入らなかったら「作り直して」→ 最初から(無駄)

✅ 「上記の回答からX部分だけ変えて:

  • bcryptのコスト 10 → 12
  • 他のコードはそのまま」

変更部分だけ新たに生成。

パターン19 — 小さいモデルを先に使う

❌ すべての作業をOpusで

✅ シンプルなタスク → Haiku($1/M入力)
複雑なタスク → Sonnet($3/M)
本当に難しい場合 → Opus($15/M)

Cursorのオプションでモデルを切り替え可能。

パターン20 — プロンプトキャッシング

❌ システムプロンプトを毎回送信

✅ Anthropic APIを使う際はcache_controlを追加:

python
system=[{
    "type": "text",
    "text": "長いシステムプロンプト...",
    "cache_control": {"type": "ephemeral"}
}]

同じシステムプロンプトを5分以内に再利用した場合、90%割引

総まとめ — 20パターン適用の効果

タスク非効率なトークン効率的なトークン節約
小さなバグ修正2,50015016倍
関数追加5,0008006倍
コンポーネント作成8,0001,5005倍
フルスタック機能30,0006,0005倍

平均5〜10倍の節約。月$50 → $5〜10。

まとめ

20パターンの核心:
1. スコープを小さく(@ファイル・関数だけ・他は変更しない
2. コンテキストを圧縮(CLAUDE.md・形式・長さを明示)
3. 明確にする(シグネチャ・バージョン・禁止事項)
4. 繰り返しを回避する(チェイニング・リトライ最適化・キャッシング)

この4つの軸を身につければ、すぐにプロのバイブコーダーになれます。

🤖 AIにこう頼んでみよう

このlessonの概念を理解すれば、AIに具体的に指示できるようになります。漠然とした「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。

  • 「この漠然としたプロンプトを、スコープ・コンテキスト・制約・出力形式の4要素で書き直して」
  • 「このプロンプトはハルシネーションのリスクが高い。エビデンス要求を追加して」

なぜこれがトークンを減らすのか

概念を知らないと、AI応答を受け取っても「それって何ですか?」とまた聞き返す必要があります。その「聞き返し」がトークンを消費します。概念を一度身につければ、会話が一度で完結します。

プロンプト実践 — トークン節約パターン20選 - バイブコーディング