Skip to content
Published on

AIプロンプトエンジニアリング完全ガイド:開発者が知るべき30のテクニック

Authors

1. プロンプトエンジニアリングはなぜ重要(じゅうよう)なのか(2025)

AI時代(じだい)のコアスキル

2025(ねん)、AIは開発者(かいはつしゃ)日常(にちじょう)になりました。GitHub Copilot、Claude、GPT-4、Geminiを使(つか)わない開発者(かいはつしゃ)()つけるのが(むずか)しい時代(じだい)です。Stack Overflowの2025(ねん)開発者(かいはつしゃ)アンケートによると、**84%の開発者(かいはつしゃ)がAIコーディングツールを使用(しよう)**しています。

しかし、(おな)じツールを使(つか)っても結果(けっか)千差万別(せんさばんべつ)です。ある開発者(かいはつしゃ)はAIで生産性(せいさんせい)を3(ばい)(たか)め、ある開発者(かいはつしゃ)は「AIは(やく)()たない」と不満(ふまん)()います。(ちが)いは(なん)でしょうか?**プロンプトの品質(ひんしつ)**です。

プロンプトエンジニアの価値(かち)

シリコンバレーでSenior Prompt Engineerの年収(ねんしゅう)は**30(まん)ドル以上(いじょう)**に(たっ)します。Anthropic、OpenAI、Googleのような企業(きぎょう)ではプロンプトエンジニアリングを専門(せんもん)(しょく)として採用(さいよう)しています。

プロンプトの品質(ひんしつ)による出力(しゅつりょく)()実際(じっさい)に**10(ばい)以上(いじょう)**にもなります。以下(いか)(れい)比較(ひかく)してみてください。

(わる)いプロンプト:

APIを作って

()いプロンプト:

Node.js Expressでユーザー認証REST APIを作成してください。

要件:
1. POST /auth/register - メールとパスワードで会員登録
2. POST /auth/login - JWTトークン発行
3. GET /auth/me - 現在のユーザー情報(認証必要)

技術スタック:
- Express 4.x、TypeScript
- bcryptでパスワードハッシュ化
- jsonwebtokenでJWT管理
- Zodで入力値バリデーション

出力形式:各ファイルごとにコードブロックで分けて表示してください。

2番目(ばんめ)のプロンプトの(ほう)がはるかに具体的(ぐたいてき)で、AIが正確(せいかく)(のぞ)結果(けっか)生成(せいせい)できます。

このガイドの対象(たいしょう)

この記事(きじ)以下(いか)のような開発者(かいはつしゃ)のために()かれました:

  • AIコーディングツールを(はじ)めて使(つか)開発者(かいはつしゃ)
  • すでに使(つか)っているが、もっと効果的(こうかてき)使(つか)いたい開発者(かいはつしゃ)
  • プロンプトエンジニアリングを体系的(たいけいてき)(まな)びたい開発者(かいはつしゃ)
  • Claude、GPT-4、Geminiそれぞれの最適(さいてき)活用法(かつようほう)()りたい開発者(かいはつしゃ)

2. 基礎(きそ)テクニック(1-10)

テクニック1:Zero-shot Prompting

Zero-shotは**(れい)(しめ)さずに直接(ちょくせつ)指示(しじ)だけで**AIにタスクを実行(じっこう)させる(もっと)基本的(きほんてき)なテクニックです。日常的(にちじょうてき)なAI使用(しよう)のほとんどがこの方式(ほうしき)です。

核心(かくしん)原則(げんそく) 指示(しじ)具体的(ぐたいてき)明確(めいかく)でなければなりません。

次のPython関数の時間計算量を分析してください:

def find_duplicates(arr):
    seen = set()
    duplicates = []
    for item in arr:
        if item in seen:
            duplicates.append(item)
        else:
            seen.add(item)
    return duplicates

Zero-shotが(てき)している場合(ばあい)

  • 単純

    ( たんじゅん )

    なコード

    説明

    ( せつめい )

    翻訳

    ( ほんやく )

    要約

    ( ようやく )

  • よく()られたパターンのコード生成(せいせい)
  • 文法

    ( ぶんぽう )

    エラーの

    修正

    ( しゅうせい )

不向(ふむ)きな場合(ばあい)

  • 複雑

    ( ふくざつ )

    なビジネスロジックの

    実装

    ( じっそう )

  • 特定

    ( とくてい )

    のコーディングスタイルに

    ( したが )

    必要

    ( ひつよう )

    がある

    場合

    ( ばあい )

  • ドメイン特化(とっか)タスク

テクニック2:Few-shot Prompting

Few-shotはいくつかの(れい)をプロンプトに(ふく)めて、AIに(のぞ)むパターンを学習(がくしゅう)させるテクニックです。Zero-shotより精度(せいど)(おお)きく向上(こうじょう)します。

以下の例のようにコミットメッセージを書いてください:

例1:
変更:ログインページにソーシャルログインボタンを追加
コミット:feat(auth): add social login buttons to login page

例2:
変更:ユーザーリストAPIのレスポンス速度を改善
コミット:perf(api): optimize user list query with pagination

例3:
変更:決済金額の計算エラーを修正
コミット:fix(payment): correct total amount calculation logic

次の変更に対するコミットメッセージを書いてください:
変更:ダークモードでチャートの色が見えない問題を解決

Few-shotのコツ:

  • ( れい )

    は3-5

    ( )

    最適

    ( さいてき )

    ( おお )

    すぎるとトークンの

    無駄

    ( むだ )

  • 多様

    ( たよう )

    なケースをカバーする

    ( れい )

    選択

    ( せんたく )

  • 一貫

    ( いっかん )

    したフォーマットを

    維持

    ( いじ )

テクニック3:Role Prompting(役割(やくわり)付与(ふよ)

AIに特定(とくてい)役割(やくわり)(あた)えると、その専門性(せんもんせい)()った回答(かいとう)生成(せいせい)します。

あなたは10年の経験を持つシニアバックエンドエンジニアです。
大規模トラフィック処理、マイクロサービスアーキテクチャ、
データベース最適化に深い専門知識を持っています。

次のコードをレビューしてください。本番環境で問題になりうる点を見つけてください。
セキュリティ、パフォーマンス、エラーハンドリングの観点から分析してください。

効果的(こうかてき)役割(やくわり)設定(せってい)公式(こうしき)

あなたは[年数]年の経験を持つ[役職]です。
[専門分野1]、[専門分野2]、[専門分野3]に深い専門知識を持っています。
[会社タイプ]環境での経験が豊富です。

テクニック4:System Prompt 設計(せっけい)

System promptはAIの基本(きほん)動作(どうさ)定義(ていぎ)します。APIを(つう)じてAIを活用(かつよう)する(さい)(とく)重要(じゅうよう)です。

[System]
あなたはTypeScriptコードレビューの専門家です。

ルール:
1. 型安全性を最優先で評価します
2. any型の使用を見つけたら必ず指摘します
3. 回答は日本語で行います
4. 各指摘事項に修正コードを含めます
5. 深刻度をCritical、Warning、Infoに分類します

出力形式:
## レビュー結果
### Critical
- [ファイル名:行番号] 説明
### Warning
- [ファイル名:行番号] 説明
### Info
- [ファイル名:行番号] 説明

テクニック5:Instruction Formatting(指示(しじ)のフォーマット()

プロンプトの構造(こうぞう)とフォーマットが回答(かいとう)品質(ひんしつ)(おお)きく左右(さゆう)します。

非構造化(ひこうぞうか)プロンプト((わる)(れい)):

Reactコンポーネント作ってユーザープロフィール表示するやつ名前メールプロフィール写真あってレスポンシブでダークモード対応して

構造化(こうぞうか)プロンプト(()(れい)):

## リクエスト
Reactユーザープロフィールコンポーネントを作成してください。

## 必須要素
1. ユーザー名
2. メールアドレス
3. プロフィール写真(円形サムネイル)

## 技術要件
- React 18 + TypeScript
- Tailwind CSS使用
- レスポンシブデザイン(モバイル/デスクトップ)
- ダークモード対応(CSS変数またはTailwind dark:)

## 追加事項
- Propsインターフェースを別途定義してください
- ローディング状態用のスケルトンUIも含めてください

テクニック6:Output Format Specification(出力(しゅつりょく)形式(けいしき)指定(してい)

AIの出力(しゅつりょく)形式(けいしき)明示(めいじ)すると、後処理(あとしょり)容易(ようい)になり一貫(いっかん)した結果(けっか)()られます。

JSON出力(しゅつりょく)リクエスト:

次のログメッセージを分析し、JSON形式で結果を返してください。

ログ:
ERROR 2025-03-15 14:32:01 [PaymentService] Failed to process payment for order #12345.
Reason: Insufficient funds. User: user@example.com

出力JSONスキーマ:
{
  "timestamp": "ISO 8601形式",
  "level": "ログレベル",
  "service": "サービス名",
  "message": "コアメッセージ",
  "context": {
    "orderId": "注文ID",
    "reason": "失敗理由",
    "user": "ユーザー識別子"
  }
}

様々(さまざま)出力(しゅつりょく)形式(けいしき)

  • JSON:APIレスポンスパース、データ変換(へんかん)
  • Markdownテーブル比較(ひかく)分析(ぶんせき)機能(きのう)整理(せいり)
  • XML構造化(こうぞうか)ドキュメント、設定(せってい)ファイル
  • YAML設定(せってい)、Kubernetesマニフェスト
  • Mermaidダイアグラム:アーキテクチャ、シーケンスダイアグラム

テクニック7:Delimiter Usage(区切(くぎ)文字(もじ)活用(かつよう)

区切

( くぎ )

文字

( もじ )

使

( つか )

うとプロンプトの

( かく )

部分

( ぶぶん )

明確

( めいかく )

分離

( ぶんり )

できます。

XMLタグによる区切(くぎ)り(Claudeで(とく)効果的(こうかてき)):

<context>
このプロジェクトはNext.js 14 App Routerベースのeコマースプラットフォームです。
データベースはPostgreSQL、ORMはPrismaを使用しています。
</context>

<task>
商品検索APIを実装してください。
全文検索(full-text search)をサポートする必要があります。
</task>

<constraints>
- 検索レスポンス時間200ms以内
- SQLインジェクション防止
- ページネーション必須(カーソルベース)
</constraints>

<output_format>
1. Prismaスキーマの変更点
2. API Routeコード
3. 検索クエリ最適化の説明
</output_format>

テクニック8:Constraint Setting(制約(せいやく)条件(じょうけん)設定(せってい)

明確

( めいかく )

制約

( せいやく )

はAIが

範囲

( はんい )

逸脱

( いつだつ )

するのを

( ふせ )

ぎます。

以下のルールを必ず守ってください:

必ず行うこと:
- TypeScript strictモードを使用
- すべての関数にJSDocコメントを記述
- エラーハンドリングにカスタムErrorクラスを使用
- 環境変数はprocess.envの直接アクセスではなくconfigモジュール経由

絶対に行わないこと:
- any型の使用禁止
- console.logの使用禁止(loggerライブラリを使用)
- 同期ファイルI/O禁止
- ハードコードされた定数禁止

テクニック9:TemperatureとTop-pチューニング

Temperatureとtop_pは出力(しゅつりょく)のランダム(せい)制御(せいぎょ)する重要(じゅうよう)なパラメータです。

Temperatureガイド:

Temperature用途(ようと)(れい)
0.0決定的(けっていてき)一貫(いっかん)した出力(しゅつりょく)コード生成(せいせい)数学(すうがく)問題(もんだい)、データパース
0.3若干(じゃっかん)変形(へんけい)許容(きょよう)コードレビュー、技術(ぎじゅつ)ドキュメント
0.7バランスの()れた創造性(そうぞうせい)ブログ執筆(しっぴつ)、ブレインストーミング
1.0最大(さいだい)創造性(そうぞうせい)ストーリー執筆(しっぴつ)、アイデア発散(はっさん)

開発者(かいはつしゃ)への推奨(すいしょう)設定(せってい)

  • コード生成(せいせい):temperature 0.0-0.2
  • コードレビュー:temperature 0.1-0.3
  • ドキュメント作成(さくせい):temperature 0.3-0.5
  • アイデア()し:temperature 0.7-0.9

テクニック10:Token Budgeting(トークン予算(よさん)管理(かんり)

トークンはコストであり、コンテキストウィンドウの限界(げんかい)です。効率的(こうりつてき)なトークン管理(かんり)必要(ひつよう)です。

トークン節約(せつやく)のコツ:

# 悪い例(不必要に長いプロンプト)
こんにちは。今Pythonプロジェクトをやっているのですが、
もしお時間があれば下のコードを見ていただけますか?
本当に感謝します。コードは次の通りです...

# 良い例(簡潔なプロンプト)
次のPythonコードを最適化してください。目標は時間計算量O(n)への改善です。

モデル(べつ)コンテキストウィンドウ(2025(ねん)基準(きじゅん)):

  • Claude 3.5 Sonnet:200Kトークン
  • GPT-4 Turbo:128Kトークン
  • Gemini 1.5 Pro:2Mトークン

3. 推論(すいろん)強化(きょうか)テクニック(11-20)

テクニック11:Chain-of-Thought(CoT)

Chain-of-Thoughtは、AIにステップバイステップで推論(すいろん)させるテクニックです。複雑(ふくざつ)問題(もんだい)での精度(せいど)(おお)きく向上(こうじょう)させます。

基本(きほん)的なCoTプロンプト:

次のマイクロサービスアーキテクチャのボトルネックを分析してください。
ステップバイステップで考えましょう。

アーキテクチャ:
- API Gateway -> User Service -> PostgreSQL
- API Gateway -> Order Service -> MongoDB
- Order Service -> Payment Service (HTTP)
- Payment Service -> External Payment API
- Order Service -> Notification Service (Kafka)

各ステップで:
1. そのサービスの潜在的なボトルネック要因を列挙してください
2. 毎秒10,000リクエストの負荷でどうなるか分析してください
3. 改善策を提案してください

CoTが効果的(こうかてき)場面(ばめん)

  • アルゴリズム問題(もんだい)解決(かいけつ)
  • システムデザイン分析(ぶんせき)
  • デバッグ(エラー原因(げんいん)追跡(ついせき)
  • パフォーマンス最適化(さいてきか)分析(ぶんせき)

テクニック12:Zero-shot CoT

「ステップバイステップで(かんが)えましょう」という簡単(かんたん)なフレーズを追加(ついか)するだけで推論(すいろん)品質(ひんしつ)向上(こうじょう)します。

このSQLクエリが遅い理由を分析し、最適化してください。
ステップバイステップで考えましょう。

SELECT u.name, COUNT(o.id) as order_count, SUM(o.total) as total_spent
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE o.created_at >= '2025-01-01'
GROUP BY u.name
HAVING total_spent > 1000
ORDER BY total_spent DESC;

テクニック13:Tree-of-Thought(ToT)

ToTは**複数(ふくすう)推論(すいろん)経路(けいろ)探索(たんさく)**し、最適(さいてき)解決策(かいけつさく)選択(せんたく)する高度(こうど)なテクニックです。

次のシステムのキャッシュ戦略を設計してください。

システム:1日1000万閲覧のニュースフィードサービス

3つの異なるアプローチをそれぞれ探索してください:

アプローチA:Redisベースの中央集中型キャッシュ
- メリットとデメリットを分析
- 予想パフォーマンス数値を提示

アプローチB:CDN + エッジキャッシング
- メリットとデメリットを分析
- 予想パフォーマンス数値を提示

アプローチC:ハイブリッド(ローカルキャッシュ + 分散キャッシュ + CDN)
- メリットとデメリットを分析
- 予想パフォーマンス数値を提示

最終的に各アプローチを比較し、このシステムに最適な戦略を選んでください。
選択理由をコスト、パフォーマンス、複雑さの観点から説明してください。

テクニック14:Self-Consistency

( おな )

質問

( しつもん )

( たい )

して**

複数回

( ふくすうかい )

推論

( すいろん )

**し、

( もっと )

一貫

( いっかん )

した

回答

( かいとう )

選択

( せんたく )

するテクニックです。

次のコードのバグを3つの異なる視点から分析してください。

コード:
async function processOrders(orders) {
  const results = [];
  for (const order of orders) {
    const result = await processPayment(order);
    results.push(result);
  }
  return results;
}

視点1(パフォーマンスエンジニア):パフォーマンスの問題を見つけてください
視点2(セキュリティエンジニア):セキュリティの脆弱性を見つけてください
視点3(SREエンジニア):信頼性の問題を見つけてください

各視点の分析結果を総合して最終的な改善案を提示してください。

テクニック15:ReAct(Reasoning + Acting)

ReActは**推論(すいろん)行動(こうどう)交互(こうご)(おこな)う**エージェントプロンプトパターンです。

次のプロセスに従ってバグを解決してください。

問題:本番環境で断続的に500エラーが発生

各ステップを「思考 -> 行動 -> 観察」形式で進めてください:

思考1:まず何の情報を確認すべきか?
行動1:エラーログを分析する
観察1:(分析結果を記録)

思考2:ログからどんなパターンが見えるか?
行動2:(次の行動を決定)
観察2:(観察結果を記録)

根本原因を見つけるまでこのプロセスを繰り返してください。
最後に修正コードと再発防止策を提示してください。

テクニック16:Reflection(自己(じこ)反省(はんせい)

AIに自分(じぶん)回答(かいとう)を**批判的(ひはんてき)検討(けんとう)**させます。

次のタスクを実行してください:

ステップ1:以下の要件に合う認証ミドルウェアを実装してください
ステップ2:実装したコードを自分でレビューしてください — セキュリティ脆弱性、エッジケース、パフォーマンス問題を見つけてください
ステップ3:レビューで見つけた問題を修正した最終バージョンを提示してください

要件:
- JWTベースの認証
- トークン有効期限処理
- ロールベースのアクセス制御
- レートリミッティング統合

テクニック17:Decomposition(分解(ぶんかい)

複雑

( ふくざつ )

問題

( もんだい )

を**

( ちい )

さなサブ

問題

( もんだい )

分解

( ぶんかい )

**して

解決

( かいけつ )

します。

次の機能をサブタスクに分解し、それぞれを実装してください。

機能:リアルタイムチャットシステム(WebSocketベース)

分解:
1. まず機能全体を独立したモジュールに分けてください
2. 各モジュールのインターフェース(入出力)を定義してください
3. 依存関係のないモジュールから順に実装してください
4. モジュール間の統合方法を説明してください
5. 全体の動作フローをシーケンスダイアグラムで示してください

テクニック18:Analogical Reasoning(類推(るいすい)推論(すいろん)

馴染

( なじ )

みのある

概念

( がいねん )

( たと )

えて

複雑

( ふくざつ )

なシステムを

説明

( せつめい )

させます。

Kubernetesのコア概念をレストラン運営に例えて説明してください。

各概念について:
1. Kubernetes用語
2. レストランの例え
3. 実際の動作説明
4. コード例(YAML)

扱う概念:Pod、Deployment、Service、Ingress、ConfigMap、Secret、PVC

テクニック19:Meta-prompting(メタプロンプティング)

プロンプトを生成(せいせい)するプロンプトです。プロンプト自体(じたい)最適化(さいてきか)する(さい)使用(しよう)します。

AIコードレビュー自動化システムを構築しています。

以下の要件を満たす最適なシステムプロンプトを作成してください:

1. 目的:PRコードレビューの自動化
2. 入力:Git diff形式のコード変更
3. 出力:構造化されたレビューコメント
4. レビュー項目:セキュリティ、パフォーマンス、可読性、テストカバレッジ
5. トーン:建設的で教育的
6. 言語:日本語

プロンプトには以下を含めてください:
- 役割定義
- 詳細なレビュー基準
- 出力形式テンプレート
- 例外処理ルール
- Few-shotの例1つ

テクニック20:Constitutional AI Prompting

AIに**憲法(けんぽう)(ルール)**を提示(ていじ)し、そのルールに(したが)って行動(こうどう)させます。

以下の原則を必ず遵守してコードを生成してください:

原則1 - セキュリティ:OWASP Top 10の脆弱性を絶対に含めない
原則2 - アクセシビリティ:WCAG 2.1 AA基準を満たす
原則3 - パフォーマンス:Core Web Vitals基準を満たす
原則4 - 保守性:SOLID原則に従う
原則5 - テスト:各関数に最低2つのテストケースを作成する

各コードブロックの後に、どの原則を満たしているかチェックリストで示してください。

4. コーディング特化(とっか)テクニック(21-30)

テクニック21:Context-aware Code Generation(コンテキスト認識(にんしき)コード生成(せいせい)

既存

( きそん )

のコードベースのスタイルとパターンをAIに

( つた )

えると、

一貫

( いっかん )

したコードを

生成

( せいせい )

します。

以下はプロジェクトの既存サービスコードパターンです:

<existing_pattern>
// services/user.service.ts
export class UserService {
  constructor(
    private readonly userRepo: UserRepository,
    private readonly logger: Logger,
  ) {}

  async findById(id: string): Promise<Result<User, ServiceError>> {
    try {
      const user = await this.userRepo.findById(id);
      if (!user) {
        return err(new NotFoundError('User', id));
      }
      return ok(user);
    } catch (error) {
      this.logger.error('Failed to find user', { id, error });
      return err(new InternalError('Failed to find user'));
    }
  }
}
</existing_pattern>

このパターンと同じスタイルでProductServiceを作成してください。
必要なメソッド:findById、findAll(ページネーション付き)、create、update、delete

テクニック22:Rubber Duck Debugging Prompt

AIをラバーダックデバッグパートナーとして活用(かつよう)します。

私のデバッグパートナーとして、次の問題を一緒に解決してください。

症状:ユーザーがログイン後3分で自動的にログアウトされる

わかっていること:
- JWTトークンの有効期限は1時間に設定
- ローカル環境では再現されない
- 本番環境でのみ発生
- 3月14日のデプロイ以降から発生

試したこと:
- トークン有効期限の確認 -> 正常
- ブラウザCookieの確認 -> トークンが消えている

質問形式で私をガイドしてください:
1. まだ確認していない可能性のある原因は?
2. 各原因を検証するための具体的なステップは?
3. 最も可能性が高い原因は何だと推論しますか?

テクニック23:Code Review Prompt Template

体系的

( たいけいてき )

なコードレビューのためのテンプレートです。

以下のコードを次のチェックリストに従ってレビューしてください。

レビューチェックリスト:
1. 正確性:意図通りに動作するか?
2. セキュリティ:SQLインジェクション、XSS、CSRFなどの脆弱性はないか?
3. パフォーマンス:不必要な計算、N+1クエリ、メモリリークはないか?
4. エラーハンドリング:すべての失敗パスが適切に処理されているか?
5. 可読性:変数名、関数名が意味をよく伝えているか?
6. テスタビリティ:テストしやすい構造か?
7. 拡張性:要件変更に柔軟か?

出力形式:
各項目ごとにPass/Fail/Warningを表示し、
FailまたはWarningの場合は具体的な改善コードを提示してください。

深刻度:Critical > Major > Minor > Suggestion

テクニック24:Test Generation from Implementation

実装

( じっそう )

コードを

( もと )

にテストを

自動

( じどう )

生成

( せいせい )

します。

次の関数に対する包括的なテストを作成してください。

関数:
```typescript
export function calculateDiscount(
  originalPrice: number,
  membershipTier: 'basic' | 'silver' | 'gold' | 'platinum',
  couponCode?: string,
): { finalPrice: number; discountRate: number; appliedDiscounts: string[] } {
  // ... 実装コード
}

テスト要件:

  1. テストフレームワーク:Vitest
  2. 各メンバーシップティアごとの割引テスト
  3. クーポンコード適用テスト
  4. 境界値テスト(価格0、負数、非常に大きい値)
  5. エラーケース(無効なクーポン、無効なティア)
  6. 複合割引(メンバーシップ + クーポン)テスト
  7. describe/itパターンで構造化
  8. 各テストにわかりやすい説明

### テクニック25:Refactoring with Specific Goals

リファクタリングの<ruby>目標<rp>(</rp><rt>もくひょう</rt><rp>)</rp></ruby><ruby>具体的<rp>(</rp><rt>ぐたいてき</rt><rp>)</rp></ruby><ruby>提示<rp>(</rp><rt>ていじ</rt><rp>)</rp></ruby>します。

```text
次のコードをリファクタリングしてください。

リファクタリング目標:
1. 関数分離:1つの関数は1つの責務のみ
2. マジックナンバー除去:意味のある定数に置き換え
3. Early returnパターン適用:ネストされたif文を除去
4. 型安全性の強化:ユニオン型と型ガードを活用

リファクタリング過程:
- 変更前と変更後を並べて表示してください
- 各変更の理由を説明してください
- 動作が変更されていないことを説明してください

テクニック26:Architecture Design Prompts

AIと一緒(いっしょ)にシステムアーキテクチャを設計(せっけい)します。

以下の要件に合うシステムアーキテクチャを設計してください。

サービス:リアルタイムオークションプラットフォーム
- 同時ユーザー:最大10万人
- リアルタイム入札更新(レイテンシ100ms以内)
- 決済処理(決済ゲートウェイ連携)
- 画像アップロード(商品あたり最大10枚)

成果物:
1. ハイレベルアーキテクチャ図(Mermaid)
2. 各コンポーネントの技術スタック選定と理由
3. データフロー図
4. スケーラビリティ戦略(水平スケーリングポイント)
5. 障害対応戦略(SPOF特定と代替案)
6. 予想月額コスト(AWSベース)

テクニック27:Documentation Generation

コードからドキュメントを自動(じどう)生成(せいせい)します。

以下のAPIエンドポイントコードを基にAPIドキュメントを作成してください。

形式:OpenAPI 3.0 YAML

含める内容:
1. エンドポイント説明
2. リクエストパラメータ(path、query、body)
3. レスポンススキーマ(成功/失敗の両方)
4. 認証方式
5. レートリミット情報
6. 使用例(curl)
7. エラーコード表

テクニック28:Error Explanation and Fix

エラーメッセージを分析(ぶんせき)修正(しゅうせい)方法(ほうほう)提示(ていじ)します。

次のエラーを分析して修正してください。

エラーメッセージ:
TypeError: Cannot read properties of undefined (reading 'map')
    at UserList (UserList.tsx:15:23)
    at renderWithHooks (react-dom.development.js:16305:18)

コンテキスト:
- React 18 + TypeScriptプロジェクト
- APIからユーザーリストを取得してレンダリングするコンポーネント
- 断続的に発生(ネットワークが遅い時)

以下を含めてください:
1. エラー原因分析(なぜundefinedなのか)
2. 修正コード
3. 同じパターンのエラーを防ぐための一般的なガイドライン
4. 型でこのエラーをコンパイル時にキャッチする方法

テクニック29:Performance Optimization Prompts

パフォーマンス最適化(さいてきか)体系的(たいけいてき)実行(じっこう)します。

次のAPIエンドポイントのパフォーマンスを最適化してください。

現在の状態:
- 平均レスポンスタイム:2.5秒
- P99レスポンスタイム:8秒
- 毎秒リクエスト数:500 RPS
- 目標:平均200ms以内、P99 500ms以内

分析順序:
1. 現在のコードでパフォーマンスのボトルネックを特定してください
2. 各ボトルネックに対する最適化方法を提案してください
3. 予想改善効果を数値で表示してください
4. 最適化されたコードを提示してください
5. 最適化前後を比較するベンチマークコードを作成してください

テクニック30:Security Audit Prompts

AIを活用(かつよう)してセキュリティ監査(かんさ)実施(じっし)します。

次のコードに対してセキュリティ監査を実施してください。

監査項目:
1. OWASP Top 10(2021)基準の脆弱性
2. 認証・認可の脆弱性
3. データ露出リスク
4. 依存関係の脆弱性の可能性
5. 設定ミス

出力形式:
各発見事項について:
- 脆弱性タイプ:(例:A01 Broken Access Control)
- 深刻度:Critical / High / Medium / Low
- 場所:ファイル名と行番号
- 説明:脆弱性がどのように悪用される可能性があるか
- 修正コード:安全なコード例
- 参考:CWE番号または関連ドキュメントリンク

5. モデル(べつ)最適化(さいてきか)

Claude、GPT-4、Gemini 比較(ひかく)

テクニックClaudeGPT-4Gemini
XMLタグ区切(くぎ)非常(ひじょう)効果的(こうかてき)普通(ふつう)普通(ふつう)
JSONモード対応(たいおう)ネイティブ対応(たいおう)対応(たいおう)
システムプロンプト非常(ひじょう)重要(じゅうよう)重要(じゅうよう)重要(じゅうよう)
ロングコンテキスト200K128K2M
マルチモーダル画像(がぞう)分析(ぶんせき)画像(がぞう)+DALL-E画像(がぞう)+動画(どうが)+音声(おんせい)
コード実行(じっこう)なしCode Interpreterコード実行(じっこう)対応(たいおう)
関数(かんすう)()()Tool UseFunction CallingFunction Calling

Claude最適化(さいてきか)のコツ

Claudeで最高(さいこう)結果(けっか)()るためのコツです:

1. XMLタグを積極的(せっきょくてき)活用(かつよう)してください

<context>プロジェクトの背景と技術スタック</context>
<task>具体的なタスク内容</task>
<constraints>制約条件</constraints>
<examples>参考例</examples>
<output_format>望む出力形式</output_format>

2. 「ステップバイステップで(かんが)えてください」を明示的(めいじてき)にリクエストしてください

この問題をステップバイステップで分析してください。
各ステップの推論過程を見せてください。

3. システムプロンプトを十分(じゅうぶん)活用(かつよう)してください

Claudeはシステムプロンプトに(とく)(つよ)反応(はんのう)します。役割(やくわり)、ルール、フォーマットをシステムプロンプトに()れると一貫(いっかん)した結果(けっか)()られます。

GPT-4最適化(さいてきか)のコツ

1. JSONモードを活用(かつよう)してください

レスポンスをJSON形式でお願いします。
他のテキストなしで純粋なJSONのみを返してください。

2. Function Callingを活用(かつよう)してください

GPT-4のネイティブFunction Callingは構造化(こうぞうか)された出力(しゅつりょく)非常(ひじょう)効果的(こうかてき)です。API統合(とうごう)(さい)(とく)有用(ゆうよう)です。

3. Code Interpreterを活用(かつよう)してください

データ分析(ぶんせき)可視化(かしか)複雑(ふくざつ)計算(けいさん)必要(ひつよう)場合(ばあい)、Code Interpreterを活用(かつよう)すると正確(せいかく)結果(けっか)()られます。

Gemini最適化(さいてきか)のコツ

1. ロングコンテキストを活用(かつよう)してください

Geminiの2Mトークンコンテキストウィンドウは、コードベース全体(ぜんたい)一度(いちど)分析(ぶんせき)する(さい)有利(ゆうり)です。

以下はプロジェクト全体のソースコードです。
(全コードを添付)
このコードベース全体を分析してアーキテクチャの改善点を提案してください。

2. マルチモーダル入力(にゅうりょく)活用(かつよう)してください

スクリーンショット、ホワイトボードの写真(しゃしん)、ダイアグラム画像(がぞう)入力(にゅうりょく)として活用(かつよう)できます。

3. Groundingを活用(かつよう)してください

Google検索(けんさく)ベースのgroundingで最新(さいしん)情報(じょうほう)活用(かつよう)した回答(かいとう)()ることができます。


6. プロンプトアンチパターン

アンチパターン1:曖昧(あいまい)指示(しじ)

# 悪い例
コードを直して

# 良い例
次のPython関数でN+1クエリ問題を解決してください。
SQLAlchemyのjoinedloadを使って最適化してください。

アンチパターン2:情報(じょうほう)過多(かた)

# 悪い例
(10,000行のコードを全て貼り付け)
このコード全部レビューして

# 良い例
以下は決済処理モジュールのコアロジックです(関連部分のみ抜粋)。
金額計算部分で浮動小数点エラーが疑われます。
その部分を重点的にレビューしてください。

アンチパターン3:矛盾(むじゅん)する制約(せいやく)条件(じょうけん)

# 悪い例
速く動いてメモリも最小限にして
コードも最大限読みやすくして
全エッジケース処理するけどコードは20行以内で

# 良い例
優先順位:
1. (必須)メモリ使用量100MB以内
2. (重要)レスポンスタイム200ms以内
3. (推奨)コードの可読性(可能な範囲内で)

アンチパターン4:ハルシネーション誘発(ゆうはつ)プロンプト

# 悪い例
React 25の新しいServer Actions APIの使い方を教えて
(存在しないバージョン/機能について質問)

# 良い例
Reactの最新Server Actions APIについて知っている範囲で説明してください。
確実でない情報はそう伝えてください。

アンチパターン5:単純(たんじゅん)タスクへの過剰(かじょう)プロンプト

# 悪い例(単純な変数名変更に対する長文プロンプト)
あなたは20年の経験を持つソフトウェアアーキテクトです。
クリーンコードの原則に従い、次の変数名を改善してください。
変数名:x
コンテキスト:ユーザーの年齢を格納する変数です。

# 良い例
変数名xを意味のある名前に変えてください。(ユーザー年齢の格納用)

7. プロンプトチェイニングとエージェント

プロンプトチェイニングの概要(がいよう)

プロンプトチェイニングは**複数(ふくすう)のプロンプトを順次(じゅんじ)接続(せつぞく)**して複雑(ふくざつ)なタスクを実行(じっこう)するテクニックです。1つのプロンプトの出力(しゅつりょく)(つぎ)のプロンプトの入力(にゅうりょく)になります。

(れい):コードリファクタリングチェイン

チェイン1:分析
「次のコードのコードスメルを列挙してください。JSON配列で出力してください。」

チェイン2:優先順位付け
「次のコードスメルリストを深刻度順にソートしてください。(入力:チェイン1の出力)」

チェイン3:修正
「最も深刻な3つのコードスメルを修正したコードを提示してください。(入力:チェイン2の出力)」

チェイン4:検証
「修正されたコードがオリジナルと同じように動作するか検証してください。(入力:チェイン3の出力)」

エージェントループ(Observe - Think - Act)

AIエージェントは**観察(かんさつ)-思考(しこう)-行動(こうどう)**ループを()(かえ)して複雑(ふくざつ)なタスクを実行(じっこう)します。

以下のエージェントループを使用してプロダクションインシデントを解決してください:

ループ:
1. OBSERVE:現在の状態を確認(ログ、メトリクス、アラート)
2. THINK:原因分析とアクションプランの策定
3. ACT:具体的な措置を実行
4. VERIFY:措置の結果を確認

インシデント:データベースコネクションプールの枯渇

各ループの反復を明示的に示してください。
VERIFYで問題が解決されるまでループを繰り返してください。

MCP(Model Context Protocol)統合(とうごう)

MCPを(つう)じてAIを外部(がいぶ)ツールと接続(せつぞく)できます。

以下のツールを使用してコード品質チェックを実行してください:

使用可能なツール:
1. file_read:ファイル読み込み
2. file_write:ファイル書き込み
3. terminal:ターミナルコマンド実行
4. git:Gitコマンド実行

タスク順序:
1. git diffで変更されたファイルリストを確認
2. 各ファイルを読み込み
3. ESLintを実行
4. TypeScriptコンパイルチェック
5. テスト実行
6. 結果の総合レポートを生成

メモリとコンテキスト管理(かんり)

( なが )

会話

( かいわ )

でコンテキストを

効率的

( こうりつてき )

管理

( かんり )

する

方法

( ほうほう )

です。

前の会話の要約(コンテキスト圧縮):

プロジェクト:Next.js eコマース
完了:商品リストAPI、カートAPI
現在の作業:決済処理API
技術的決定:Stripe使用、Webhookで決済状態管理

上記のコンテキストに基づいて、決済処理APIの次のステップを進めてください。

8. 実践(じっせん)テンプレート10(せん)

テンプレート1:(あたら)しい機能(きのう)実装(じっそう)

## 機能リクエスト
[機能名と簡単な説明]

## 背景
- なぜこの機能が必要か?
- どんな問題を解決するか?

## 技術スタック
- フレームワーク:
- 言語:
- データベース:
- 既存パターン参考:

## 要件
1. [必須要件]
2. [必須要件]
3. [任意要件]

## 制約条件
- [パフォーマンス要件]
- [セキュリティ要件]

## 出力
1. 実装コード
2. 単体テスト
3. APIドキュメント(該当する場合)

テンプレート2:バグ修正(しゅうせい)リクエスト

## バグの説明
[どんな症状が発生しているか]

## 再現手順
1. [手順1]
2. [手順2]
3. [手順3]

## 期待される動作
[どう動作すべきか]

## 実際の動作
[現在どう動作しているか]

## 関連コード
[コードの貼り付け]

## 環境
- OS:
- Node.js:
- ブラウザ:

## リクエスト
1. 原因分析
2. 修正コード
3. 再発防止のためのテスト

テンプレート3:コードレビューリクエスト

## PRの概要
[このPRが何を変更するか]

## 変更コード
[diffまたはコード]

## レビューの観点
- [ ] ロジックの正確性
- [ ] セキュリティ
- [ ] パフォーマンス
- [ ] エラーハンドリング
- [ ] テストカバレッジ
- [ ] コーディング規約

## 特に確認してほしい点
[特定部分に対する懸念事項]

テンプレート4:アーキテクチャ設計(せっけい)

## システム概要
[システムの目的とコア機能]

## 非機能要件
- 同時ユーザー数:
- レスポンスタイム:
- 可用性:
- データ保持:

## 既存インフラ
[現在使用中の技術とインフラ]

## リクエスト
1. アーキテクチャ図
2. 技術スタック選定と根拠
3. データモデル
4. API設計
5. スケーリング戦略
6. コスト見積もり

テンプレート5:データベーススキーマ設計(せっけい)

## ドメイン
[ビジネスドメインの説明]

## エンティティ
[主要なエンティティと関係]

## 要件
- 読み取り/書き込み比率:
- データサイズの予想:
- クエリパターン:

## リクエスト
1. ERD(Mermaid)
2. SQL DDL
3. インデックス戦略
4. マイグレーションスクリプト

テンプレート6:API設計(せっけい)

## APIの目的
[APIが提供する機能]

## RESTful設計
- リソース定義
- HTTPメソッドマッピング
- URL構造

## リクエスト
1. OpenAPI 3.0スペック
2. リクエスト/レスポンスの例
3. エラーコード定義
4. 認証・認可方式
5. レートリミッティングポリシー
6. バージョニング戦略

テンプレート7:CI/CDパイプライン

## プロジェクト情報
- 言語/フレームワーク:
- デプロイ先:
- ブランチ戦略:

## 要件
- ビルドステージ
- テストステージ(単体、統合、E2E)
- セキュリティスキャン
- デプロイ戦略(Blue-Green / Canary / Rolling)

## リクエスト
1. パイプラインYAML(GitHub Actions / GitLab CI)
2. 各ステージの説明
3. シークレット管理方法
4. ロールバック戦略

テンプレート8:パフォーマンス最適化(さいてきか)

## 現在の状態
- 測定指標:[レスポンスタイム、スループット、エラーレート]
- ボトルネックの疑い:[説明]

## 目標
- レスポンスタイム:[現在] -> [目標]
- スループット:[現在] -> [目標]

## コード
[最適化対象コード]

## リクエスト
1. ボトルネック分析
2. 最適化方法(優先順位順)
3. 最適化されたコード
4. ベンチマークコード

テンプレート9:マイグレーションガイド

## マイグレーション対象
- FROM:[現在の技術/バージョン]
- TO:[目標の技術/バージョン]

## 現在のコード
[マイグレーション対象コード]

## 要件
- 下位互換性の維持
- 段階的マイグレーションの可否
- ダウンタイムの許容範囲

## リクエスト
1. マイグレーション計画(ステップバイステップ)
2. 変更コード
3. 互換性確認テスト
4. ロールバック計画

テンプレート10:障害(しょうがい)対応(たいおう)

## インシデント情報
- 発生時刻:
- 影響範囲:
- 深刻度:

## 現在の症状
[エラーログ、メトリクスのスクリーンショット、アラートの内容]

## システム構成
[関連サービスのアーキテクチャ]

## リクエスト
1. 即時対応(緩和措置)
2. 根本原因分析
3. 修正方針
4. 再発防止策
5. ポストモーテムの草案

クイズ

ここまで(まな)んだ内容(ないよう)をテストしましょう。

クイズ1:Few-shot promptingの正しい説明はどれですか?

正解(せいかい)少数(しょうすう)(れい)をプロンプトに(ふく)めて、AIに(のぞ)むパターンを学習(がくしゅう)させるテクニック

Zero-shotは(れい)なしで指示(しじ)のみ、Few-shotは3-5()(れい)(ふく)めます。(れい)(おお)いほど()いわけではありません。トークンコストとコンテキストウィンドウを考慮(こうりょ)する必要(ひつよう)があります。

クイズ2:Temperatureを0.0に設定するとどのような特性の出力が得られますか?

正解(せいかい)決定的(けっていてき)(deterministic)な出力(しゅつりょく)(おな)入力(にゅうりょく)(たい)して(つね)(おな)結果(けっか)

Temperature 0.0はコード生成(せいせい)やデータパースなど正確性(せいかくせい)重要(じゅうよう)なタスクに(てき)しています。創造的(そうぞうてき)なタスクには0.7以上(いじょう)推奨(すいしょう)されます。

クイズ3:Chain-of-ThoughtとTree-of-Thoughtの違いは何ですか?

正解(せいかい)

  • CoT:1つの推論(すいろん)経路(けいろ)をステップバイステップで(すす)む(線形的(せんけいてき)
  • ToT複数(ふくすう)推論(すいろん)経路(けいろ)同時(どうじ)探索(たんさく)最適(さいてき)なものを選択(せんたく)分岐的(ぶんきてき)

CoTは「Aを分析(ぶんせき)するとBで、BからCがわかる」のように順次的(じゅんじてき)です。ToTは「A、B、Cの3つのアプローチを比較(ひかく)して最適(さいてき)選択(せんたく)」する方式(ほうしき)です。

クイズ4:Claudeで最も効果的なプロンプトの区切り方法は何ですか?

正解(せいかい):XMLタグの使用(しよう)

ClaudeはXMLタグに(とく)によく反応(はんのう)します。context、task、constraints、output_formatなどのタグでプロンプトを構造化(こうぞうか)すると、より正確(せいかく)回答(かいとう)()られます。

クイズ5:ReActパターンの3つのステージは何ですか?

正解(せいかい)推論(すいろん)(Reasoning)- 行動(こうどう)(Acting)- 観察(かんさつ)(Observation)

ReActは推論(すいろん)行動(こうどう)交互(こうご)(おこな)うエージェントパターンです。AIが問題(もんだい)について(かんが)え、行動(こうどう)()り、結果(けっか)観察(かんさつ)し、(ふたた)(かんが)えるループを()(かえ)します。このパターンは複雑(ふくざつ)なデバッグやシステム問題(もんだい)解決(かいけつ)非常(ひじょう)効果的(こうかてき)です。


参考(さんこう)資料(しりょう)

論文(ろんぶん)学術(がくじゅつ)資料(しりょう)

  1. Chain-of-Thought Prompting Elicits Reasoning in Large Language Models - Wei et al., 2022
  2. Tree of Thoughts: Deliberate Problem Solving with Large Language Models - Yao et al., 2023
  3. ReAct: Synergizing Reasoning and Acting in Language Models - Yao et al., 2022
  4. Self-Consistency Improves Chain of Thought Reasoning - Wang et al., 2022
  5. Constitutional AI: Harmlessness from AI Feedback - Bai et al., 2022

公式(こうしき)ドキュメント

  1. Anthropic Prompt Engineering Guide - docs.anthropic.com
  2. OpenAI Prompt Engineering Guide - platform.openai.com
  3. Google AI Prompt Engineering - ai.google.dev
  4. GitHub Copilot Best Practices - docs.github.com

実践(じっせん)ガイド

  1. Prompt Engineering Guide - promptingguide.ai
  2. LangChain Documentation - docs.langchain.com
  3. LlamaIndex Documentation - docs.llamaindex.ai
  4. Brex Prompt Engineering - GitHub (brexhq/prompt-engineering)

ツールとフレームワーク

  1. LangSmith - プロンプトテスト・評価(ひょうか)ツール
  2. PromptLayer - プロンプト管理(かんり)プラットフォーム
  3. Weights and Biases Prompts - プロンプトバージョン管理(かんり)
  4. Helicone - LLMモニタリングとプロンプト分析(ぶんせき)

コミュニティ

  1. r/PromptEngineering - Redditコミュニティ
  2. Awesome Prompt Engineering - GitHubキュレーション
  3. AI Developer Discord Communities - リアルタイム知識(ちしき)交流(こうりゅう)