| name | prompt-engineering-helper |
| description | LLMプロンプトの最適化・テスト支援スキル。プロンプトのパフォーマンス評価、改善提案、A/Bテスト、ベストプラクティス適用、再現性検証を行います。 |
Prompt Engineering Helper Skill
LLM(大規模言語モデル)プロンプトの最適化とテストを支援するスキルです。
概要
このスキルは、LLMプロンプトの品質を向上させるための包括的な支援を提供します。プロンプトの分析、改善提案、A/Bテスト、ベストプラクティスの適用、パフォーマンス評価など、プロンプトエンジニアリングに必要な全てのプロセスをサポートします。
主な機能
- プロンプト分析: 現在のプロンプトの強み・弱みを評価
- 改善提案: より効果的なプロンプトへの書き換え案を提示
- A/Bテスト: 複数のプロンプトバリエーションを比較評価
- ベストプラクティス適用: 業界標準のプロンプト設計パターンを適用
- 再現性検証: 同じプロンプトで一貫した結果が得られるかテスト
- Few-shot例最適化: 効果的な例の選定と配置
- Chain-of-Thought: 推論プロセスを明示的にするプロンプト設計
- 評価メトリクス: 明確性、具体性、完全性、安全性などの指標でスコアリング
- トークン最適化: コストを抑えながら品質を維持
- マルチモーダル対応: テキスト、画像、構造化データを含むプロンプト
プロンプト分析の評価基準
1. 明確性 (Clarity)
プロンプトが曖昧さなく明確に意図を伝えているか
Good:
以下の顧客レビューを分析し、次の情報を抽出してください:
1. 感情(ポジティブ/ネガティブ/中立)
2. 主なトピック(最大3つ)
3. 改善提案(あれば)
レビュー: {review_text}
出力形式:
{
"sentiment": "ポジティブ|ネガティブ|中立",
"topics": ["トピック1", "トピック2", "トピック3"],
"suggestions": ["提案1", "提案2"]
}
Avoid:
このレビューについて分析してください。
2. 具体性 (Specificity)
タスクの詳細、制約、期待される出力が明確に定義されているか
Good:
以下のPythonコードをレビューし、以下の観点で問題点を指摘してください:
- セキュリティ脆弱性(SQLインジェクション、XSSなど)
- パフォーマンスの問題(N+1クエリ、不要なループなど)
- コードスタイル(PEP8違反)
各問題について:
1. 問題の種類
2. 該当する行番号
3. 具体的な改善案
を提示してください。
Avoid:
このコードをレビューしてください。
3. 完全性 (Completeness)
必要な情報、制約、エッジケースの処理がすべて含まれているか
Good:
以下の条件でタスク管理アプリのユーザーストーリーを生成してください:
対象ユーザー: フリーランスエンジニア
主な機能: タスク作成、編集、削除、優先度設定、期限管理
制約:
- モバイルファーストのデザイン
- オフライン対応
- 最大タスク数: 1000件
各ユーザーストーリーは以下の形式で出力:
"As a [ユーザータイプ], I want to [アクション] so that [目的]"
10件のユーザーストーリーを生成してください。
Avoid:
タスク管理アプリのユーザーストーリーを作ってください。
4. コンテキスト提供 (Context)
LLMが適切に判断するための背景情報が十分に提供されているか
Good:
あなたは経験豊富なReactコンサルタントです。
クライアントは中規模のECサイト(月間10万PV)を運営しており、
現在のReactアプリケーションのパフォーマンスに課題を抱えています。
以下のコードを分析し、パフォーマンス改善のための具体的な提案を
3つ挙げてください。各提案には以下を含めてください:
- 問題点
- 改善案
- 期待される効果
- 実装の難易度(低/中/高)
コード:
{code}
Avoid:
このReactコードを改善してください。
5. 構造化 (Structure)
プロンプトが論理的に構造化され、読みやすいか
Good:
# タスク
GitHubリポジトリのREADME.mdを生成してください。
## 入力情報
- プロジェクト名: {project_name}
- 説明: {description}
- 主な機能: {features}
- 技術スタック: {tech_stack}
## 出力要件
1. プロジェクト概要(2-3文)
2. 主な機能リスト
3. インストール手順
4. 使用例
5. ライセンス情報
## 制約
- Markdown形式
- 合計文字数: 500-800字
- コードブロックは適切にハイライト
Avoid:
README.mdを作ってください。プロジェクト名は{project_name}で、
説明は{description}です。機能は{features}で技術スタックは{tech_stack}です。
インストール方法と使い方も書いてください。
プロンプト改善パターン
パターン1: Zero-shot → Few-shot
Before (Zero-shot):
以下のテキストを英語に翻訳してください:
{text}
After (Few-shot):
以下の例を参考に、テキストを英語に翻訳してください:
例1:
日本語: 今日は良い天気ですね。
英語: It's nice weather today.
例2:
日本語: 会議は午後3時に始まります。
英語: The meeting starts at 3 PM.
例3:
日本語: このプロジェクトは順調に進んでいます。
英語: This project is progressing smoothly.
翻訳してください:
{text}
パターン2: 曖昧 → 具体的
Before:
このデータを分析してください。
After:
以下のCSVデータを分析し、次の情報を抽出してください:
1. 基本統計量(平均、中央値、標準偏差)
2. 外れ値の検出(±3σ)
3. 欠損値の数とパーセンテージ
4. カテゴリ変数の分布
出力形式: JSON
{
"statistics": {...},
"outliers": [...],
"missing_values": {...},
"categorical_distribution": {...}
}
データ:
{csv_data}
パターン3: 単一ステップ → Chain-of-Thought
Before:
この数学の問題を解いてください:
{problem}
After:
以下の数学の問題を、ステップバイステップで解いてください:
問題: {problem}
解答手順:
1. 問題の理解: 何を求められているか明確にする
2. 既知の情報と未知の情報を整理
3. 適用できる公式や定理を特定
4. 計算プロセスを段階的に記述
5. 答えを検証
最終的な答えは以下の形式で出力:
答え: [数値] [単位]
パターン4: 無制約 → 制約付き
Before:
ブログ記事を書いてください。
テーマ: {topic}
After:
以下の制約に従って、ブログ記事を執筆してください:
テーマ: {topic}
対象読者: 初心者エンジニア(経験1-2年)
文体: カジュアルだが専門的
文字数: 1500-2000字
構成:
1. 導入(問題提起): 200字
2. 本文(解決策・説明): 1000字
3. 具体例・コード: 500字
4. まとめ: 300字
含めるべき要素:
- 実践的なコード例
- 初心者が陥りやすい落とし穴
- 参考リンク(2-3個)
避けるべき要素:
- 過度に専門的な用語(必要な場合は説明を追加)
- 古い情報(2020年以前の技術)
パターン5: 出力形式の明示
Before:
このJSON APIレスポンスからエラー情報を抽出してください。
{api_response}
After:
以下のJSON APIレスポンスからエラー情報を抽出し、
指定した形式で出力してください:
入力:
{api_response}
出力形式(TypeScript型定義):
interface ErrorInfo {
statusCode: number;
errorType: string;
message: string;
timestamp: string;
affectedFields?: string[];
}
出力例:
{
"statusCode": 400,
"errorType": "ValidationError",
"message": "Invalid email format",
"timestamp": "2024-11-22T10:30:00Z",
"affectedFields": ["email"]
}
抽出してください:
A/Bテスト機能
使い方
以下の2つのプロンプトを比較評価してください:
プロンプトA:
「この文章を要約してください。」
プロンプトB:
「以下の文章を3つの箇条書きで要約してください。各箇条書きは1文で簡潔に。」
評価基準:
- 明確性
- 具体性
- 再現性
- 出力の品質
テストケース: 3つの異なる入力文章
評価レポート例
## A/Bテスト結果
### プロンプトA
スコア: 65/100
- 明確性: 6/10(タスクが曖昧)
- 具体性: 5/10(要約の形式が不明確)
- 再現性: 7/10(比較的一貫した結果)
- 出力の品質: 6/10(要約の長さが不安定)
### プロンプトB
スコア: 88/100
- 明確性: 9/10(タスクが明確)
- 具体性: 9/10(形式が詳細に指定)
- 再現性: 9/10(非常に一貫した結果)
- 出力の品質: 8/10(期待通りの出力)
### 推奨
プロンプトBを採用することを推奨します。
理由: 具体的な制約により、出力が安定し、品質が向上。
ベストプラクティス集
1. Role Prompting(役割設定)
あなたは10年の経験を持つシニアPythonエンジニアです。
コードレビューの専門家として、以下のコードを評価してください。
2. 出力形式の厳密な指定
必ず以下のJSON形式で出力してください。
他のテキストは一切含めないでください:
{
"summary": "要約文",
"key_points": ["ポイント1", "ポイント2"],
"confidence": 0.85
}
3. ステップバイステップ指示
以下の手順で分析を実行してください:
ステップ1: データの前処理
- 欠損値を確認
- 外れ値を検出
ステップ2: 探索的データ分析
- 各変数の分布を確認
- 相関関係を分析
ステップ3: 結果の要約
- 主要な発見を3つ挙げる
- 推奨アクションを提示
4. エッジケースの処理
以下の入力に対して、適切に処理してください:
エッジケース:
- 入力が空文字列の場合 → "入力が空です"と返す
- 入力が1000文字を超える場合 → 最初の1000文字のみ処理
- 無効な形式の場合 → エラーメッセージを返す
通常ケース:
{normal_processing_instructions}
5. 温度パラメータの推奨値
タスクの種類に応じた推奨設定:
創造的タスク(アイデア生成、ストーリー執筆):
- temperature: 0.7-0.9
- top_p: 0.9
分析的タスク(コードレビュー、データ分析):
- temperature: 0.1-0.3
- top_p: 0.1
翻訳・要約タスク:
- temperature: 0.3-0.5
- top_p: 0.5
トークン最適化
冗長なプロンプトの圧縮
Before (150 tokens):
あなたは非常に経験豊富で優秀なソフトウェアエンジニアです。
長年にわたってさまざまなプロジェクトに携わってきました。
以下のコードを丁寧にレビューしてください。
問題点があれば指摘し、改善案を提示してください。
できるだけ詳しく説明をお願いします。
After (45 tokens):
経験豊富なエンジニアとして、以下のコードをレビューし、
問題点と改善案を提示してください。
システムメッセージの活用
Before:
[ユーザーメッセージ]
あなたはPythonの専門家です。以下のコードを...
After:
[システムメッセージ]
You are a Python expert.
[ユーザーメッセージ]
以下のコードを...
使用例
基本的な使い方
以下のプロンプトを分析し、改善案を提示してください:
現在のプロンプト:
「このコードを直してください。」
期待する出力:
- 明確性、具体性、完全性のスコア
- 改善されたプロンプト
- 改善のポイント
Few-shot例の最適化
以下のFew-shot例を評価し、より効果的な例を提案してください:
タスク: 感情分析
現在の例:
1. "良い" → ポジティブ
2. "悪い" → ネガティブ
3. "普通" → 中立
改善してください。
プロンプトテンプレート生成
以下のタスク用のプロンプトテンプレートを生成してください:
タスク: コードレビュー
対象言語: TypeScript
重点項目: セキュリティ、パフォーマンス、型安全性
要件:
- 変数部分を{variable_name}で表現
- 評価基準を明確に
- 出力形式を指定
マルチステップタスクのプロンプト設計
複数のLLM呼び出しが必要なタスクのプロンプトチェーンを設計してください:
最終目標: ブログ記事の自動生成
ステップ:
1. トピック案の生成
2. アウトラインの作成
3. 各セクションの執筆
4. 編集・校正
各ステップのプロンプトを設計してください。
評価メトリクス詳細
明確性スコア (0-10)
- 10: タスクが完全に明確、曖昧さゼロ
- 7-9: ほぼ明確だが、若干の曖昧さあり
- 4-6: やや曖昧、解釈の余地あり
- 1-3: 非常に曖昧、意図が不明確
- 0: 全く不明確
具体性スコア (0-10)
- 10: すべての詳細、制約、形式が明記
- 7-9: 主要な詳細が記載、一部省略
- 4-6: 基本的な情報のみ
- 1-3: ほとんど詳細なし
- 0: 全く具体性なし
完全性スコア (0-10)
- 10: すべての必要情報、エッジケース対応含む
- 7-9: 主要な情報は揃っている
- 4-6: 基本情報のみ、一部欠落
- 1-3: 多くの情報が欠落
- 0: ほとんど情報なし
再現性スコア (0-10)
- 10: 同じ入力で常に同じ出力
- 7-9: ほぼ一貫した出力
- 4-6: 時々異なる出力
- 1-3: 頻繁に異なる出力
- 0: 全く一貫性なし
高度な使用例
システムプロンプトの最適化
以下のシステムプロンプトを最適化してください:
現在:
「あなたはAIアシスタントです。ユーザーの質問に答えてください。」
要件:
- タスクの専門性を明示
- 制約・ガイドラインを追加
- 出力形式のデフォルトを設定
- トーンとスタイルを定義
プロンプトチェーンの設計
以下の複雑なタスクをプロンプトチェーンに分解してください:
タスク: GitHubリポジトリの包括的な分析レポート生成
必要な分析:
1. コード品質評価
2. セキュリティ脆弱性検出
3. パフォーマンスボトルネック分析
4. アーキテクチャ評価
5. ドキュメント品質評価
各ステップのプロンプトと、ステップ間のデータ受け渡しを設計してください。
コンテキスト長の最適化
以下の長いコンテキストを含むプロンプトを最適化してください:
現在のコンテキスト: 10,000トークン(長文ドキュメント全体)
要件:
- コンテキストを5,000トークン以下に圧縮
- 重要情報は保持
- 必要に応じてRAG(Retrieval-Augmented Generation)を提案
トラブルシューティング
問題: 出力が不安定
解決策:
- 温度パラメータを下げる(0.0-0.2)
- Few-shot例を追加
- 出力形式を厳密に指定
- システムプロンプトで一貫性を強調
問題: プロンプトが長すぎる
解決策:
- システムメッセージに共通部分を移動
- 冗長な表現を削除
- 必要最小限の例のみ使用
- テンプレート化して再利用
問題: 意図しない出力
解決策:
- プロンプトの曖昧さを排除
- 出力形式を明示的に指定
- 除外すべき内容を明記
- Few-shot例で期待する出力を示す
問題: LLMが指示に従わない
解決策:
- 指示を箇条書きで明確に
- 重要な指示を強調(太字、UPPERCASE)
- 役割設定を明確に
- Few-shot例で正しい動作を示す
ベストプラクティス要約
- 明確性: タスクを曖昧さなく記述
- 具体性: 詳細、制約、形式を明記
- 構造化: 論理的に整理されたプロンプト
- Few-shot: 効果的な例を2-5個提供
- Chain-of-Thought: 複雑なタスクはステップ分割
- 出力形式: 厳密に指定(JSON、Markdown等)
- エッジケース: 異常系の処理を明記
- 役割設定: 適切なペルソナを定義
- トークン最適化: 簡潔だが完全な表現
- テスト: 複数の入力で一貫性を検証
バージョン情報
- スキルバージョン: 1.0.0
- 最終更新: 2025-11-22
- 対応LLM: Claude, GPT-4, Gemini等
使用例まとめ
シンプルな改善
このプロンプトを改善してください:
「コードを書いてください。」
詳細な分析
以下のプロンプトを詳細に分析してください:
プロンプト:
{your_prompt}
分析項目:
- 明確性スコア(理由付き)
- 具体性スコア(理由付き)
- 完全性スコア(理由付き)
- 改善点リスト
- 改善されたプロンプト
A/Bテスト
プロンプトA と プロンプトB を比較評価してください。
テストケース: {test_cases}
評価レポートを生成してください。
このスキルで、プロンプトエンジニアリングを体系的に改善しましょう!