评分¶
每条信号会带 3 个数值字段和 2 个分类字段。Dashboard 上每个都会显示出来;本页讲清楚它们的含义,以及每个数字到底是怎么算出来的。
单个 agent 怎么打分¶
5 个专精 agent —— SignalScope、SentimentPulse、MacroMind、SectorScan、PolicyRadar —— 各自独立审视每条新闻。每个 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 徽章显示。用于过滤和未来的规则匹配。
另请参阅¶
- Agents —— 谁在产生这些分数
- Claw chat (RAG) —— 同一套分数如何用于检索排序