信念ループ(Belief Loop)
エージェントに、外の世界に対する人間らしい信念サイクルを与える:予測を宣言し、 現実に照らして採点され、次の機会に自分のキャリブレーションを目にする。
タスクフォワードモデル(v1.53/v1.54)が予測するのは、エージェント自身の実行 です(どのツールを使うか、何回呼び出すか、ジャッジが通すか)。信念ループは 欠けていた外側の層を追加します:外部世界に対する構造化された予測——対象は 市場に限らず何でも——を観測された現実に対して決定論的に決済し、エージェントの キャリブレーション記録を次の意思決定プロンプトに注入して返します。
ループの全体像(すべてのフックはプログラム的です:信念と現実の差分はすべて プラットフォームが計算して注入し、エージェントに自分が何を予測したかを 思い出すことを求めることは決してありません。arXiv:2605.29463 の リフレクション虚構化の証拠によって強制された設計です):
belief_submit (MCP) ──▶ belief_log (prediction.db) ▲ │ │ 次のディスパッチの │ tick 起動時に1行の対照を添付: │ プロンプトに校正 │ 「70%で上昇と言ったが、1.2%下落」 │ セクションを注入 ▼ │ (検証済みのみ) belief_settle (MCP) ─▶ 決定論的な3方向 Brier └────────────────────────┘ (現状はすべて自己申告として記録)エージェントには3つの MCP ツールが与えられます:
belief_submit— subject(予測対象となる外部の何か。銘柄コード2317やtrial_conversion_rateのような KPI など)、horizon(いつ決済するかを表す 自由形式のラベル。例:今日の終値や今週金曜、40文字以内)、 direction(up/down/flat)、probability(0〜1)、短い根拠、そして 方向の判定基準となる参照値。belief_settle— 信念の id と実現値。決済は決定論的です:参照値に対する 方向判定、設定可能なフラットバンド([belief] flat_band_pct、デフォルト 0.3%)、3方向 Brier スコアリング。実現値はエージェント自身の報告です。 決済処理はプラットフォームが提供する価格と照合でき(許容誤差 1%、乖離時は 拒否)、照合に通ったときだけ検証済み(settle_source = "agent+tick_verified") として記録しますが、現在その価格を渡す経路はありません。belief_settleツールは価格を渡さず(MCP サーバープロセスはライブ tick データを読めません)、 ゲートウェイ側でライブ tick に照らして決済する処理も未実装です。そのため、 すべての決済は自己申告(settle_source = "agent_unverified")として記録されます。 応答にはcounts_toward_calibration(自己申告ならfalse)が含まれ、 自己申告の場合は記録されたがキャリブレーションには数えないというnoteが付きます。belief_stats— エージェント自身の記録。キャリブレーションの数値はverifiedの下にあり、照合済みの決済だけを使います。self_reportedは件数と記述用の 割合のみです。応答にはこの区別を説明するnoteも付きます。
的中率、Wilson 下限、平均 Brier、過信度に数えられるのは、settle_source が
agent+tick_verified と完全に一致する決済だけです。自己申告、不明値・空値、
settle_source を持たない旧レコードは別に数え、どのキャリブレーション数値にも
入りません。検証経路がまだないため、既存のデプロイではすべてのエージェントが
「検証済みの決済なし」と表示されます。
ダッシュボード:Foresight ページに信念と検証タブが追加されます。 予測リスト(方向+信頼度と実現結果の対照、的中/外れ、決済済みの各信念に 「検証済み」または「自己申告(未検証)」のラベル)、Wilson 下限の的中率、 平均 Brier、過信度を表示し、これらの数値は検証済みの決済だけから計算します。 自己申告の決済は別枠の件数として表示し、上の数値には含めません。検証済みの 決済が1件もない間は精度をまだ評価できないと表示し、30件未満の間は件数のみを 表示してその旨を明記します。「効いていそう」とは決して表示しません。
belief.summary/belief_stats の応答(破壊的変更)
Section titled “belief.summary/belief_stats の応答(破壊的変更)”ダッシュボードの RPC belief.summary は { "stats": … } を返し、MCP ツール
belief_stats は同じオブジェクト(と note)を返します。フラットな形は廃止されました:
トップレベルの n_total、n_settled、insufficient_samples、hit_rate、
hit_rate_wilson_low、mean_brier、overconfidence、および subject ごとの
n_settled/hits/mean_brier は削除されています。旧形式を前提にした読み取り側は
更新が必要です。
| フィールド | 意味 |
|---|---|
agent_id |
対象エージェント |
n_submitted |
提出されたすべての信念(決済の有無を問わない) |
n_settled_all |
決済済みのすべての信念(verified.n + self_reported.n) |
calibration_status |
no_verified_settlements(検証済み0件)、insufficient_samples(検証済み1〜29件)、calibrated(検証済み30件以上) |
verified.n、verified.hits |
検証済み決済の件数と的中数 |
verified.hit_rate、verified.hit_rate_wilson_low、verified.mean_brier、verified.overconfidence |
calibration_status が calibrated でない限り null |
self_reported.n |
自己申告の決済件数(不明値と旧レコードを含む) |
self_reported.hit_rate |
エージェントが的中と報告した割合。記述用のみで、キャリブレーション結果ではない。n が0なら null |
per_subject[] |
{ subject, verified: { n, hits, mean_brier }, self_reported: { n } } |
- 投資(最初に検証されたユースケース):subject = 銘柄コード、horizon =
今日の終値、参照値 = 提出時点の価格、実現値 = 終値。ライブ tick フィードが 設定されていれば、tick 起動時に信念とライブ値が並べて示されます。tick フィールドと subject の対応付けは、プラットフォームのzXXXX → XXXX命名規則、またはconfig.tomlの[belief] tick_subject_mapエントリ(キー = tick フィールド名、 値 = subject)で行います。決済そのものは依然として自己申告で、フィードは その検証には使われません。 - ビジネス KPI:subject =
trial_conversion_rate、horizon =今週金曜、 参照値 = 今週開始時のコンバージョン率。エージェントは毎週月曜に、どちらの 方向へ動くかの信念を提出し、週末に CRM の実際の数値で決済します。tick フィードは不要で、スケジュールされたゴールタスクで決済を駆動できます。
誠実な境界線
Section titled “誠実な境界線”- ディスパッチプロンプトの校正セクションは、検証済みの決済が1件以上あるときだけ 注入されます。1件もない場合(現在のすべてのデプロイ)は何も注入しません。 注入される場合、自己申告の決済はどの数値にも含まれない別枠の件数として示されます。
- エージェントのキャリブレーション履歴をプロンプトに注入することは、
実証済みのメカニズムではなく実験です。2026-08 の文献調査では
どちらの方向にも一次証拠が見つからなかったため、すべての信念行に
統計が注入されたかどうか(
stats_injected)を記録し、この問いに 自分自身のデータで答えられるようにしています。 - キャリブレーションはタスク成果とは別に採点され、両者は乖離することが 知られています(arXiv:2607.03015)。よく校正されたエージェントが自動的に 高性能なエージェントであるとは限らず、ダッシュボードも両者を決して 混同しません。
- 検証済みの決済が30件未満の間は、いかなる数値も結論として提示されません (全体を通して Wilson 下限と件数のみの表示)。自己申告の決済はこのしきい値に数えません。
- 検証済みの決済経路はまだありません(ゲートウェイ側でライブ tick に照らして 決済する処理は未実装)。そのため、現時点ではどこでもキャリブレーションは空です。