本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
「思考の木」と「自己修正」を統合した、LLM出力精度を極限まで高めるプロンプト設計
【ユースケース定義と課題】
複雑な論理推論や多角的な問題解決において、LLMの論理破綻を防ぎ、実行可能な最適解をMarkdownおよびJSON形式で構造化して出力させる。
【プロンプト設計のループ】
graph TD A["設計: 思考プロセス指定"] --> B["実行: 複数案の生成と検証"] B --> C["評価: 自己批判と修正"] C -->|改善| A
設計: Tree of Thoughts (ToT) をベースに、複数の思考経路を定義します。
実行: 各経路で推論を行い、中間結果を生成します。
評価: Self-Refineの手法を用い、生成された回答の矛盾や誤りをLLM自身にチェックさせ、修正案を出します。
【プロンプトの実装案】
Tree of Thoughts (ToT) と Self-Refine の要素を組み合わせた、高度な推論を要求するプロンプト例です。
# Role
あなたは世界最高峰の戦略コンサルタント兼論理学者です。
# Task
以下の[課題]に対し、Tree of Thoughts(思考の木)とSelf-Refine(自己修正)を組み合わせて、最も精度の高い解決策を提示してください。
# 課題
[ここに具体的な課題を記述:例:新規事業の収益シミュレーションにおけるリスク要因の特定と対策]
# Step-by-Step Instructions
1. **Generate Thoughts (ToT)**:
この課題に対して、少なくとも3つの異なるアプローチ(思考の枝)を提案してください。各アプローチは独立した論理展開を持ってください。
2. **Evaluate Thoughts**:
各アプローチのメリット、デメリット、および実現可能性を客観的に評価してください。
3. **Select & Synthesize**:
最も有望なアプローチを選択するか、複数のアプローチを統合して、暫定的な回答を作成してください。
4. **Self-Refine**:
暫定的な回答に対し、「論理的な飛躍はないか?」「ハルシネーション(事実誤認)はないか?」「制約条件を満たしているか?」という観点から自己批判を行い、改善点を3つ挙げてください。
5. **Final Output**:
改善点を反映した最終的な回答を、以下の[Format]に従って出力してください。
# Format
## 1. 採用した思考プロセス
## 2. 自己修正による改善内容
## 3. 最終解決策
## 4. 実行時リスク(JSON形式)
```json
{
"risk_factors": [{"factor": "...", "impact": "..."}]
}
### 【評価指標と誤り分析】 LLMの出力が期待に沿わない場合、以下の観点で分析・評価(LLM-as-a-Judge)を行います。 | 評価項目 | 評価基準 (1-5) | 失敗パターン(例) | | :--- | :--- | :--- | | **論理性 (Logic)** | 思考のステップに矛盾や飛躍がないか | 前提条件を無視した結論が出力される | | **具体性 (Concreteness)** | 抽象的な表現に逃げず、具体的数値や手法があるか | 「最善を尽くす」「効率化する」等の曖昧な言葉 | | **形式遵守 (Format)** | 指定したJSONやMarkdown形式が正しいか | JSONの閉じカッコ不足、スキーマ違反 | | **自己修正能力 (Refinement)** | 自身の誤りを正しく指摘し、改善できているか | 批判内容が的外れ、または批判しても修正されない | ### 【改良後の最適プロンプト】 上記分析を踏まえ、Graph of Thoughts (GoT) の「思考の統合・ループ」の概念を追加した、さらに強固なプロンプトです。 ```text # 厳格な思考プロトコル [思考開始] 1. 課題を複数のサブタスクに分解する。 2. 各サブタスクに対して独立した3つの推論スレッド(Chain-of-Thought)を走らせる。 3. 各スレッド間で情報を交換し、矛盾を解消する(Graph of Thoughts的アプローチ)。 4. 最終回答案を作成後、あえて「反対の立場」からその案を論破しようと試みる。 5. 論破された弱点を補強するように回答を再構築する。 [思考終了] # 出力形式 - 思考ログ(隠しタグまたは詳細セクション) - 最終結論(Markdown) - 構造化データ(JSON)
【まとめ】
実務でプロンプトの精度を維持・向上させるための3つの鉄則:
「思考の道筋」を明示的に強制する: 単に「考えて」ではなく、ToTやCoTのように「Aを評価し、Bと比較し、Cを選択せよ」とプロセスを指定する。
自己批判フェーズを組み込む: 生成した回答を一度疑わせるプロセス(Self-Refine)を入れるだけで、ハルシネーションは劇的に減少する。
評価を自動化する: 定量的な評価テーブル(LLM-as-a-Judge)を用い、どのプロンプトテクニックが自社のタスクに有効かをデータで判断する。

