スコアリング¶
すべてのシグナルには 3 つの数値フィールドと 2 つのカテゴリカルフィールドが付属します。ダッシュボードはそれぞれを表示します。本ページではその意味と、各数値が具体的にどう算出されるかを説明します。
個々の agent のスコアリング¶
5 つの専門 agent — SignalScope、SentimentPulse、MacroMind、SectorScan、PolicyRadar — がそれぞれ独立にニュース項目を評価します。各 agent は同じ三段階パイプラインを実行します:
1. ドメイン特化のツールで証拠を収集。Agent のプロンプトでは、スコアリングの前に各専門領域に対応するツールを呼び出すことが必須となっています:
| Agent | スコアリング前に必須のツール |
|---|---|
| SignalScope | 地政学 / 制裁 / マクロイベント検索、RSS、Web 検索 |
| SentimentPulse | Reddit センチメント、Stocktwits 多空比、YouTube センチメント |
| MacroMind | 中央銀行金利、CPI、為替、原油 / 金 |
| SectorScan | 同セクター・サプライチェーン関連企業の検索 |
| PolicyRadar | 規制文書、中央銀行声明、SEC / ASIC 取締動向 |
2. 明示的なキャリブレーション表に基づきスコア化。各 agent のプロンプトには、LLM のアンカーとしてこの表が逐語的に書き込まれています:
| 範囲 | 意味 |
|---|---|
| 0.80 – 1.00 | 直接的かつ重大なインパクト(保有銘柄の名指し、破産、巨大なサプライズ決算) |
| 0.65 – 0.79 | 顕著な間接インパクト(セクター全体の動き、主要顧客/サプライヤーへの打撃) |
| 0.40 – 0.64 | 中程度の関連性(業界トレンド、想定通りのマクロ指標) |
| 0.00 – 0.39 | 弱いシグナル(一般的な論評、関係が遠い) |
プロンプトには逐語的にこの一文も書かれています:"DO NOT suppress scores out of caution — if a stock is directly named with clear impact, score it 0.75+."(慎重さからスコアを抑えないこと —— 銘柄が明確なインパクトと共に名指しされているなら 0.75+ を与えよ)。これは LLM が過度に保守的になりがちな傾向への意図的な反バイアスです。
3. 自己批判(Reflexion パターン)。各 agent は REVISE ノードを実行し、自身のドラフトを再読してスコアを 2 巡目で修正することがあります。最終スコアは反省後のものであり、初稿のスコアは draft_impact_score として監査用に保持されます。
Agent スコアに関する重要な注意点
- これらは LLM の判断であり、公式ではありません。同じニュースでも実行ごとにスコアが少しブレます(典型的なドリフトは ±0.03 程度)。
confidence_scoreは agent が自身の判断にどれだけ確信があるかの尺度であり、ニュースの大きさとは無関係です。impact とは独立した次元です。- Agent のツール呼び出しが失敗した場合(例:外部 API のダウン)、それでもスコアは付けますが、
confidence_scoreはそれに応じて下がるべきです。
シグナル全体のスコアの集約方法¶
5 つの agent がすべて実行された後、3 つの異なる集約ルールで出力を統合します。UI に表示される各数値で使われるルールは違います — ここが肝心で、最も多く質問されるところです:
| UI に表示されるフィールド | 集約ルール | このルールである理由 |
|---|---|---|
シグナルの impact_score |
成功した agent 間で max(agent.impact_score) |
最もインパクトを見出した視点が勝ちます。1 人でも専門家がこれを大事件と見たなら、シグナル全体を大事件として扱う —— 1 度の誤報 < 1 度の見逃し。 |
シグナルの confidence_score |
成功した agent 間で mean(agent.confidence_score) |
「確かさ」の合意 —— 4 人が不確かなら、5 人目が確信していてもシグナル全体はその不確かさを引き受けます。 |
tickers_linked 内の各銘柄の impact_score |
その銘柄に言及した agent 間で、各 agent の confidence_score を重みとした加重平均 |
単一銘柄については「最も極端な視点」ではなく「合意のインパクト」が欲しい;重みづけにより、確信のある agent に大きい発言力を持たせる。 |
コード参照:シグナルレベルのルールは agents/synthesis_engine.py:308-311、銘柄ごとのルールは agents/synthesis_engine.py:218-251。
Degraded モード。5 つの agent のうち成功して返ったのが 3 つ未満の場合、urgency が自動的に 1 段下がります(FLASH → ALERT、ALERT → NOTE、NOTE → FYI)。これは縮退実行時に確信の高い 1 つの agent だけがスコアを引き上げてしまうのを防ぐためです。
Urgency¶
数値ではなくバケットラベル。シグナルが「どこに」「どれくらいの音量で」配信されるかを決めます。4 段階はコードの shared/utils.apply_urgency_thresholds に対応し、各シグナルカード上で異なる色のバッジ(赤 / オレンジ / 金 / 灰)として表示されます。
| Urgency | 閾値 | バッジ | 配信方法 |
|---|---|---|---|
| FLASH | impact ≥ 0.80 かつ flash 系 event(制裁、破産、利上げサプライズ、輸出禁止、地政学衝突…) | 赤 | Telegram + ブラウザプッシュ、requireInteraction の常駐バナー |
| ALERT | impact ≥ 0.65 | オレンジ | Telegram + ブラウザプッシュ |
| NOTE | impact ≥ 0.40 | 金 | ダッシュボード表示のみ(プッシュなし) |
| FYI | impact < 0.40 | 灰 | ダッシュボード表示のみ、フィード下部 |
flash イベント型は明示的にリスト化されています:export_ban、sanctions、tariffs、rate_surprise、bankruptcy、trading_halt、geopolitical_conflict、fraud、earnings_shock、regulatory_action。中程度の impact のシグナルでも、PolicyRadar や MacroMind がこれらの event_type を付けたら FLASH 昇格します。
なぜ FLASH は稀なのか
決算 / アナリスト / サプライチェーン系のニュースは、明らかに重要でも上限は概ね ALERT です。FLASH は「今すぐ起きろ」型のイベント専用です。フィードが FLASH だらけなら閾値ロジックの校正がおかしい —— issue を上げてください。
Impact score¶
[0.0, 1.0] の数値。集約ルールは max(上の表参照)。エンドユーザー向けの解釈:
- 0.80 + — 次セッション内に株価を顕著に動かす可能性が高い。稀で、政策または M&A が多い。
- 0.65 – 0.80 — 明確に関連あり、読む価値あり。ALERT 級シグナルの大半はこのレンジ。
- 0.40 – 0.65 — 増分ニュース、興味深い背景、単独では価格を動かしにくい。
- 0.40 未満 — フィラー。ウォッチリストに言及があるため表示されているだけ、優先度は低い。
UI は impact バーを色分けします:0.70+ 赤、0.45–0.70 アンバー、0.45 未満青。
Confidence score¶
これも [0.0, 1.0]。集約ルールは成功した agent の自己申告 confidence の mean。Confidence はニュースの重要度ではなく、各 agent が自身の判断にどれだけ確信があるかを測ります。「高 impact + 低 confidence」は妥当(例:噂レベルの M&A);「低 impact + 高 confidence」も妥当(例:想定通りの定期決算で既にプライスイン)。
2 つのスコアは独立に解釈してください:
- 高 impact + 高 confidence → 本物のシグナル、ルールに従って行動。
- 高 impact + 低 confidence → 注目に値する、仮説として扱う。
- 低 impact + 高 confidence → ノイズだが、よく識別されたノイズ。
- 低 impact + 低 confidence → 無視。
銘柄ごとの関連度¶
すべてのシグナルには tickers_linked リストが付属します — このニュースに影響を受ける銘柄ごとに 1 エントリ、独自の impact スコアと link_type を持ちます:
direct(直接)— ニュースで銘柄名または社名が明示的に挙げられている。sector(同セクター)— ニュースは隣接企業または市場イベントについてで、セクター/サプライチェーン agent によりこの銘柄に伝播。chain(サプライチェーン)— SectorScan が推論した主要顧客 / サプライヤー / パートナー関係。macro(マクロ)— 広範な資産クラスの動き(REITs 全体、銀行全体);真にセクター全体のイベント専用。
銘柄ごとの impact は max ではなく加重平均ルールを使います。なぜなら単一銘柄については最も極端な視点ではなく合意インパクトが欲しいから。ダッシュボードはこれを降順にソートし、各シグナルで最も関連度の高い銘柄が最初のバーに来ます。
Signal type¶
各シグナルにエージェントが「イベントタイプ」を表す短い文字列を付与します:earnings(決算)、guidance_change(ガイダンス改定)、m_and_a(M&A)、policy_change(政策変更)、supply_chain(サプライチェーン)、macro_event(マクロイベント)、routine_news(通常ニュース)、sentiment_surge(センチメント急騰)。urgency バッジの隣に小さな低彩度ピルとして表示されます。フィルタリングや将来のルールマッチングに使います。
関連項目¶
- Agents — これらのスコアを生成するのは誰か
- Claw chat (RAG) — 同じスコアが検索ランキングにどう使われるか