prompt-engineering-patterns について
LLM アプリケーションを開発する人向けのプロンプトエンジニアリングガイドです。例示、推論パターン、テンプレート、評価に加え、システムプロンプトの設計と最適化を扱います。
主な機能
- 01Few-shot の例選択と構成
- 02Chain-of-Thought による推論誘導
- 03プロンプトの反復改善、A/B テスト、評価
- 04変数補間に対応する再利用可能なテンプレート
- 05システムプロンプトと出力制約
活用シーン
- 01本番 LLM アプリケーションのプロンプト設計
- 02一貫しないモデル出力の調査と改善
- 03専用 AI アシスタントのシステムプロンプト作成
- 04動的な例を含むプロンプトテンプレートの構築
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ hermeticormus/ libreuiux-claude-code --skill prompt-engineering-patternsインストール後、Claude Code で/prompt-engineering-patternsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/few-shot-examples.jsonprompt-template-library.mdreferences/chain-of-thought.mdfew-shot-learning.mdprompt-optimization.mdprompt-templates.mdsystem-prompts.mdscripts/optimize-prompt.py詳細
プロンプトエンジニアリングのパターン
高度なプロンプトエンジニアリング技術を習得し、LLM の性能、信頼性、制御性を最大限に高めましょう。
このスキルを使用する場面
- 本番環境の LLM アプリケーション向けに複雑なプロンプトを設計する
- プロンプトの性能と一貫性を最適化する
- 構造化された推論パターン(思考の連鎖、思考の木)を実装する
- 動的な例の選択を用いた少数ショット学習システムを構築する
- 変数の補間に対応した再利用可能なプロンプトテンプレートを作成する
- 一貫性のない出力を生成するプロンプトをデバッグして改善する
- 特化型 AI アシスタント向けのシステムプロンプトを実装する
主な機能
1. 少数ショット学習
- 例の選択戦略(意味的類似性、多様性サンプリング)
- 例の数とコンテキストウィンドウの制約のバランス調整
- 入出力ペアを用いた効果的なデモの構築
- ナレッジベースからの動的な例の検索
- 戦略的な例の選択によるエッジケースへの対応
2. 思考の連鎖プロンプティング
- 段階的な推論の引き出し
- 「段階的に考えてみましょう」を用いたゼロショット CoT
- 推論のトレースを用いた少数ショット CoT
- 自己一貫性の手法(複数の推論経路をサンプリング)
- 検証と妥当性確認の手順
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:直接的な指示
- 「この記事を要約してください」
-
レベル 2:制約を追加
- 「この記事を、主な調査結果に焦点を当てて、箇条書き 3 項目で要約してください」
-
レベル 3:推論を追加
- 「この記事を読み、主な調査結果を特定してから、箇条書き 3 項目で要約してください」
-
レベル 4:例を追加
- 入出力ペアを含む要約例を 2~3 件追加します
指示の優先順位
[System Context] → [Task Instruction] → [Examples] → [Input Data] → [Output Format]
エラーからの回復
失敗に柔軟に対処できるプロンプトを作成します。
- フォールバックの指示を含める
- 信頼度スコアを求める
- 不確かな場合は別の解釈を尋ねる
- 情報が不足している場合の示し方を指定する
ベストプラクティス
- 具体的にする:曖昧なプロンプトは一貫性のない結果を生みます
- 説明するより示す:例は説明よりも効果的です
- 徹底的にテストする:多様で代表的な入力を使って評価します
- 迅速に反復する:小さな変更が大きな影響をもたらすことがあります
- 性能を監視する:本番環境で指標を追跡します
- バージョン管理する:適切なバージョン管理を行い、プロンプトをコードとして扱います
- 意図を文書化する:プロンプトがそのような構成になっている理由を説明します
よくある落とし穴
- 過剰な設計:シンプルな方法を試す前に複雑なプロンプトから始める
- 例の汚染:対象タスクに合わない例を使用する
- コンテキストの超過:例を入れすぎてトークン制限を超える
- 曖昧な指示:複数の解釈ができる余地を残す
- エッジケースの無視:特殊な入力や境界値の入力でテストしない
統合パターン
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)
- トークン使用量: リクエストあたりの平均トークン数
- 成功率: 有効な出力の割合
- ユーザー満足度: 評価とフィードバック
次のステップ
- 一般的なパターンについて、プロンプトテンプレートライブラリを確認します
- 特定のユースケースで、フューショット学習を試します
- プロンプトのバージョン管理とA/Bテストを導入します
- 自動評価パイプラインを設定します
- プロンプトエンジニアリングに関する判断と学びを記録します
コメント
Markdown 対応