mcpField
P
prompt-engineering-patterns

prompt-engineering-patterns

github.com/rmyndharisエージェントワークフロー1.9k46 回インストール2 週間前に更新
リポジトリ

prompt-engineering-patterns について

LLMアプリケーションを開発する人向けのプロンプトエンジニアリングスキルです。少数例、テンプレート、システムプロンプト、性能評価など、設計・最適化・検証のパターンを扱います。

主な機能

  1. 01少数例の選定
  2. 02段階的な推論パターン
  3. 03プロンプトの反復改善とA/Bテスト
  4. 04再利用可能なテンプレートと変数展開
  5. 05システムプロンプトの設計

活用シーン

  1. 01本番LLMアプリ向けプロンプトの設計
  2. 02一貫しない出力の改善
  3. 03動的な例を使う少数例フローの構築
  4. 04専門AIアシスタントの動作指定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rmyndharis/antigravity-skills --skill prompt-engineering-patterns

インストール後、Claude Code で/prompt-engineering-patternsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
few-shot-examples.json
prompt-template-library.md
references/
chain-of-thought.md
few-shot-learning.md
prompt-optimization.md
prompt-templates.md
system-prompts.md
scripts/
optimize-prompt.py

詳細

プロンプトエンジニアリングのパターン

高度なプロンプトエンジニアリング手法を習得し、LLM の性能、信頼性、制御性を最大限に高めます。

このスキルを使用しない場合

  • タスクがプロンプトエンジニアリングのパターンに関係しない場合
  • この範囲外の別の分野やツールが必要な場合

手順

  • 目標、制約、必要な入力を明確にします。
  • 関連するベストプラクティスを適用し、結果を検証します。
  • 実行可能な手順と検証方法を提示します。

このスキルを使用する場合

  • 本番環境の LLM アプリケーション向けに複雑なプロンプトを設計するとき
  • プロンプトの性能と一貫性を最適化するとき
  • 構造化された推論パターン(chain-of-thought、tree-of-thought)を実装するとき
  • 動的な例選択を行う few-shot 学習システムを構築するとき
  • 変数の埋め込みに対応した再利用可能なプロンプトテンプレートを作成するとき
  • 一貫性のない出力を生成するプロンプトをデバッグ、改良するとき
  • 特化型 AI アシスタント向けのシステムプロンプトを実装するとき

主な機能

1. Few-Shot 学習
  • 例の選択戦略(意味的類似性、多様性サンプリング)
  • コンテキストウィンドウの制約を踏まえた例の数の調整
  • 入出力ペアを使った効果的なデモの作成
  • ナレッジベースからの動的な例の取得
  • 戦略的な例の選択によるエッジケースへの対応
2. Chain-of-Thought プロンプティング
  • 段階的な推論の引き出し
  • "Let's think step by step" を使った Zero-shot CoT
  • 推論の過程を含む Few-shot CoT
  • Self-consistency 手法(複数の推論経路をサンプリング)
  • 検証と妥当性確認の手順
3. プロンプトの最適化
  • 反復的な改良ワークフロー
  • プロンプトのバリエーションに対する A/B テスト
  • プロンプトの性能指標(正確性、一貫性、レイテンシ)の測定
  • 品質を維持しながらトークン使用量を削減
  • エッジケースと障害モードへの対応
4. テンプレートシステム
  • 変数の埋め込みと書式設定
  • 条件付きプロンプトセクション
  • マルチターン会話テンプレート
  • ロールベースのプロンプト構成
  • モジュール式プロンプトコンポーネント
5. システムプロンプトの設計
  • モデルの動作と制約の設定
  • 出力形式と構造の定義
  • ロールと専門性の確立
  • 安全性ガイドラインとコンテンツポリシー
  • コンテキストと背景情報の設定

クイックスタート

from prompt_optimizer import PromptTemplate, FewShotSelector

# Define a structured prompt template
template = PromptTemplate(
    system="You are an expert SQL developer. Generate efficient, secure SQL queries.",
    instruction="Convert the following natural language query to SQL:\n{query}",
    few_shot_examples=True,
    output_format="SQL code block with explanatory comments"
)

# Configure few-shot learning
selector = FewShotSelector(
    examples_db="sql_examples.jsonl",
    selection_strategy="semantic_similarity",
    max_examples=3
)

# Generate optimized prompt
prompt = template.render(
    query="Find all users who registered in the last 30 days",
    examples=selector.select(query="user registration date filter")
)

主なパターン

段階的な詳細化

シンプルなプロンプトから始め、必要に応じて複雑さを加えます。

  1. レベル 1:直接的な指示

    • 「この記事を要約してください」
  2. レベル 2:制約を追加

    • 「この記事を、主な調査結果に焦点を当てて、3 つの箇条書きで要約してください」
  3. レベル 3:推論を追加

    • 「この記事を読み、主な調査結果を特定してから、3 つの箇条書きで要約してください」
  4. レベル 4:例を追加

    • 入出力ペアを含む要約例を 2~3 件追加します
指示の優先順位
[System Context] → [Task Instruction] → [Examples] → [Input Data] → [Output Format]
エラーからの回復

失敗に適切に対処できるプロンプトを作成します。

  • フォールバックの指示を含めます
  • 信頼度スコアを求めます
  • 不確かな場合は別の解釈を尋ねます
  • 情報が不足している場合の示し方を指定します

ベストプラクティス

  1. 具体的にする:曖昧なプロンプトは一貫性のない結果を生みます
  2. 説明するより例を示す:例は説明よりも効果的です
  3. 十分にテストする:多様で代表的な入力を使って評価します
  4. すばやく反復する:小さな変更が大きな影響をもたらすことがあります
  5. 性能を監視する:本番環境で指標を追跡します
  6. バージョン管理する:適切なバージョン管理のもとで、プロンプトをコードとして扱います
  7. 意図を文書化する:プロンプトをそのような構成にした理由を説明します

よくある落とし穴

  • 過剰な設計:シンプルなプロンプトを試す前に複雑なものから始める
  • 例の混入:対象タスクに合わない例を使う
  • コンテキストの超過:例を過剰に含めてトークン制限を超える
  • 曖昧な指示:複数の解釈が可能な状態にする
  • エッジケースの無視:特殊な入力や境界値の入力でテストしない

統合パターン

RAG システムとの連携
# Combine retrieved context with prompt engineering
prompt = f"""Given the following context:
{retrieved_context}

{few_shot_examples}

Question: {user_question}

Provide a detailed answer based solely on the context above. If the context doesn't contain enough information, explicitly state what's missing."""
検証との連携
# Add self-verification step
prompt = f"""{main_task_prompt}

After generating your response, verify it meets these criteria:
1. Answers the question directly
2. Uses only information from provided context
3. Cites specific sources
4. Acknowledges any uncertainty

If verification fails, revise your response."""

性能の最適化

トークン効率
  • 冗長な語句を削除する
  • 初回の定義後は略語を一貫して使用する
  • 類似した指示を統合する
  • 安定したコンテンツはシステムプロンプトに移動する
レイテンシの削減
  • 品質を損なわずにプロンプトの長さを最小化する
  • 長文出力にはストリーミングを使用する
  • 一般的なプロンプトプレフィックスをキャッシュする
  • 可能な場合は類似したリクエストをバッチ処理する

リソース

  • references/few-shot-learning.md: 例の選択と構築に関する詳細解説
  • references/chain-of-thought.md: 高度な推論誘導テクニック
  • references/prompt-optimization.md: 体系的な改善ワークフロー
  • references/prompt-templates.md: 再利用可能なテンプレートパターン
  • references/system-prompts.md: システムレベルのプロンプト設計
  • assets/prompt-template-library.md: 実戦で検証済みのプロンプトテンプレート
  • assets/few-shot-examples.json: 厳選された例のデータセット
  • scripts/optimize-prompt.py: プロンプト最適化の自動化ツール

成功指標

プロンプトについて、以下の KPI を追跡してください:

  • 精度: 出力の正確さ
  • 一貫性: 類似した入力に対する再現性
  • レイテンシ: 応答時間(P50、P95、P99)
  • トークン使用量: リクエストあたりの平均トークン数
  • 成功率: 有効な出力の割合
  • ユーザー満足度: 評価とフィードバック

次のステップ

  1. 一般的なパターンについてプロンプトテンプレートライブラリを確認する
  2. 特定のユースケースで few-shot 学習を試す
  3. プロンプトのバージョニングと A/B テストを実装する
  4. 自動評価パイプラインを構築する
  5. プロンプトエンジニアリングの決定と学びを文書化する

コメント