PromptWizard型反復改善とAgent Lightning型高速収束による意思決定プロンプトの最適化

Tech

本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

PromptWizard型反復改善とAgent Lightning型高速収束による意思決定プロンプトの最適化

【ユースケース定義と課題】

複雑な顧客問い合わせに対し、感情分析・意図抽出・優先度判定を同時に行い、正確なJSON形式で出力する。単一の指示では判定精度のバラツキやJSONの構文エラーが発生しやすい点が課題。

入出力の型定義:

  • 入力:ユーザーからのテキスト(マルチジャンル、感情入り)

  • 出力:{"intent": string, "sentiment": int, "priority": string, "reasoning": string} 形式のJSON

【プロンプト設計のループ】

graph TD
    A["設計: 命令定義とCoTの導入"] --> B["実行: Few-shotによる推論"]
    B --> C["評価: 精度・形式の自動検証"]
    C -->|PromptWizard: 命令文の洗練| A
    C -->|Agent Lightning: 実行パスの最適化| B
  • 設計: 役割(Role)と、推論ステップ(Chain-of-Thought)を明文化。

  • 実行: 最新LLM(GPT-4o/Gemini 1.5 Pro)のコンテキスト長を活かし、少数の例示(Few-shot)を提示。

  • 評価: 出力結果をLLM-as-a-Judgeでスコアリング。

  • 改善: 誤字・誤判定パターンをフィードバックし、PromptWizard的アプローチで指示文を自動更新、あるいはAgent Lightning的に無駄な推論ステップを削ぎ落とす。

【プロンプトの実装案】

# Role

あなたは高度なカスタマーサポート解析エージェントです。

# Task

入力されたユーザーのメッセージを分析し、以下のJSON形式で出力してください。

# Constraints


- intent: 問い合わせの主目的(返金、技術サポート、苦情、その他)

- sentiment: 感情スコア(1: 非常に不満 〜 5: 非常に満足)

- priority: 対応優先度(High, Medium, Low)

- reasoning: なぜその判定に至ったかの簡潔な理由

- 出力はJSONブロックのみとし、他のテキストは一切含めないこと。

# Thinking Process (Chain-of-Thought)


1. ユーザーの主訴を特定する。

2. 言葉遣いから感情の強さを推定する。

3. 緊急性と不満度から優先度を決定する。

4. 根拠を言語化する。

# Few-shot Example

Input: "3日前に注文した商品がまだ届きません。明日使う予定だったのに、どうしてくれるんですか!"
Output:
{
  "intent": "配送確認",
  "sentiment": 1,
  "priority": "High",
  "reasoning": "配送遅延により具体的な使用予定に支障が出ており、強い不満が示されているため。"
}

# Input

{{USER_INPUT}}

【評価指標と誤り分析】

評価項目 失敗パターン 採点基準 (1-5)
形式遵守 JSON以外の説明文が含まれる、カンマ欠落 5: 完全なJSON、1: パース不可
感情一致 怒っているユーザーを「3(普通)」と判定する 5: 人間の感覚と一致、1: 明らかな誤認
論理一貫性 reasoningと判定結果(priority等)が矛盾する 5: 矛盾なし、1: 支離滅裂

【改良後の最適プロンプト】

PromptWizardによる命令文の具体化と、Agent Lightning的なトークン節約(推論の最短経路化)を適用。

# Role

System: Senior Support Analyst Agent (Efficiency Mode)

# Instructions

Analyze input and return ONLY a minified JSON.
Steps: [1.Identify Core Intent] -> [2.Score Sentiment 1-5] -> [3.Assign Priority] -> [4.Validate Consistency]

# Output Schema

{"i": string, "s": integer, "p": "High"|"Medium"|"Low", "r": string}

# Critical Rule


- If the user uses expletives, set p="High" and s=1.

- No markdown formatting outside JSON.

# Input

{{USER_INPUT}}

【まとめ】

  1. プロンプトは「育て」てから「削る」: 最初はPromptWizard的に詳細な指示(CoT)を盛り込んで精度を出し、運用フェーズでAgent Lightning的に不要なトークンを削って高速化・低コスト化する。

  2. スキーマの短縮化: 実務での大量処理には、キー名を intent ではなく i のように短縮化し、モデルが構造を理解しやすいようOne-shot(1つの例示)を必ず含める。

  3. LLM-as-a-Judgeの導入: 評価を人間に頼らず、上位モデル(GPT-4o等)にスコアリングをさせる自動評価ループを組むことが、最適化のスピードを決定付ける。

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました