複雑な要件を分解し精度を最大化する「コンテキストエンジニアリング」の実装ガイド
【ユースケース定義と課題】
曖昧な業務記述から例外処理を含む厳密なフロー図とJSON仕様を生成する。情報過多による論理欠落や様式崩れを、段階的な情報提供で解決。
入力形式: 自然言語による業務説明(Markdown)
出力形式: 構造化データ(JSON)および可視化コード(Mermaid)
【プロンプト設計のループ】
graph TD A["設計: 段階的タスクの定義"] --> B["実行: 各フェーズの逐次投入"] B --> C["評価: 論理整合性と形式チェック"] C -->|改善: コンテキスト変数の再定義| A
設計: 一度の指示で全てを求めず、「要件抽出」「論理構築」「フォーマット変換」にタスクを分離。
実行: LLMのコンテキストウィンドウ内に、前のステップの出力を「確定事項」として保持。
評価: 各ステップの出力が後続のステップで再利用可能な精度かを確認。
【プロンプトの実装案】
# Role あなたはエンタープライズレベルの業務設計者です。 与えられた業務記述を、論理的な欠陥がないフローチャートとシステム仕様に変換してください。 # Task: Phase 1 (Analysis & Step-by-step reasoning) 以下の手順に従って思考してください。 1. 業務の「開始地点」と「終了地点」を明確にする。 2. 正常系(ハッピーパス)のステップを5〜8個でリストアップする。 3. 各ステップで発生しうる「例外」や「分岐条件」を特定する。 # Constraints - 専門用語はそのまま維持すること。 - 曖昧な箇所は「要確認事項」として別途リストアップすること。 # Input Data [ここに業務内容を記述] # Output Format ## 1. ワークフロー分析 (Chain-of-Thought) [思考プロセスを記述] ## 2. 定義済みステップ - Step1: ... ## 3. 分岐・例外リスト - Condition A: ...
【評価指標と誤り分析】
| 評価項目 | 期待される挙動 | 失敗パターン (要改善) | 採点 (1-5) |
|---|---|---|---|
| 論理一貫性 | 開始から終了まで矛盾なく繋がる | ループが閉じない、行き止まりがある | 1-5 |
| 例外網羅性 | エラー処理が定義されている | 正常系のみ記述され、異常系が無視される | 1-5 |
| 形式遵守 | 指定されたMarkdown/JSON形式 | テキストが混入し、パースに失敗する | 1-5 |
幻覚の特定: 存在しない外部システムとの連携をAIが勝手に捏造していないか。
様式崩れ: JSONコードブロック内にコメントアウトが含まれ、構文エラーになっていないか。
【改良後の最適プロンプト】
# Role
業務プロセスモデリングの専門家。
# Instructions
以下の「コンテキスト・スタッキング」手法を用いて回答してください。
Step 1: 【構造化抽出】
提供されたテキストから、Actor(誰が)、Action(何を)、Condition(どんな条件で)を抽出してください。
Step 2: 【グラフ論理の構築】
Step 1を基に、Mermaid.jsのgraph TD形式でフロー図を作成してください。
※分岐(Decision)には必ず2つ以上の遷移先を設けること。
Step 3: 【データ仕様の定義】
最終成果物として、以下のJSON形式で出力してください。
{
"flow_id": "string",
"steps": [{"id": "number", "label": "string", "next": []}],
"exceptions": [{"condition": "string", "action": "string"}]
}
# Input
[業務記述を挿入]
# Final Output Checklist
- Mermaidコードは構文エラーがないか?
- JSONはRFC 8259に準拠しているか?
【まとめ】
1命令1目的: 複雑な処理は、思考プロセス(CoT)と形式出力(Format)を明確に分ける。
中間成果物の明示: LLMに「まず抽出、次に構造化、最後に整形」と段階を指示し、コンテキストを固定する。
スキーマの厳格化: JSON等の構造化データを出力させる際は、具体的なプロパティ名をFew-shotで例示する。

