| name | ai-feedback-loop-optimizer |
| description | AIフィードバックループ最適化スキル。プロンプト→出力→評価→改善の反復サイクルを自動化。段階的改善、A/Bテスト、収束判定、ベスト出力選択で最高品質の結果を生成。 |
AI Feedback Loop Optimizer Skill
プロンプト→出力→評価→改善のフィードバックループを自動化し、AI出力を反復的に最適化するスキルです。
概要
このスキルは、AIの出力品質を反復的に改善するフィードバックループを自動化します。初期出力を評価し、問題点を特定して改善されたプロンプトを生成、再度AIに問い合わせることを繰り返し、最高品質の出力に収束させます。
主な機能
- 反復的改善: 自動的に複数回のフィードバックループを実行
- 品質評価: 各出力を多角的に評価してスコアリング
- プロンプト最適化: 評価結果に基づいてプロンプトを改善
- 収束判定: 品質が十分高くなった時点で自動停止
- A/Bテスト: 複数のアプローチを並行試行
- 履歴追跡: 各イテレーションの改善履歴を記録
- ベスト出力選択: 全イテレーション中の最良の出力を選択
- パラメータ調整: temperature, top_p等の自動調整
- 改善戦略: 複数の改善戦略を適用
- 早期停止: 改善が頭打ちした時点で停止
フィードバックループの仕組み
基本サイクル
┌──────────────────────────────────────────┐
│ イテレーション N │
├──────────────────────────────────────────┤
│ │
│ 1. プロンプト生成/改善 │
│ ↓ │
│ 2. AIに問い合わせ │
│ ↓ │
│ 3. 出力を取得 │
│ ↓ │
│ 4. 品質評価(スコアリング) │
│ ↓ │
│ 5. 問題点の特定 │
│ ↓ │
│ 6. 改善戦略の決定 │
│ ↓ │
│ 7. 次のイテレーションへ │
│ または収束判定 │
│ │
└──────────────────────────────────────────┘
イテレーション例
イテレーション 1: 初期プロンプト
プロンプト:
「Reactについて説明してください。」
AI出力:
「Reactは人気のあるJavaScriptライブラリです。」
評価スコア: 35/100
問題点:
- 情報が不足(完全性: 30/100)
- 具体性に欠ける(具体性: 25/100)
- 例がない(実用性: 20/100)
改善戦略:
- 具体的な特徴を要求
- 使用例を含めるよう指示
- 構造化を要求
イテレーション 2: 改善されたプロンプト
プロンプト:
「Reactについて、以下の観点で説明してください:
1. Reactとは何か(概要)
2. 主な特徴(3つ以上)
3. 簡単なコード例
4. 使用される場面」
AI出力:
「# Reactとは
Reactは、Facebookが開発したUIを構築するためのJavaScriptライブラリです。
## 主な特徴
1. コンポーネントベース: 再利用可能なUIパーツ
2. 仮想DOM: 効率的な描画
3. 一方向データフロー: 予測可能な状態管理
## コード例
```jsx
function Welcome() {
return <h1>Hello, React!</h1>;
}
使用される場面
- SPAの構築
- モバイルアプリ(React Native)
- 複雑なUIの管理」
評価スコア: 72/100 問題点:
- 詳細が不足(完全性: 70/100)
- コード例が簡潔すぎる(実用性: 65/100)
改善戦略:
- より実践的な例を要求
- 各特徴の詳細説明を追加
#### イテレーション 3: さらに改善
プロンプト: 「Reactについて、以下の観点で詳細に説明してください:
- Reactとは何か(歴史も含めて)
- 主な特徴を詳細に(仮想DOM、コンポーネント、Hooks等)
- 実践的なコード例(useState, useEffect使用)
- メリット・デメリット
- 適した使用場面と不適な場面」
AI出力: [詳細で包括的な説明]
評価スコア: 91/100 問題点:
- ほぼ完璧、わずかな改善の余地
収束判定: ✓ 目標スコア(90点)に到達 ベスト出力: イテレーション 3
## 評価基準
### 多角的スコアリング
```javascript
評価項目:
{
正確性: 25点, // 事実の正確さ
完全性: 20点, // 情報の網羅性
明確性: 15点, // 分かりやすさ
具体性: 15点, // 具体例の有無
構造: 10点, // 論理的な構成
実用性: 10点, // 実際に使える情報
読みやすさ: 5点 // 文章の質
}
総合スコア: 0-100点
スコアリング例
AI出力の評価:
正確性: 23/25
- ✓ 事実誤認なし
- ✓ 引用が正確
- ✓ 技術的に正しい
完全性: 14/20
- ✓ 主要な情報を含む
- ✗ いくつかの重要な点が欠落
- ⚠️ エッジケースの説明なし
明確性: 13/15
- ✓ 分かりやすい表現
- ⚠️ 一部の専門用語に説明なし
具体性: 10/15
- ✓ コード例あり
- ✗ より実践的な例が必要
構造: 8/10
- ✓ 見出しで整理
- ⚠️ 深い階層化が不足
実用性: 7/10
- ⚠️ 実際のプロジェクトへの適用が不明確
読みやすさ: 4/5
- ✓ 流暢な文章
総合スコア: 79/100
改善戦略
戦略1: 詳細化
問題: 完全性スコアが低い(14/20)
改善アクション:
- プロンプトに「詳細に」「網羅的に」を追加
- 不足している項目を明示的に要求
- 例: 「エッジケースや制限事項も含めて説明」
戦略2: 構造化
問題: 構造スコアが低い(8/10)
改善アクション:
- 明確な見出し構造を要求
- 箇条書きの使用を指示
- 例: 「Markdownの見出し(#, ##, ###)を使用して構造化」
戦略3: 具体化
問題: 具体性スコアが低い(10/15)
改善アクション:
- より実践的な例を要求
- ユースケースの明示を指示
- 例: 「実際のプロジェクトで使用できるコード例を含めて」
戦略4: 簡潔化
問題: 冗長で読みにくい
改善アクション:
- 簡潔な説明を要求
- 重要なポイントのみに絞る
- 例: 「3-5文で簡潔に要約」
戦略5: Few-shot追加
問題: 期待する形式で出力されない
改善アクション:
- 望ましい出力例を追加
- 例: 「以下の形式で出力してください: [例]」
収束判定
判定基準
収束条件(いずれかを満たす):
1. 目標スコアに到達
- 総合スコア >= 90/100
2. 改善が頭打ち
- 3回連続でスコア改善が+2点未満
3. 最大イテレーション数
- 10回のイテレーションを完了
4. スコアの低下
- 前回より大幅にスコアが下がった(-5点以上)
- → 前回の出力を採用
収束判定例
イテレーション履歴:
1: スコア 35/100
2: スコア 72/100 (+37) ← 大幅改善、継続
3: スコア 91/100 (+19) ← 大幅改善、継続
4: スコア 93/100 (+2) ← 改善鈍化、継続
5: スコア 94/100 (+1) ← 改善鈍化、継続
6: スコア 94/100 (±0) ← 改善なし、収束判定
収束理由: 改善が頭打ち(3回連続で+2点未満)
ベスト出力: イテレーション 5-6(スコア 94/100)
A/Bテスト機能
複数アプローチの並行試行
初期プロンプト: 「Reactについて説明してください」
イテレーション 1:
アプローチA(詳細化):
プロンプト: 「Reactについて、詳細に包括的に説明してください」
出力A: [詳細だが冗長]
スコア: 72/100
アプローチB(構造化):
プロンプト: 「Reactについて、以下の項目で説明:
1. 概要
2. 特徴
3. 例
4. 使用場面」
出力B: [構造化されているが簡潔]
スコア: 78/100
選択: アプローチB(スコアが高い)
イテレーション 2:
アプローチBをベースにさらに改善...
パラメータ調整
自動パラメータ最適化
イテレーションごとにパラメータを調整:
イテレーション 1:
temperature: 0.7 # デフォルト
top_p: 0.9
→ 出力: やや曖昧
→ スコア: 68/100
イテレーション 2:
temperature: 0.3 # より決定論的に
top_p: 0.5
→ 出力: 明確で一貫性あり
→ スコア: 85/100
イテレーション 3:
temperature: 0.2 # さらに厳密に
top_p: 0.3
→ 出力: 非常に正確
→ スコア: 92/100
履歴追跡
改善履歴の記録
{
"task": "Reactの説明",
"startTime": "2024-11-22T10:00:00Z",
"endTime": "2024-11-22T10:05:30Z",
"totalIterations": 5,
"finalScore": 94,
"iterations": [
{
"iteration": 1,
"prompt": "Reactについて説明してください。",
"output": "Reactは人気のある...",
"score": 35,
"evaluation": {
"accuracy": 8,
"completeness": 6,
"clarity": 7,
...
},
"issues": [
"情報が不足",
"具体例がない"
],
"strategy": "詳細化"
},
{
"iteration": 2,
"prompt": "Reactについて、以下の観点で...",
"output": "# Reactとは...",
"score": 72,
"improvement": 37,
"evaluation": {...},
"issues": ["コード例が簡潔すぎる"],
"strategy": "具体化"
},
...
],
"bestIteration": 5,
"bestScore": 94,
"convergenceReason": "改善が頭打ち"
}
使用例
基本的な使い方
以下のタスクをフィードバックループで最適化してください:
タスク: 「TypeScriptの型システムを説明」
目標スコア: 90点
最大イテレーション: 5回
自動的に反復改善を実行し、ベストな出力を返してください。
詳細設定
フィードバックループ最適化を実行してください:
タスク: 「Dockerのベストプラクティスをまとめる」
設定:
- 目標スコア: 92点
- 最大イテレーション: 7回
- 早期停止: 改善が3回連続で+2点未満
- パラメータ調整: 自動
- A/Bテスト: 2つのアプローチを並行試行
評価重視項目:
- 実用性: 30%
- 完全性: 25%
- 具体性: 25%
- その他: 20%
出力:
- ベストな結果
- 改善履歴
- 各イテレーションのスコア推移
段階的改善の可視化
タスク: 「GraphQLの利点を説明」
各イテレーションの改善を可視化してください:
出力形式:
1. イテレーションごとのスコア推移グラフ(テキストベース)
2. 各イテレーションの主な改善点
3. 最終的なベスト出力
4. 改善プロセスのサマリー
カスタム評価基準
タスク: 「React vs Vueの比較」
カスタム評価基準:
- 公平性: 30点(どちらかに偏らない)
- 網羅性: 25点(重要な観点をカバー)
- 実用性: 20点(実際の選定に役立つ)
- 正確性: 15点(技術的に正しい)
- 構造: 10点(読みやすい構成)
目標スコア: 85点
最大イテレーション: 6回
高度な機能
マルチモーダル最適化
テキスト + コード + 図表の最適化:
タスク: 「REST APIの設計ガイド」
各イテレーションで改善:
- テキスト説明の明確性
- コード例の実用性
- 図表の分かりやすさ(ASCII artまたはMermaid)
総合評価でベストな組み合わせを選択
ドメイン特化最適化
技術ドキュメント向け:
- 評価基準: 正確性、完全性、例の質を重視
- 改善戦略: コード例の追加、APIリファレンスとの整合性
ブログ記事向け:
- 評価基準: 読みやすさ、関心度、SEOを重視
- 改善戦略: 見出しの最適化、キーワード配置
学術論文向け:
- 評価基準: 論理性、引用の正確性、形式を重視
- 改善戦略: 引用の追加、論理構造の強化
チーム評価統合
複数の評価者による並行評価:
イテレーションごとに:
1. 評価者A(正確性重視): 82点
2. 評価者B(実用性重視): 88点
3. 評価者C(読みやすさ重視): 85点
平均スコア: 85点
評価者間の不一致が大きい場合:
→ 各評価者のフィードバックを統合して次のプロンプトを生成
ベストプラクティス
- 明確な目標設定: 何を最適化するか明確に
- 適切な評価基準: タスクに合った評価項目の選択
- 早期停止の活用: 無駄なイテレーションを避ける
- 履歴の記録: 改善プロセスを分析可能に
- A/Bテストの活用: 複数アプローチを試行
- パラメータ調整: temperature等を動的に調整
- 収束判定の妥当性: 目標スコアを現実的に設定
制限事項
- コストの増加: 複数回のAPI呼び出しが必要
- 時間の増加: イテレーションに時間がかかる
- 収束の保証なし: 必ずしも改善するとは限らない
- 評価の主観性: 自動評価の精度には限界あり
バージョン情報
- スキルバージョン: 1.0.0
- 最終更新: 2025-11-22
使用例まとめ
シンプルな最適化
タスク: 「Pythonの基礎を説明」
目標スコア: 85点
フィードバックループで最適化してください。
詳細設定での最適化
タスク: [複雑なタスク]
設定: [詳細な設定]
カスタム評価: [評価基準]
反復改善を実行し、ベスト出力と改善履歴を提供してください。
このスキルで、AI出力を反復的に改善し、最高品質の結果を得ましょう!