prompt-engineering について
prompt-engineeringは、LLMや自律型エージェント向けのプロンプトを設計・改善するスキルです。推論パターン、再利用可能なテンプレート、評価ワークフロー、ツール利用、マルチモーダルなプロンプトを扱います。
主な機能
- 01タスクに応じた推論パターン
- 02再利用可能なプロンプトテンプレート
- 03プロンプトのテストと最適化
- 04エージェントループとツール利用の指示
- 05マルチモーダルなプロンプト設計
活用シーン
- 01構造化推論向けプロンプトの設計
- 02ツールを使うエージェントワークフローの構築
- 03指標によるプロンプト案の比較
- 04画像とテキストを扱うタスク向けプロンプト作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill prompt-engineeringインストール後、Claude Code で/prompt-engineeringを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/chain-of-thought.mdextended-thinking.mdfew-shot-learning.mdmultimodal-prompting.mdprompt-optimization.mdprompt-templates.mdreact-patterns.mdreasoning-model-optimization.mdstructured-thinking.mdsystem-prompts.mdtree-of-thoughts.md詳細
プロンプトエンジニアリング
LLM と自律型エージェントのための高度なプロンプト設計です。推論パターン、テンプレートシステム、最適化ワークフロー、エージェントオーケストレーション、拡張思考、ツール使用を促すプロンプトを扱います。
使用する場面:構造化された推論を必要とするプロンプトの設計、エージェントのループ構築、LLM の出力品質の最適化、再利用可能なプロンプトテンプレートの作成、複雑なタスクに向けた拡張思考の設定、または画像とテキストを使ったマルチモーダルプロンプトの設計。
使用しない場面:単純な事実確認、直接的な情報検索、または自由度の高い生成が有効なクリエイティブライティング。
主な原則
- 暗黙より明示 -- 最新のモデル(Claude 4.x、GPT-4.1)は指示に文字どおり従います。モデルが意図を推測することに頼るのではなく、望ましい出力、形式、動作を具体的に指定してください。
- 指示より目的 -- 推論モデル(OpenAI o-series、拡張思考を備えた Claude)には、手順を細かく指定するのではなく、目標を伝えてください。これらのモデルは自ら計画を立てます。
- 構造で意図を伝える -- XML タグ、明確な区切り、統一された書式を使って、プロンプトの構造を伝えてください。構造化プロンプトで学習したモデルは、プレーンテキストよりもその構造を確実に解析できます。
- 優れた例ひとつは、多数のルールに勝る -- 書式が統一された少数例の提示は、冗長な指示よりも効果的にモデルの動作を方向付けます。
- フィードバックループは組み込まれている -- 最終回答を確定する前に、モデル自身に出力の検証、批評、または採点を求めるプロンプトを設計してください。
- トークンの節約は重要 -- トークンが増えるたびに、遅延とコストが増加します。コンテキストを圧縮し、冗長な部分を削り、重要な情報を先に伝えてください。
モデルごとの考慮事項
Claude 4.x models は、指示に高い精度で従います。プロンプトを文字どおりに解釈し、求められたことを過不足なく実行します。プロンプトの各セクションを構成するには、XML タグ(<rules>、<context>、<output_format>)を使用してください。指示は避けるべきことではなく、実行すべきことを説明する肯定的な形で記述してください。指示の背景にある文脈や動機を示すことで、Claude がその内容を一般化しやすくなります。拡張思考とインターリーブ思考は、ネイティブの推論機能を提供します。
OpenAI o-series models(o3、o4-mini)は、応答の前に内部推論トークンを使用します。システムメッセージではなく、開発者メッセージを使用してください。関数の詳細な説明は、インターフェース契約として記述してください。これらのモデルは自ら推論するため、明示的な推論プロンプトは追加しないでください。計画を促すプロンプトを追加すると、パフォーマンスが低下することがあります。複数ターンの会話では、保持された推論項目を返してください。
GPT-4.1 と標準モデルでは、明示的な段階的指示、少数例の提示、構造化された出力スキーマが有効です。これらのモデルにはネイティブの推論ループがないため、CoT プロンプティングや構造化思考プロトコルによって、測定可能な効果が得られます。
マルチモーダルモデル(GPT-4o、ビジョン機能を備えた Claude、Gemini)は、テキストとともに画像を受け取れます。それぞれの画像が何を表すかを説明し、明確な動作動詞を使い、画像を関連領域に絞って切り抜いてください。複数の画像には明示的にラベルを付け、それらの関係を指定してください。
クイックリファレンス
| パターン | API/手法 | ポイント |
|---|---|---|
| ゼロショット CoT | "Let's think step by step" のトリガー | 例を使わずに推論を引き出します |
| フューショット CoT | 明示的な推論チェーンの例 | 多くのルールより、優れた例を1つ示すほうが効果的です |
| セルフコンシステンシー | 複数の経路+多数決 | 複雑なタスクで精度が向上します |
| 思考の木(Tree-of-Thoughts) | 3つ以上の戦略を生成し、最も弱いものを除外します | 枝刈りを伴う並列探索ですが、コストが高くなります |
| ReAct ループ | 思考・行動・観察のサイクル | エージェントが推論と行動を同時に行います |
| システムプロンプト | 役割+専門知識+ガイドライン+形式 | すべての LLM の動作の基盤となります |
| プロンプトテンプレート | 変数スロットを使ったモジュール式の構成 | 再利用でき、検証可能で、キャッシュできます |
| A/B テスト | プロンプトのバリエーションを統計的に比較 | 変数を分離し、有意性を測定します |
| 拡張思考 | 予算を制御した深い推論(Claude) | 応答する前にモデルに考えさせます |
| インターリーブ思考 | ツール呼び出しの合間に考えます(Claude 4) | 各ツールの結果を受け取った後に推論します |
| Think ツール | 構造化された推論空間を提供する no-op ツール | エージェントがターンの途中で推論する場所を提供します |
| 推論モデル | o3/o4-mini 向けの目標ベースのプロンプト | モデル自身に推論を計画させます |
| 構造化思考 | 理解・分析・実行のプロトコル | 行動する前の検証を徹底します |
| XML による構造化 | プロンプトの各セクションを区切るタグ | モデルは構造化されたプロンプトを確実に解析します |
| マルチモーダルプロンプト | ビジョンモデル向けのテキスト+画像コンテキスト | 空間コンテキストと明確な動作動詞を提供します |
| 信頼度スコアリング | モデルが主張ごとに確信度を自己申告します | 出力の信頼性を定量化します |
| トークン最適化 | コンテキストを圧縮し、不要な語句を削除します | レイテンシとコストを削減します |
よくある間違い
| 間違い | 正しいパターン |
|---|---|
| 1つのプロンプトに指示を詰め込みすぎる | 優先順位を明確にした階層的なルールを使用する |
| 推論モデルに厳密な手順を強制する | 目標ベースのプロンプトを使用する。推論モデルはネイティブに計画します |
| 推論モデルの最大出力トークン数を少なく設定する | 内部の思考の連鎖に十分なトークンを割り当てる |
| 複雑なタスクに固定の例を使用する | 意味的類似性に基づいて例を動的に選択する |
| few-shot の例でフォーマットが一貫していない | すべての例で同一の入出力構造に従う |
| 構造化されていない LLM 出力を手動で解析する | JSON モードまたは構造化出力スキーマを使用する |
| トークン予算の配分を無視する | システムプロンプト、例、入力、応答用のトークンを確保する |
| 最適化の前にベースライン測定を行わない | まず指標を設定し、その後、一度に1つの変数を変更する |
| 推論モデルで CoT プロンプトを使用する | 不要です。これらのモデルは明示的なトリガーなしでネイティブに推論します |
| してほしいことではなく、してほしくないことをモデルに伝える | 指示を肯定的に表現し、望ましい動作を説明する |
| 思考ブロックをユーザーテキストとして送り返す(Claude) | 思考ブロックは変更せず、アシスタントメッセージ内でのみ渡す |
| 推論モデルに「もっと計画する」よう過剰に促す | 追加の計画プロンプトは、推論モデルのパフォーマンスを低下させる場合があります |
プロンプトエンジニアリングのワークフロー
- 目標を定義する -- プロンプトで達成することと、成功の測定方法を示します
- 適切なパターンを選ぶ -- 複雑さに基づいて、タスクに CoT、ReAct、ToT、またはシンプルなプロンプトを適合させます
- モデルのティアを選択する -- タスクの難易度に応じて、軽量、標準、または推論モデルに振り分けます
- ベースラインとなるプロンプトを書く -- シンプルに始めます。複雑なケースでは、XML タグを使ったシステムプロンプトの構造を使用します
- 例を追加する -- タスクに必要な場合は、フォーマットを統一した few-shot の例を1~3個含めます
- テストして測定する -- 代表的な入力でベースライン指標(精度、レイテンシ、トークン使用量)を設定します
- 失敗を分析する -- エラーを分類(フォーマット、事実、論理、不完全)し、影響が最も大きいものに対処します
- 1つの変数を反復する -- パフォーマンスを向上させる要素を特定できるよう、一度に1つの要素だけを変更します
- バージョン管理してデプロイする -- ロールバックできるよう、パフォーマンスデータとともにプロンプトのバージョンを追跡します
委任
- プロンプトのバリエーションを検討してモデルの応答を比較する:
Exploreエージェントを使用して、さまざまな入力でプロンプト戦略をテストします - ツールを使用する複数ステップのエージェント型ワークフローを構築する:
Taskエージェントを使用して、ReAct ループと自律型チェーンを実装し、検証します - 複雑なシステム向けに階層的なプロンプトアーキテクチャを設計する:
Planエージェントを使用して、検証ループを備えたプロンプトシステムを構成します
expert-instructionスキルが利用可能な場合は、システムプロンプトの設計とエージェントのペルソナ作成を委任してください。
参考資料
- Chain-of-Thought -- 段階的な推論、自己整合性、簡単な問題から難しい問題への分解
- Few-Shot Learning -- 例の選択戦略、トークン数を考慮した切り詰め、エッジケース
- Prompt Templates -- テンプレートのアーキテクチャ、モジュール式の構成、検証、キャッシュ
- Prompt Optimization -- A/B テスト、失敗分析、メトリクス、バージョン管理
- System Prompts -- 役割の定義、制約の指定、動的な適応
- Reasoning Model Optimization -- o3/o4-mini 向けの目的ベースのプロンプト、拡張思考の設定
- Tree-of-Thoughts -- 並列分岐の探索、評価、統合
- ReAct Patterns -- 思考・行動・観察のループ、ツールの検出、エラーからの回復
- Structured Thinking -- 敵対的批評プロトコル、確信度のスコアリング、メタデータのタグ付け
- Extended Thinking and Tool Use -- 予算の設定、思考の交互実行、think ツールのパターン
- Multimodal Prompting -- ビジョンモデルの手法、画像コンテキスト、モダリティ間のアラインメント