跳轉到

評分

每條訊號會帶 3 個數值欄位和 2 個分類欄位。Dashboard 上每個都會顯示出來;本頁講清楚它們的含義,以及每個數字到底是怎麼算出來的

單個 agent 怎麼打分

5 個專精 agent —— SignalScopeSentimentPulseMacroMindSectorScanPolicyRadar —— 各自獨立審視每條新聞。每個 agent 都跑同樣的三步流水線:

1. 先呼叫領域工具拉取證據。Agent 的 prompt 裡強制要求它在打分之前呼叫與自己專長相關的工具:

Agent 打分前必須呼叫的工具
SignalScope 地緣政治 / 制裁 / 宏觀事件查詢、RSS、網頁搜尋
SentimentPulse Reddit 情緒、Stocktwits 多空比、YouTube 情緒
MacroMind 央行利率、CPI、匯率、原油 / 黃金
SectorScan 同板塊及上下游關聯公司查詢
PolicyRadar 監管文件、央行講話、SEC / ASIC 執法動向

2. 按一份明確的刻度表打分。每個 agent 的 prompt 都把這張表逐字寫在裡面,作為 LLM 的錨點:

分數區間 含義
0.80 – 1.00 直接重大衝擊(點名你的股票、破產、巨大業績超預期)
0.65 – 0.79 顯著間接影響(板塊聯動、關鍵客戶/供應商受衝擊)
0.40 – 0.64 一般相關(行業趨勢、符合預期的宏觀資料)
0.00 – 0.39 弱訊號(泛泛評論、關係遙遠)

Prompt 裡還逐字寫了一句:"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 節點,重讀自己的草稿並可能在第二輪調整分數。最終的分數是反省後的;初稿的分數會另存為 draft_impact_score 供稽核。

關於 agent 評分的幾點重要警告

  • 這些是 LLM 的判斷,不是公式。同一條新聞在不同執行下分數會有小幅波動(典型漂移 ≈ ±0.03)。
  • confidence_score 衡量的是 agent 對自己這次判斷有多確定,跟新聞有多大無關。它和 impact 是兩個獨立維度。
  • 當 agent 的工具呼叫失敗時(例如外部 API 當機),它仍然會打分,但 confidence_score 應該相應下降。

訊號級別的分數怎麼聚合

5 個 agent 跑完後,3 條不同的聚合規則會把它們的輸出合成最終分數。每個數字用的規則不一樣,這點很關鍵,也是被問得最多的:

UI 上看到的欄位 聚合規則 為什麼是這條規則
訊號的 impact_score max(agent.impact_score),在成功回傳的 agent 之間取最大值 最受衝擊的視角勝出。只要有一個專家看到這是大事,整條訊號就被當大事處理 —— 寧錯報一次,也不漏報。
訊號的 confidence_score mean(agent.confidence_score),在成功回傳的 agent 之間取平均 對「確定性」取共識 —— 如果 4 個 agent 都不確定,整條訊號就承擔這種不確定性,哪怕第 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 會自動降一檔(FLASH → ALERT、ALERT → NOTE、NOTE → FYI)。這是防止某次降級執行中,一個特別自信的 agent 單獨把分數拉爆。

Urgency(緊急度)

是檔位標籤,不是數字。它決定了訊號怎麼送達、有多吵。4 檔對應程式碼裡的 shared/utils.apply_urgency_thresholds,在每條訊號卡片上以不同顏色徽章呈現(紅 / 橙 / 金 / 灰)。

Urgency 閾值 徽章 送達方式
FLASH impact ≥ 0.80 event 屬於 flash 類(制裁、破產、利率突襲、出口禁令、地緣衝突…) Telegram + 瀏覽器推播,requireInteraction 常駐橫幅
ALERT impact ≥ 0.65 Telegram + 瀏覽器推播
NOTE impact ≥ 0.40 僅 Dashboard 顯示(不推播)
FYI impact < 0.40 僅 Dashboard 顯示,置於 feed 底部

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 是留給「立刻醒過來」那種事件的;如果你的 feed 裡 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 bar 上色:0.70+ 紅,0.45–0.70 琥珀,0.45 以下藍。

Confidence score(信心分)

也在 [0.0, 1.0] 區間,聚合規則是成功回傳的 agent 自報信心的 mean。Confidence 不是衡量新聞有多重要 —— 是衡量每個 agent 對自己這次判斷有多確定。「高 impact + 低 confidence」合理(例如傳聞級 M&A);「低 impact + 高 confidence」也合理(例如符合預期的常規財報,影響已被定價)。

兩個分數應當獨立解讀:

  • 高 impact + 高 confidence → 真訊號,按規矩處理。
  • 高 impact + 低 confidence → 值得關注,當假設處理。
  • 低 impact + 高 confidence → 雜訊,但是被識別得很好的雜訊。
  • 低 impact + 低 confidence → 略過。

個股相關度

每條訊號都帶一個 tickers_linked 列表 —— 受這條新聞影響的每檔股票各佔一項,都有自己的 impact 分和一個 link_type

  • direct(直接)—— 新聞裡點名了這檔股票或其公司。
  • sector(同板塊)—— 新聞講的是鄰近公司或市場事件,由板塊 / 供應鏈 agent 推斷到此股。
  • chain(供應鏈)—— SectorScan 推斷的關鍵客戶 / 供應商 / 合作夥伴關聯。
  • macro(宏觀)—— 大類資產共振(全部 REITs、全部銀行),僅留給真正全板塊的事件。

個股 impact 用的是加權平均(不是 max),因為對單檔股票來說你想要的是共識衝擊而非最極端視角。Dashboard 按 impact 降序排列,每條訊號最相關的那檔股票排第一。

Signal type(訊號類型)

Agent 會給每條訊號打一個簡短的「事件類型」字串:earnings(財報)、guidance_change(指引調整)、m_and_a(併購)、policy_change(政策變更)、supply_chain(供應鏈)、macro_event(宏觀事件)、routine_news(常規新聞)、sentiment_surge(情緒激增)。它會以一個小型低飽和膠囊形式緊挨 urgency 徽章顯示。用於過濾和未來的規則匹配。

另請參閱