mcpField
L
LLM Prompt Optimizer

LLM Prompt Optimizer

github.com/jmsktmエージェントワークフロー10212 回インストール40 週間前に更新
リポジトリ

LLM Prompt Optimizer について

LLM Prompt Optimizerは、モデルや目的に合わせてプロンプトを改善するスキルです。問題の診断、修正案の作成、反復テストを支援し、業務システムや研究、日常利用に対応します。

主な機能

  1. 01曖昧さや指示の矛盾を診断
  2. 02コンテキストや例、出力形式の追加
  3. 03特定のLLMに合わせた調整
  4. 04プロンプト案のテストと反復改善

活用シーン

  1. 01プロンプトによる幻覚リスクの低減
  2. 02対象モデルに合わせた指示の調整
  3. 03A/Bテスト用の案の作成

インストール

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

$npx skills add https://github.com/jmsktm/claude-settings --skill llm-prompt-optimizer

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

詳細

LLM プロンプトオプティマイザー

LLM プロンプトオプティマイザーは、プロンプトを体系的に分析・改善し、大規模言語モデルの出力の品質、正確性、関連性を最大限に高めます。構造の改善、コンテキストの充実、制約の調整、出力形式の指定など、根拠に基づく最適化手法を適用します。

このスキルは、基本的なプロンプト作成にとどまらず、さまざまな LLM が指示をどのように処理するか、どのような注意パターンや応答傾向を示すかについての知見を活用します。期待した成果が得られないプロンプトを、必要な結果を一貫して生み出す、効果の高い指示へと変えるのに役立ちます。

本番環境の AI システムを構築する場合も、研究を行う場合も、ChatGPT の応答を改善したい場合も、このスキルによって、特定のモデルやユースケースに合わせてプロンプトを最適化できます。

主なワークフロー

ワークフロー 1:プロンプトの問題を分析・診断する
  1. 現在のプロンプトと出力例を受け取る
  2. 次のような失敗パターンを特定する:
    • 幻覚を誘発する要因
    • 曖昧さの原因
    • コンテキストの不足
    • 指示の矛盾
    • 制約パラメーターの過不足
  3. 問題を特定のプロンプト部分に対応付ける
  4. 影響度に基づいて修正の優先順位を決める
  5. 根本原因をユーザーに説明する
ワークフロー 2:最適化手法を適用する
  1. 診断結果に基づいて適切な手法を選択する:
    • 思考の連鎖の挿入
    • 少数ショット例の追加
    • 役割やペルソナの指定
    • 出力スキーマの定義
    • 制約の強化・緩和
  2. 明確さを高めるためにプロンプトを再構成する
  3. 不足しているコンテキストや例を追加する
  4. 矛盾する指示や冗長な指示を取り除く
  5. 最適化したバージョンをテストする
  6. 結果に基づいて反復する
ワークフロー 3:モデル固有の最適化
  1. 対象の LLM(GPT-4、Claude、Llama など)を特定する
  2. モデル固有のベストプラクティスを適用する:
    • トークン予算の最適化
    • システムプロンプトとユーザープロンプトの分割
    • Temperature/サンプリングの指針
    • コンテキストウィンドウの活用
  3. モデル特有の癖や強みに合わせて調整する
  4. モデル固有の推奨事項を記録する

クイックリファレンス

アクションコマンド/トリガー
プロンプトの問題を診断する"Why isn't this prompt working: [prompt]"
正確性を高めるために最適化する"Optimize for accuracy: [prompt]"
幻覚を減らす"Reduce hallucinations in: [prompt]"
構造を追加する"Add better structure to: [prompt]"
モデル固有の最適化"Optimize this for [model]: [prompt]"
A/B テスト用のバリエーション"Create prompt variants for testing: [prompt]"

ベストプラクティス

  • 意図を明確にする:最適化を始める前に、成功とはどのような状態かを正確に定義します

    • 悪い例:「もっとよく動くようにする」
    • 良い例:「会話調を維持しながら、事実誤認を減らす」
  • 出力形式を明示する:LLM は曖昧な要求よりも、構造の指定に従いやすくなります

    • JSON スキーマ、Markdown 形式、テンプレート構造を指定します
    • 例:「analysis、recommendations、confidence のキーを含む JSON で返してください」
  • 制約を調整する:制約が多すぎると矛盾が生じ、少なすぎると出力がぶれます

    • 制約の組み合わせを体系的にテストします
    • 出力品質を高めない制約は取り除きます
  • 肯定的な指示を活用する:モデルに、何を「しないか」だけでなく、何を「するか」を伝えます

    • 悪い例:「冗長にしないでください」
    • 良い例:「簡潔な文を 2~3 文で回答してください」
  • 重要な指示を効果的な位置に配置する:冒頭と末尾はより注意が向けられます

    • 重要な制約を冒頭に置きます
    • 重要な要件を末尾でも繰り返します
  • 複数部分からなる入力には区切り文字を使う:明確に分けることで混乱を防げます

    • トリプルクォート、XML タグ、Markdown の見出しなど
    • 例:"""User Query: {query}""" """Context: {context}"""

高度な手法

再帰的な改善ループ

複雑なプロンプトには、反復的な最適化を使用します:

1. Generate baseline outputs (n=5)
2. Score outputs against criteria
3. Identify lowest-scoring dimension
4. Adjust prompt targeting that dimension
5. Repeat until all dimensions score acceptably
プロンプトの分解

複雑なタスクを、より単純なサブプロンプトに分解します:

Complex: "Analyze this code, find bugs, suggest fixes, and refactor"
Decomposed:
  Step 1: "List all potential bugs in this code"
  Step 2: "For each bug, explain the fix"
  Step 3: "Refactor the fixed code for clarity"
否定例の提示

良い例と併せて、してはいけないことを示します。

Good output: [example]
Bad output (avoid this): [anti-example]
Key difference: [explanation]
トークン予算の最適化

コンテキストが限られている場合:

1. Remove redundant phrases
2. Use abbreviations consistently
3. Compress examples to minimal effective size
4. Prioritize recent/relevant context
5. Consider summarizing long contexts

よくある避けるべき落とし穴

  • 不要な複雑さを加えて、シンプルなプロンプトを過剰に設計する
  • モデルに合わせて調整せずに、プロンプトを別のモデルにコピーする
  • 温度とプロンプトの具体性の関係を無視する
  • 望ましくないパターンを持ち込む例を追加する
  • 定義せずに「良い」「適切な」「妥当な」などの曖昧な用語を使う
  • モデルに選択を迫る、互いに矛盾した指示を与える
  • エッジケースやエラーの処理方法を指定し忘れる

コメント