Chuyển đến nội dung chính

レッスン 9: コンテキスト管理 — AI にコンテキストを提供する

コンテキストウィンドウの役割。ファイル、フォルダー、選択内容を添付する方法。 #file、#selection、#editor 参照。ワークスペースのインデックス作成。コードベースを認識したプロンプト。コンテキストを簡潔かつ効果的に保つためのヒント。新しいセッションが必要になるのはいつか、セッションを継続する必要があるのはいつか。

💻 プログラミング — レッスン 9 レッスン 9: コンテキスト管理 — 言語の提供 AIのシーン

GitHub Copilot を使用した Vibe コーディング: 基本から高度まで

パート 3: コードの迅速なエンジニアリング

xdev.asia

1. コンテキストとは何ですか?なぜ重要ですか?

AIモデルは中身を「見る」ことしかできない コンテキストウィンドウ — リクエストごとに処理するテキストの量。十分なコンテキストを提供しない場合、AI は「推測」し、多くの場合、間違った推測をします。

Context window: [System prompt + Custom instructions + Your prompt + Attached files + History]
                ↑ tất cả phải fit trong giới hạn tokens của model

良いコンテキスト = 良いコード。 これが効果的な Vibe コーディングの原則 1 です。

2. Copilot のコンテキストの種類

2.1.暗黙的なコンテキスト (自動)

Copilot は以下を自動的に収集します。

  • ファイルはアクティブです エディターで
  • 選択 現在(ある場合)
  • タブを開く
  • ワークスペースの構造 (ファイル/フォルダーツリー)
  • 診断 (エラー、警告)
  • 端子出力 最寄りの

2.2.明示的なコンテキスト (あなたが提供)

積極的に添付するもの:

  • #ファイル: 特定のファイルを添付します
  • #選択: 選択されているコード
  • #エディター: エディタ内の表示領域全体
  • #コードベース: ワークスペースでの検索セマンティクス
  • #terminalLastCommand: 実行したコマンドの出力
  • ドラッグ&ドロップ ファイルをチャットに追加する
  • 画像: スクリーンショットを添付 (2026 年 3 月の機能)

3. コンテキスト変数を使用する

3.1. #file — 特定のファイルを添付する

// Trong Chat view:
Look at #file:src/models/User.ts and #file:src/services/AuthService.ts
and create a password reset flow following the same patterns.

入力するとき #ファイル:, VS Code には、選択できるファイル ピッカーが表示されます。

3.2. #selection — コードが選択中です

// Select đoạn code trong editor, rồi trong Chat:
Explain #selection and suggest how to optimize it for performance.

3.3. #codebase — ワークスペースでの検索セマンティクス

// Copilot tự tìm files liên quan trong codebase:
#codebase How is authentication implemented in this project?
Show me the auth middleware and token verification logic.

3.4. #terminalLastCommand — 出力ターミナル

// Sau khi chạy test fail trong terminal:
#terminalLastCommand Fix the failing tests. Analyze the error output
and make the necessary code changes.

4. ワークスペースのインデックス作成

VS Code は、Copilot がコードベースを理解できるように、ワークスペースに自動的にインデックスを付けます。

  • セマンティックインデックス: コードの意味を理解する (関数、クラス、関係)
  • シンボルインデックス:関数名、変数、型
  • ファイル構造: プロジェクトの構造を知る

エージェントを実行すると、次のようなツールを使用できます。 検索します。検索、 リストディレクトリ、 読む 提供されたコンテキストに基づいてだけでなく、コードベースを積極的に探索します。

5. 効果的なコンテキスト戦略

5.1.プロンプトが表示される前に正しいファイルを開きます

// Trước khi viết prompt "Create UserService":
// Mở các files liên quan trong editor tabs:
Tab 1: models/User.ts        → Copilot biết User schema
Tab 2: services/AuthService.ts → Copilot biết coding pattern
Tab 3: routes/authRoutes.ts   → Copilot biết route conventions
Tab 4: tests/auth.test.ts     → Copilot biết testing pattern

5.2.既存のパターンを参照する

// Thay vì mô tả pattern từ đầu:
Create a ProductService following the exact same pattern as
#file:src/services/UserService.ts — same error handling,
same repository pattern, same validation approach.

5.3.明示的な制約を提供する

// Context about project conventions:
Our project uses:
- Prisma for database (schema at #file:prisma/schema.prisma)
- Zod for validation (see pattern in #file:src/schemas/userSchema.ts)
- Custom AppError class for errors (#file:src/utils/AppError.ts)

Now create the OrderService with CRUD operations.

6. 新しいセッションと継続セッションはいつですか?

状況 アクション 理由
同じ機能を継続する 続ける コンテキストと履歴を保持する
まったく新しい機能 新しいセッション コンテキストがきれいでノイズがない
コンテキストが長すぎます 新しいセッション + 概要 コンテキストのオーバーフローを回避する
エージェントが間違った方向に進んでしまう 新しいセッション +言い換え 歴史の間違いをリセットする
デバッグ関連の問題 続ける AIはまずそれを修正する方法を知る必要がある

ヒント: 新しいセッションを作成するときの概要

// Khi context quá dài, tạo new session với summary:
Context from previous session:
- We're building a task management app with Next.js 15 + Prisma
- Backend API is done (auth, CRUD for tasks, projects)
- Database schema is finalized
- Currently working on frontend

Continue from: Create the Task list page component with filtering and sorting capabilities.

7. コンテキストとしての画像 (2026 年の機能)

2026 年 3 月からは、 画像を添付する エージェントセッションに移動します。

  • UIデザインのスクリーンショット→「このUIを構築する」
  • エラーのスクリーンショット → 「このエラーを修正する」
  • 図/ワイヤーフレーム → 「このアーキテクチャを実装する」
  • Figma エクスポート → 「このデザインを React コンポーネントに変換」

8. アンチパターンは避けるべきです

  • コードベース全体をダンプする: コンテキストが多すぎる = ノイズ、AI が混乱する
  • コンテキストが提供されていません: AI はすべてを推測する必要があります
  • 添付ファイルは関係ありません: コンテキストウィンドウを無駄にする
  • 継続セッションが長すぎます: コンテキストの劣化、AI は最初の情報を「忘れる」
  • フォーマットなしのコピー&ペーストエラー: AI に混乱を引き起こす

9. まとめ

コンテキスト管理はスキルです Vibe コーディングの品質を決定する:

  • ✅ 正しいファイルを開く → 適切な暗黙的コンテキスト
  • ✅ #file、#selection、#codebase → 明示的なコンテキストを正しく使用する
  • ✅ 既存のパターンを参照 → 一貫した出力
  • ✅ コンテキストが肥大化した場合の新しいセッション → 劣化を回避
  • ✅ UI タスクの画像を添付 → ビジュアルコンテキスト

次の曲はカバーになります 高度なプロンプトパターン — スラッシュ コマンド、チャット参加者、および独自のプロンプト ライブラリを構築する方法。