LLM Prompt Optimizer について
LLM Prompt Optimizerは、モデルや目的に合わせてプロンプトを改善するスキルです。問題の診断、修正案の作成、反復テストを支援し、業務システムや研究、日常利用に対応します。
主な機能
- 01曖昧さや指示の矛盾を診断
- 02コンテキストや例、出力形式の追加
- 03特定のLLMに合わせた調整
- 04プロンプト案のテストと反復改善
活用シーン
- 01プロンプトによる幻覚リスクの低減
- 02対象モデルに合わせた指示の調整
- 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:プロンプトの問題を分析・診断する
- 現在のプロンプトと出力例を受け取る
- 次のような失敗パターンを特定する:
- 幻覚を誘発する要因
- 曖昧さの原因
- コンテキストの不足
- 指示の矛盾
- 制約パラメーターの過不足
- 問題を特定のプロンプト部分に対応付ける
- 影響度に基づいて修正の優先順位を決める
- 根本原因をユーザーに説明する
ワークフロー 2:最適化手法を適用する
- 診断結果に基づいて適切な手法を選択する:
- 思考の連鎖の挿入
- 少数ショット例の追加
- 役割やペルソナの指定
- 出力スキーマの定義
- 制約の強化・緩和
- 明確さを高めるためにプロンプトを再構成する
- 不足しているコンテキストや例を追加する
- 矛盾する指示や冗長な指示を取り除く
- 最適化したバージョンをテストする
- 結果に基づいて反復する
ワークフロー 3:モデル固有の最適化
- 対象の LLM(GPT-4、Claude、Llama など)を特定する
- モデル固有のベストプラクティスを適用する:
- トークン予算の最適化
- システムプロンプトとユーザープロンプトの分割
- Temperature/サンプリングの指針
- コンテキストウィンドウの活用
- モデル特有の癖や強みに合わせて調整する
- モデル固有の推奨事項を記録する
クイックリファレンス
| アクション | コマンド/トリガー |
|---|---|
| プロンプトの問題を診断する | "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
よくある避けるべき落とし穴
- 不要な複雑さを加えて、シンプルなプロンプトを過剰に設計する
- モデルに合わせて調整せずに、プロンプトを別のモデルにコピーする
- 温度とプロンプトの具体性の関係を無視する
- 望ましくないパターンを持ち込む例を追加する
- 定義せずに「良い」「適切な」「妥当な」などの曖昧な用語を使う
- モデルに選択を迫る、互いに矛盾した指示を与える
- エッジケースやエラーの処理方法を指定し忘れる