コンテンツにスキップ

予測駆動型進化エンジン

90%の会話をLLMコストゼロで進化させる。


たとえ話:ベテラン医師の直感

Section titled “たとえ話:ベテラン医師の直感”

30年の経験を持つ医師を想像してください。くしゃみと鼻水の患者が来院しても、全血液検査やMRIをオーダーしません——パターン認識に基づき、安静と水分補給を処方します。予想外の状況(異常な症状、矛盾する兆候)が現れたときだけ、高額な診断手順にエスカレーションします。

DuDuClawの進化エンジンも同じ原理で動作します。すべての会話に対してリフレクションを行う(高コスト)のではなく、何が起こるべきかを予測し、現実が予測から外れたときだけ計算リソースを投入します。


ユーザーメッセージが到着するたびに、エンジンは以下のサイクルを実行します:

ユーザーメッセージ到着
|
v
+------------------+
| 結果を予測 | <-- 学習済みパターンに基づく
+--------+---------+
|
v
+------------------+
| 実際の応答を | <-- エージェントが実際に何をしたか
| 観察 |
+--------+---------+
|
v
+------------------+
| 予測誤差を計算 | <-- 予測と現実のズレはどれくらい?
+--------+---------+
|
v
+------------------+
| 誤差の深刻度で | <-- 最もコストの低い適切なアクションを選択
| ルーティング |
+------------------+

予測誤差が次のアクションを決定します:

誤差レベル 意味 実行内容 コスト
無視可能(Negligible) 予測が的中 何もしない。次へ進む。 ゼロ
中程度(Moderate) わずかにずれているが許容範囲内 偏差を記録して将来の学習に備える。アクションなし。 ゼロ
有意(Significant) 意味のある誤り 単一のGVUリフレクションサイクルを起動 LLM呼び出し1回
重大(Critical) 完全に外れている 緊急GVUループを起動(最大3ラウンド) 複数のLLM呼び出し

実際の運用では、大多数の会話が最初の2つのバケットに収まります。エージェントの行動は十分に予測可能であり、APIトークンを1つも使わずに「すべて正常」と確認できます。

このアーキテクチャは、カーネマンのフレームワークにおける人間の認知を再現しています:

System 1(高速・自動): 軽量なヒューリスティックルールのセットが一般的なケースを処理します。チェック項目:

  • 応答が期待される意図カテゴリと一致しているか?
  • トーンがエージェントのパーソナリティと一貫しているか?
  • 応答が行動境界内に収まっているか?

System 2(低速・意識的): System 1が異常をフラグした場合にのみ起動されます。ここでLLMが呼び出され、何が問題だったかを深く分析し、修正案を提示します。

ポイントは、System 1がトラフィックの約90%を処理すること。System 2は真にリフレクションが必要な約10%のために保持されます。

さらに巧みなのは、「中程度」と「有意」の境界が固定ではない点です。MetaCognition(メタ認知) モジュールが100回の予測ごとに自身のパフォーマンスをレビューします:

100回の予測ごと:
|
v
GVUの起動頻度が高すぎないか?
--> はい:「有意」閾値を引き上げ(より寛容に)
--> いいえ:実際の問題を見落としていないか確認
--> はい:閾値を引き下げ(より敏感に)
--> いいえ:現在の設定を維持

これにより、各エージェント固有の行動プロファイルにシステムが適応します。カスタマーサポートを担当するエージェント(予測可能なパターン)はより高い閾値を持ち、クリエイティブライティングを行うエージェント(本質的に予測困難)はより低い閾値を持ちます。


このエンジンがなければ、すべての会話がLLMリフレクションをトリガーします。大規模運用(1日数千メッセージ)では、リフレクションコストが会話自体のコストを上回ることがあります。予測駆動アプローチはリフレクションコストを約90%削減します。

リフレクションは進化パイプラインにレイテンシを追加します。90%の会話でリフレクションをスキップすることで、進化システムはレスポンシブに保たれ、ボトルネックになりません。

すべての会話が等しい進化シグナルを持つわけではありません。日常的な「おはよう」のやり取りは、エージェントに新しいことを教えません。予測誤差によるフィルタリングで、エンジンは実際に新しい情報を含む会話に学習予算を集中させます。


予測エンジンが「予測結果」と「実際の結果」を比較する前に、その会話で何が起きたのかを理解する必要があります。ConversationOutcome モジュールは、LLM呼び出しを一切使わずに、3つの軸で会話を分類します:

会話終了
|
v
+-----------------------+
| TaskType検出 | <-- ユーザーは何をしたかったのか?
|(質問、依頼、 | (キーワード+パターンマッチング)
| クレームなど) |
+-----------------------+
|
v
+-----------------------+
| 満足度シグナル | <-- ユーザーは満足したか?
|(明示的なフィードバック、| (感情ヒューリスティック、
| 会話の流れ) | 再エンゲージメントパターン)
+-----------------------+
|
v
+-----------------------+
| 完了検出 | <-- タスクは終わったか?
|(確認の合図、 | (zh-TW+en バイリンガル)
| トピックの終結) |
+-----------------------+

これが、予測エンジンが自らの予測と照合する「観測された現実」を提供します——すべてコストゼロで。


MistakeNotebook:ループを横断するエラー記憶

Section titled “MistakeNotebook:ループを横断するエラー記憶”

予測が外れたとき(有意または重大なエラー)、その詳細は MistakeNotebook に記録されます——失敗パターンを蓄積し続けるログです:

予測誤差(有意または重大)
|
v
MistakeNotebookに記録:
- 何を予測し、実際に何が起きたか
- 会話のコンテキスト
- 当時有効だったSOUL.mdのバージョン
- エラーカテゴリ
|
v
以降の予測はこのノートを参照する:
「このタイプのミスは過去にもあったか?」
|
v
あれば:類似の状況では信頼度の
閾値を下げる(より慎重に)

このノートは予測エンジン(将来の予測精度の向上)とGVUループ(L2.5 MistakeRegression検証レイヤーが、新しい人格バージョンを既知の失敗パターンと照合する)の両方にフィードされます。


すべての有意な予測誤差が即座の対応を必要とするわけではありません。Deferred GVU の仕組みは、フルサイクルの進化を起動する前に勾配シグナルを蓄積します:

有意な誤差を検出
|
v
勾配バッファは十分に溜まったか?
|
+----+----+
| |
十分 不十分
| |
v v
今すぐ 勾配を蓄積
GVUを (後回しにする)
起動 |
v
72時間以内に最大3回まで延期
→ 数日にわたって分散した
9〜21回相当の実効イテレーション

これにより、進化エンジンは些細な出来事のたびに反応することがなくなります。代わりに、意味のある変更を正当化できるだけの根拠が蓄積されるまで待つため、より安定した高品質な進化につながります。


  • GVUループ:予測エンジンはGVUのゲートキーパーです。GVUがいつ起動し、どの程度の緊急度で実行するかを決定します。
  • MistakeNotebook:両ループが共有する記憶で、同じミスの再発を防ぎます。
  • ConversationOutcome:コストゼロの会話分類で、予測比較のための「観測された現実」を提供します。
  • SOUL.mdバージョン管理:GVUが新しいSOUL.mdバージョンを生成すると、予測エンジンの精度が24時間観察指標の一部となります。
  • CostTelemetry:エンジンのヒット/ミス比率が追跡され、ダッシュボードに表示されます。運用者はエンジンがどれだけ節約しているかを確認できます。
  • Deferred GVU:勾配の蓄積により、進化が辛抱強く根拠に基づいたものになります。

予測駆動エンジンは根本的な問いに答えます:「この会話はエージェントの成長を必要としているか?」 ほとんどの場合、答えはノーです——そしてシステムはLLMに尋ねることなく、それを認識できるほど賢いのです。本当に成長が必要なときは、辛抱強く待つ(Deferred GVU)ことも、緊急に動く(緊急ループ)こともでき、過去のミス(MistakeNotebook)を決して忘れません。