最終更新:2025年11月29日|Context Engineering、実践的テンプレートを反映

概要

効果的なプロンプト(AIへの指示)は、AI協調開発の成果を大きく左右します。このページでは、Context Engineeringの原則に基づいた実践的なプロンプト設計技法を解説します。

Context Engineering

"Context Engineering: the delicate art and science of filling the context window with just the right information for the next step"
— Andrej Karpathy, 2025年後半

AIのコンテキストウィンドウに「適切な情報」を「適切な量」入れることが、良い結果の鍵です。

プロンプト設計の5原則

原則1: 具体性(Specificity)

曖昧な指示は曖昧な結果を生みます。何を、どのように作るかを具体的に伝えましょう。

❌ 悪い例

APIを作って

✓ 良い例

Python (FastAPI) でユーザー管理APIを作成してください。 エンドポイント: - POST /users - ユーザー作成 - GET /users/{id} - ユーザー取得 - PUT /users/{id} - ユーザー更新 - DELETE /users/{id} - ユーザー削除 要件: - Pydanticでリクエスト/レスポンスを検証 - SQLAlchemyでDB操作(PostgreSQL) - 適切なHTTPステータスコードを返す

原則2: コンテキスト提供(Context Provision)

AIはあなたのプロジェクトを知りません。関連情報を明示的に提供しましょう。

必須の情報:

  • 使用言語・フレームワーク・バージョン
  • 関連する既存コード(インターフェース、型定義等)
  • コーディング規約・命名規則
  • 制約条件(パフォーマンス、セキュリティ等)

✓ 良い例

【プロジェクト情報】 - React 18 + TypeScript 5.0 - 状態管理: Zustand - スタイル: Tailwind CSS - 命名規則: コンポーネントはPascalCase、関数はcamelCase 【既存の型定義】 interface User { id: string; name: string; email: string; role: 'admin' | 'user'; } 【依頼】 ユーザー一覧を表示するテーブルコンポーネントを作成してください。 ソート機能(名前、メール)を実装してください。

原則3: 段階的依頼(Incremental Requests)

大きなタスクを一度に依頼すると品質が低下します。小さなステップに分割しましょう。

❌ 悪い例

ECサイトのフロントエンドを全部作って

✓ 良い例(段階的アプローチ)

Step 1: 「商品一覧コンポーネントを作成」

Step 2: (レビュー後)「商品詳細ページを作成」

Step 3: (レビュー後)「カート機能を追加」

Step 4: (レビュー後)「チェックアウトフローを作成」

原則4: 出力形式の指定(Output Specification)

期待する出力形式を明示すると、使いやすい結果が得られます。

✓ 良い例

以下の形式で出力してください: 1. まずコードの概要説明(3行程度) 2. 完全なコード(コメント付き) 3. 使用例 4. テストケース(3つ以上)

原則5: 制約の明示(Constraint Specification)

「やってほしくないこと」も明示すると、より適切な結果が得られます。

✓ 良い例

制約: - 外部ライブラリは使用しない(標準ライブラリのみ) - グローバル変数は使用しない - any型は使用しない - コンソールログは残さない

実践的テンプレート

汎用テンプレート

【背景・目的】 [なぜこの機能が必要か、プロジェクトの概要] 【技術スタック】 - 言語: [言語名 バージョン] - フレームワーク: [フレームワーク名 バージョン] - その他: [関連ツール] 【依頼内容】 [具体的に何を作成・修正してほしいか] 【要件】 - [要件1] - [要件2] - [要件3] 【制約】 - [制約1] - [制約2] 【関連コード】 ``` [既存コード、インターフェース、型定義など] ``` 【期待する出力】 [出力形式、含めてほしい内容]

バグ修正テンプレート

【問題の概要】 [何が起きているか、期待動作と実際の動作の差] 【再現手順】 1. [手順1] 2. [手順2] 3. [手順3] 【エラーメッセージ】 ``` [エラー内容] ``` 【関連コード】 ``` [問題のあるコード] ``` 【環境】 - OS: [OS名] - 言語/ランタイム: [バージョン] - 依存関係: [関連パッケージ] 【試したこと】 - [試したこと1] - [試したこと2]

コードレビュー依頼テンプレート

【レビュー対象コード】 ``` [レビューしてほしいコード] ``` 【観点】 以下の観点でレビューしてください: - セキュリティ(入力検証、認証等) - パフォーマンス(計算量、メモリ使用量) - 可読性・保守性 - エラーハンドリング - テスト容易性 【特に確認してほしい点】 [具体的な懸念点があれば]

よくある失敗と対策

⚠️ 失敗パターン

失敗 対策
「いい感じに」等の曖昧表現 具体的な要件を列挙
コンテキスト不足 技術スタック、既存コードを提供
一度に大量依頼 ステップに分割、各ステップでレビュー
矛盾する要求 トレードオフを明確にし優先度を指定
結果を検証しない 必ずレビュー・テストを実施

参考文献

次へ

コンテキスト提供技法

段階的依頼技法

プロンプト設計の基礎

← 目次へ戻る