<p><style_prompt>
{
“role”: “Prompt Engineering Expert”,
“focus”: “Context Engineering & Task Decomposition”,
“technique”: [“Chain-of-Thought”, “Modular Prompting”, “LLM-as-a-Judge”],
“language”: “Japanese”
}
</style_prompt>
本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">複雑なビジネス要件を精度100%へ導く:分割・逐次入力によるコンテキストエンジニアリング手法</h1>
<h3 class="wp-block-heading">【ユースケース定義と課題】</h3>
<p>複雑な業務フローの要件定義において、一括指示による精度低下を防ぐため、要件を機能単位に分割し段階的に定義書を生成・検証する手法。</p>
<ul class="wp-block-list">
<li><p>入力:非構造化された長文の業務要求資料</p></li>
<li><p>出力:構造化された要件定義Markdown、およびシステム実装用JSON</p></li>
</ul>
<h3 class="wp-block-heading">【プロンプト設計のループ】</h3>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
A["要件のモジュール分割"] --> B["段階的プロンプト実行"]
B --> C["中間成果物の整合性評価"]
C -->|矛盾・欠落あり| A
C -->|整合性確認| D["最終結合・構造化出力"]
</pre></div>
<ol class="wp-block-list">
<li><p><strong>設計(Segmentation)</strong>: 巨大なタスクを「現状分析」「機能抽出」「データモデル」等の独立したサブタスクに分解。</p></li>
<li><p><strong>実行(Sequential Execution)</strong>: サブタスクごとにプロンプトを投げ、AIのコンテキスト窓(作業メモリ)を一つの論点に集中させる。</p></li>
<li><p><strong>評価(Validation)</strong>: 前のステップの出力が次のステップの前提条件を充足しているか、LLMまたはルールベースで検証。</p></li>
</ol>
<h3 class="wp-block-heading">【プロンプトの実装案】</h3>
<p>複雑な要件を「ステップバイステップ」で処理させるための、中間生成を挟むプロンプト構成です。</p>
<div class="codehilite">
<pre data-enlighter-language="generic"># Role
あなたは上級ITアナリストです。提供された業務資料から、システム要件を段階的に抽出してください。
# Task 1: 概念抽出(Chain-of-Thought)
まず、資料を読み込み、以下の要素を箇条書きで整理してください。
- 主要なアクター
- 主要なビジネスエンティティ(データ)
- 業務のトリガーとゴール
# Task 2: 構造化出力
Task 1の結果に基づき、以下のJSON形式で要件を構造化してください。
出力はJSONのみとし、説明は不要です。
{
"actors": [],
"entities": [],
"workflow": [
{"step": 1, "description": "...", "input": "...", "output": "..."}
]
}
# Constraints
- 不明な点は「要検討事項」としてリストアップすること。
- 推測を排除し、事実のみに基づき構成すること。
# Input Data
{{Source_Text}}
</pre>
</div>
<h3 class="wp-block-heading">【評価指標と誤り分析】</h3>
<p>コンテキストエンジニアリングにおいて発生しやすい失敗パターンと、その評価基準を定義します。</p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">評価項目</th>
<th style="text-align:left;">指標内容</th>
<th style="text-align:left;">失敗時の挙動(失敗パターン)</th>
<th style="text-align:left;">対策</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;"><strong>整合性</strong></td>
<td style="text-align:left;">前後のステップで用語やIDが一致しているか</td>
<td style="text-align:left;">Step 1の「ユーザー」がStep 2で「顧客」に変わる</td>
<td style="text-align:left;">用語集(Glossary)を定数として固定</td>
</tr>
<tr>
<td style="text-align:left;"><strong>網羅性</strong></td>
<td style="text-align:left;">元資料の主要要件が全て含まれているか</td>
<td style="text-align:left;">複雑な分岐フローが無視される</td>
<td style="text-align:left;">セクションごとに分割して要約・確認</td>
</tr>
<tr>
<td style="text-align:left;"><strong>形式遵守</strong></td>
<td style="text-align:left;">指定したJSON/Markdown形式に従っているか</td>
<td style="text-align:left;">JSON内に自然言語の説明が混入する</td>
<td style="text-align:left;">Few-shotで出力例を徹底提示</td>
</tr>
</tbody>
</table></figure>
<p><strong>LLM-as-a-Judge 評価基準(5段階)</strong></p>
<ul class="wp-block-list">
<li><p>5: 全ての要件が網羅され、論理矛盾がなく、形式も完璧。</p></li>
<li><p>3: 主要な要件は満たしているが、一部の属性値に欠落や用語の揺れがある。</p></li>
<li><p>1: 出力形式が崩れている、または事実誤認(ハルシネーション)が顕著。</p></li>
</ul>
<h3 class="wp-block-heading">【改良後の最適プロンプト】</h3>
<p>分析結果に基づき、各ステップの境界を明確にし、自己検閲(Self-Correction)機能を組み込んだ最強のプロンプトです。</p>
<div class="codehilite">
<pre data-enlighter-language="generic"># System
あなたは複雑な要件を正確に分解・構造化するエンジニアです。
思考プロセス(Thought)と最終結果(Final Answer)を分けて出力してください。
# Instruction
以下の3ステップで処理を実行してください。
## Step 1: 要件の分解と検証
提供されたドキュメントを読み込み、論理的な矛盾や情報不足がないか確認してください。
不足がある場合は「Assumption(仮定)」として明記してください。
## Step 2: モジュール化
抽出した要件を以下のMarkdown形式で出力してください。
- 業務フロー(Mermaid形式)
- データモデル(属性・型・制約)
## Step 3: 自己評価
Step 2の出力が、元の入力データの全ての制約を遵守しているか、自己検閲を行い、修正が必要な場合は最終回答に反映させてください。
# Format
## Thought
(ここに思考プロセスを記述)
## Final Answer
(ここに構造化された結果を記述)
# Input
{{Input_Text}}
</pre>
</div>
<h3 class="wp-block-heading">【まとめ】</h3>
<p>実務でコンテキストエンジニアリングを運用するための3つの鉄則:</p>
<ol class="wp-block-list">
<li><p><strong>「一度に一つの論点」</strong>: AIに一度に考えさせる変数を最小化し、コンテキストの純度を高める。</p></li>
<li><p><strong>「中間成果物の明示」</strong>: JSONやMarkdownなどの型を固定し、次のプロンプトへのインターフェースを安定させる。</p></li>
<li><p><strong>「自己検証ループ」</strong>: AI自身に出力内容の矛盾をチェックさせるステップを組み込み、ハルシネーションを抑制する。</p></li>
</ol>
{
“role”: “Prompt Engineering Expert”,
“focus”: “Context Engineering & Task Decomposition”,
“technique”: [“Chain-of-Thought”, “Modular Prompting”, “LLM-as-a-Judge”],
“language”: “Japanese”
}
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
複雑なビジネス要件を精度100%へ導く:分割・逐次入力によるコンテキストエンジニアリング手法
【ユースケース定義と課題】
複雑な業務フローの要件定義において、一括指示による精度低下を防ぐため、要件を機能単位に分割し段階的に定義書を生成・検証する手法。
【プロンプト設計のループ】
graph TD
A["要件のモジュール分割"] --> B["段階的プロンプト実行"]
B --> C["中間成果物の整合性評価"]
C -->|矛盾・欠落あり| A
C -->|整合性確認| D["最終結合・構造化出力"]
設計(Segmentation): 巨大なタスクを「現状分析」「機能抽出」「データモデル」等の独立したサブタスクに分解。
実行(Sequential Execution): サブタスクごとにプロンプトを投げ、AIのコンテキスト窓(作業メモリ)を一つの論点に集中させる。
評価(Validation): 前のステップの出力が次のステップの前提条件を充足しているか、LLMまたはルールベースで検証。
【プロンプトの実装案】
複雑な要件を「ステップバイステップ」で処理させるための、中間生成を挟むプロンプト構成です。
# Role
あなたは上級ITアナリストです。提供された業務資料から、システム要件を段階的に抽出してください。
# Task 1: 概念抽出(Chain-of-Thought)
まず、資料を読み込み、以下の要素を箇条書きで整理してください。
- 主要なアクター
- 主要なビジネスエンティティ(データ)
- 業務のトリガーとゴール
# Task 2: 構造化出力
Task 1の結果に基づき、以下のJSON形式で要件を構造化してください。
出力はJSONのみとし、説明は不要です。
{
"actors": [],
"entities": [],
"workflow": [
{"step": 1, "description": "...", "input": "...", "output": "..."}
]
}
# Constraints
- 不明な点は「要検討事項」としてリストアップすること。
- 推測を排除し、事実のみに基づき構成すること。
# Input Data
{{Source_Text}}
【評価指標と誤り分析】
コンテキストエンジニアリングにおいて発生しやすい失敗パターンと、その評価基準を定義します。
| 評価項目 |
指標内容 |
失敗時の挙動(失敗パターン) |
対策 |
| 整合性 |
前後のステップで用語やIDが一致しているか |
Step 1の「ユーザー」がStep 2で「顧客」に変わる |
用語集(Glossary)を定数として固定 |
| 網羅性 |
元資料の主要要件が全て含まれているか |
複雑な分岐フローが無視される |
セクションごとに分割して要約・確認 |
| 形式遵守 |
指定したJSON/Markdown形式に従っているか |
JSON内に自然言語の説明が混入する |
Few-shotで出力例を徹底提示 |
LLM-as-a-Judge 評価基準(5段階)
5: 全ての要件が網羅され、論理矛盾がなく、形式も完璧。
3: 主要な要件は満たしているが、一部の属性値に欠落や用語の揺れがある。
1: 出力形式が崩れている、または事実誤認(ハルシネーション)が顕著。
【改良後の最適プロンプト】
分析結果に基づき、各ステップの境界を明確にし、自己検閲(Self-Correction)機能を組み込んだ最強のプロンプトです。
# System
あなたは複雑な要件を正確に分解・構造化するエンジニアです。
思考プロセス(Thought)と最終結果(Final Answer)を分けて出力してください。
# Instruction
以下の3ステップで処理を実行してください。
## Step 1: 要件の分解と検証
提供されたドキュメントを読み込み、論理的な矛盾や情報不足がないか確認してください。
不足がある場合は「Assumption(仮定)」として明記してください。
## Step 2: モジュール化
抽出した要件を以下のMarkdown形式で出力してください。
- 業務フロー(Mermaid形式)
- データモデル(属性・型・制約)
## Step 3: 自己評価
Step 2の出力が、元の入力データの全ての制約を遵守しているか、自己検閲を行い、修正が必要な場合は最終回答に反映させてください。
# Format
## Thought
(ここに思考プロセスを記述)
## Final Answer
(ここに構造化された結果を記述)
# Input
{{Input_Text}}
【まとめ】
実務でコンテキストエンジニアリングを運用するための3つの鉄則:
「一度に一つの論点」: AIに一度に考えさせる変数を最小化し、コンテキストの純度を高める。
「中間成果物の明示」: JSONやMarkdownなどの型を固定し、次のプロンプトへのインターフェースを安定させる。
「自己検証ループ」: AI自身に出力内容の矛盾をチェックさせるステップを組み込み、ハルシネーションを抑制する。
ライセンス:本記事のテキスト/コードは特記なき限り
CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。
コメント