返回 Skill 列表
extension
分类: 其它无需 API Key

捡漏情报站

情报仲裁雷达 —— 领域无关的「抓取→仲裁→ACH 二次分析→打分→事件流→Brier 校准」引擎。当用户要做一个自动监控某类时效性福利/政策/优惠/名额/报名窗口的 Agent(免费 token、低价订阅、内测名额、政府补贴、算力券、招聘补贴、展会报名、个人消费国补、园区奖励等),用这个 skill。核心不是抓信息,是判断「这条是真是假、过期没有、对你有没有用」,以及识别「什么刚没了」「什么刚开了」「什么即将关闭」——即"要领这个时代的鸡蛋,不要迟到"。已内置三个跑通的领域模板(token_deal / gov_subsidy / consumer_subsidy),迁移新领域只改一个 JSON。

person作者: user_1793b15chubcommunity

Deal Radar · 情报仲裁雷达

这个 skill 解决什么问题

时效性情报的核心痛点不是「信息少」,是假信息和过期信息混在真信息里,看起来一模一样。人工追不过来:免费政策变化极快,聚合站有失效延迟,二手来源把「全省总盘子」宣传成「你能拿的钱」。

判断力全部编码在引擎里,分两块:

  1. 真伪仲裁 —— 多源交叉验证 + 来源分层 + 时间衰减 + 独立来源去重
  2. 时效状态机 —— 判定「刚没了 / 还没开始 / 正在生效 / 只是草案 / 是总额度池」

换领域不动引擎代码,只改一个 profile JSON。

什么时候用

用这个 skill 的信号:

  • 用户要监控某类会过期、会失效、会取消、会开放的外部信息
  • 用户说「别转发羊毛文」「要判断真假」「要过滤失效的」
  • 用户有一个已跑通的领域,想复刻到另一个领域
  • 用户问「这个福利还能领吗」「这个政策过期了没」

三步跑通一个新领域

Step 1 —— 建 profile JSON(唯一需要写东西的地方)

assets/profiles/ 里挑一个最接近的模板复制,改四个值:

① half_life_days   → 该领域的信息多快过时(token 政策 45 天,政府政策 120 天)
② tier_weights + tier_labels → 该领域里「一手文件」是什么
                                (政府领域 = 带文号的正式文件;技术领域 = 厂商定价页)
③ 词条表           → kill_words / friction_words / risk_words 全部换成该领域体例
                     (政策领域摩擦词:申报/合同/发票/审计报告/入围库/即申即享)
④ rank_bands       → 按金额量级重标定(token 百元级,政策百万级,差三个数量级)

完整字段说明见 references/profile_schema.md

Step 2 —— 建数据文件

数据是 JSON 数组,每条 Deal 含 claims(证词列表)。字段规范见 references/data_schema.md

两个必须分开的字段: deadline(领取截止)≠ start_date(开放起始)。 一个必须标的字段: value_scope单家 / 总额度池 / 上限值

Step 3 —— 跑

python scripts/run_profile.py --all           # 三个模板全跑,控制台摘要 + JSON
python scripts/report_profile.py              # 生成 outputs/report_all.html
python scripts/events.py                      # 变更事件流(首轮打基线快照)
python scripts/calibration.py all             # Brier 校准:log + resolve + report

单领域:python scripts/run_profile.py --profile <profile.json> --data <deals.json> 指定日期(回测/复盘):--date 2026-09-10

纯 Python 标准库,Python 3.13 实测通过,零第三方依赖。

ACH 二次分析层(scripts/ach.py

仲裁之后还有一层分析判断力,来自 Heuer《情报分析心理学》第八章。引擎对每条情报自动跑四道检查,结果写进 JSON 和 HTML:

| 检查 | 对应 ACH 步骤 | 产出字段 | |---|---|---| | 诊断价值 | 步骤三 | diagnostic_ratio(0~1)—— 证据若对所有假设都相符,就没有区分力。类似「发烧」对所有疾病都成立 | | 证伪优先 | 步骤五 | 数矛盾数量而非支持数量;falsification() | | 证据缺失 | 步骤二 | rejected —— 没有一手文件时写明「该出现却没出现」(那天夜里狗没有叫) | | 敏感度 | 步骤六 | sensitivity —— 单点依赖检测,比如结论完全建立在一个二手来源上 | | 触发信号 | 步骤八 | triggers —— 「出现什么标志 = 结论该变了」。这是整个 skill 的核心产出 |

外部视角(Tetlock《超预测》):

系统置信 = 内部置信 × (1 − w) + 基准率 × w   w = outside_view_weight (0.30)
基准率   = base_rate (0.70~0.75) 有 L1 源 / base_rate_low_tier (0.30~0.35) 无 L1 源

分档基准率是刻意设计的:只给一个统一基准率会托起垃圾来源。实测:工信部荐股软文(L4) 曾被抬到 0.24 置信,分值反超四川 L1 政府文件;加低档基准率 + 置信度门槛后,它老老实实 待在「先观望」。

置信度门槛 rank_floor_confidence:置信度低于该值的条目,无论分值多高都强制压到最低档位。 政策领域 0.30,个人消费领域 0.35(更严,因种子数据多为占位待核验)。

变更事件流(scripts/events.py

Silver《信号与噪声》:适用混沌理论的系统有两个特性——动态(当前动作影响未来)与非线性 (指数增长)。情报生态正是这种系统,所以盯变化比盯当前状态重要

「房市崩盘并非黑天鹅」——希勒 2000、贝克 2002、《经济学人》2005 都说过了,信号早已存在, 只是被忽略。所以:弱信号不丢弃、全部留档可追溯

8 类事件,按行动紧迫度排序(PRIORITY 常量):

removed ❌刚没了 > expired ⌛刚失效 > closing ⏰即将关闭 > opened 🚀刚开了
> reduced 📉缩水 > increased 📈加码 > added ✨新出现 > restructured 🔧有改动

「什么刚没了」永远排在「什么新出现」之前 —— 用户的核心诉求。

用法:python scripts/events.py [--profile token_deal] [--date 2026-09-10] [--since 2026-09-01] 快照存 outputs/snapshots/<profile>_<date>.json。首轮自动作为基线。

Brier 校准闭环(scripts/calibration.py

Tetlock《超预测》:Brier 得分 = (p − o)²。完美 0,随机猜 0.5,最糟 2.0。 它惩罚过度自信,逼你给出真实的主观概率。

log     每次跑完记录:这条情报 30 天后还有效吗?概率多少?
resolve 到期回看:真有效(1)还是没了(0)
report  Brier 分数 + 校准表(置信度分桶 vs 实际命中率 + 偏差方向)

报告直接给出调参指令:[0.8,1.0) 高估 40% → 调低 official_bonus / base_rate[0.2,0.4) 低估 30% → absence_penalty 可能太重

阈值:Brier < 0.15 良好 / 0.15~0.25 有系统性偏差 / ≥ 0.25 接近随机猜测,必须调参。

内容级去重

字符 5-shingle + Jaccard 相似度(标准信息检索做法,纯标准库)。早期版本只按域名去重, 同一篇稿子换 3 个域名发出去照样算 3 源交叉验证。现在 distinct_content_sourcesindependent_sources 分开报,洗稿一眼可见。

诚实记录:龚晓辉《东南亚国家网络信息检索导论》全书 0 命中近重复检测/shingle/MinHash, 抄袭检测仅 1 处——那是东南亚各国互联网国情调研书,撑不起内容级去重。这部分按标准 IR 知识实现,不是从书里提炼的。

引擎的三个硬约束(改代码前必须知道)

1. Claim / Deal 分离

Claim不可变证词(一个来源一条),Deal仲裁后的事实。同一事实可被多源交叉验证,但证据本身不改写——这是能追溯「谁在说谎」的前提。抽取器只做信号不做判断,判断全交给 Arbiter。

2. 时效状态机:判定顺序不可调换

无 claims → _sync_times → _pick_best → 草案 → 总额度池 → 未开始 → 已失效 → 数值仲裁 → 上限值提示

每一环颠倒都有明确失败后果:

| 顺序 | 颠倒后果 | |---|---| | 草案最先 | 征求意见稿被当成正式政策去申报,白跑 | | 总额度池其次 | 全省 3000 万被当成单家 3000 万,差一个数量级 | | 未开始再次 | start_date 还没到就进主榜拿了最高分 | | 已失效最后判数值 | 失效条目本就不打分,仲裁无意义 |

DRAFT / NOT_STARTED / EXPIRED / POOL 四种状态一律给 0 分,从主榜剔除,单独区块展示。

3. _sync_times 只在证词有值时才覆盖

_sync_times 把 Claim 层时间字段汇总到 Deal 层。必须写成「有证词才覆盖」

cands = [c for c in deal.claims if c.start_date]
if cands:                      # ← 这一行不能省
    deal.start_date = min(c.start_date for c in cands)

若无条件覆盖,当 Claim 层缺字段时会把 Deal 层人工录入的时间清成 None, 导致「未开始」永远判不出来。实测症状:某政策卡的 start_date 只在 Deal 层录入、 Claim 层三源均无 → 被清成 None → 混进主榜拿了最高分。

三种金额口径陷阱(新领域接入必查)

| 口径 | 陷阱 | 引擎处理 | |---|---|---| | 单家 | 无 | 正常打分 | | 总额度池 | 全省/全市总盘子被宣传成「你能拿 X」 | 状态转 POOL,给 0 分,单独展示 | | 上限值 | 「年度最高 X」被当成「拿 X」 | 保留打分,verdict 追加「⚠ 名义上限非保证值」 |

政策领域几乎每条都有这个坑。不标口径就等于把二手来源的宣传语当事实。

置信度:来源分层是唯一硬依据

  • 来源按 L1-L4 分层,每层的具体含义由 profile 定义(语义领域无关)
  • 同一域名只算一个来源 —— 否则同一篇稿子被洗 5 遍,伪装成「5 源交叉验证」
  • 有一手文件直接加 official_bonus(token +20% / 政策 +25%)—— 这个加成交叉引用 10 篇自媒体也补不上
  • 时间衰减:0.5 ^ (age_days / half_life_days),未标发布时间的按 no_date_confidence 处理

打分公式

分值 = 名义价值 × 真实置信度 × 时效紧迫度 ÷ (1 + 摩擦 + 风险)

permanent_bonus:永久免费模型额外加保底分 —— 它不值钱但永远能用,是资产不是羊毛。 政策领域此项设 0(无「永久免费」概念)。

已知的坑(迁移前读一遍)

  1. reset 表述跨版本不一致 —— 中文枚举(「模型永久免费」)vs 英文枚举("ANNUAL")混用。 引擎有 RESET_ALIASES + normalize_reset() 兜底,未识别回落 LIMITED宁保守标注也不丢情报)。 新领域接入时把该领域的所有 reset 表述加进 RESET_ALIASES
  2. 整页抓取会串味 —— 页面旁侧推荐位的数字会被抽进正文。 后续需按正文区块切片再抽取;目前靠人工核对 L1 源。
  3. 动态推荐位造成 diff 假阳性 —— 推荐位刷新导致页面 hash 每次变。 需只 hash 正文主体区域。
  4. 需要登录/JS 渲染的页面抓不到 —— 只用官方文档页做 L1 源,控制台页面放弃。

HTML 报告硬纪律

浅色底 + 深色字。 report_profile.py 已固定:background:#f8f9fa / 卡片 #fff / 正文 #1a1a1a,表格头 #f1f3f5。状态色块全部是浅色底 + 深字。

历史上同类报告三次用深色底被用户明确指出看不清。新领域复用 report_profile.py,不要重写样式。

生成后必跑(不要自己复制断言片段,文档里的断言会跟代码漂移):

python scripts/check_report.py                    # 默认 outputs/report_all.html
python scripts/check_report.py path/to/other.html

脚本做两件事,退出码非 0 即不通过:

  1. 断言存在 background:#f8f9fa + color:#1a1a1a
  2. 扫描全部 background:#xxxxxx,按 RGB 亮度和(<360)判深色底,但放行进度条填充色

第 2 条的两个坑,都是实测踩出来的:

  • 朴素亮度和判定会误报 3 种 / 226 处——#137333(绿)#8a6100(黄)#c5221f(红) 是 64×7px 置信度条的填充,内嵌在浅色轨道 #e8eaed 里,不是背景。故设白名单。
  • #[0-3][0-9a-fA-F]{2} 这种前缀正则也不行——它会命中 #137(实测误报 18 次), 且漏掉 #4a0000 这类 R 通道不算低、整体却很暗的颜色。

判定结果:大面积深色底 0 处,67 处深色全在进度条里。 脚本自带正负向验证(check() 返回错误列表),改样式后先跑它再交付。

文件清单

deal-radar/
├── SKILL.md
├── scripts/
│   ├── engine.py           # 通用引擎:Claim/Deal + 时效状态机(领域无关,纯标准库)
│   ├── ach.py              # ACH 八步 + Tetlock 外部视角 + 内容级去重
│   ├── run_profile.py      # 通用运行器:--profile/--data 或 --all,控制台摘要 + JSON
│   ├── report_profile.py   # profile 驱动多领域 HTML(浅色底深色字,含 ACH 区块)
│   ├── events.py           # 变更事件流:8 类动词,对比快照
│   ├── calibration.py      # Brier 校准闭环:log / resolve / report
│   └── check_report.py     # HTML 硬纪律自检(浅底深字,含正负向自测)
├── assets/profiles/
│   ├── token_deal.json         # 模板 A:AI 免费额度 / Coding Plan(半衰期 45 天)
│   ├── gov_subsidy.json        # 模板 B:政府算力券 / 模型券 / 词元券(半衰期 120 天)
│   └── consumer_subsidy.json   # 模板 C:个人消费国补 / 以旧换新(半衰期 45 天)
├── data/
│   ├── deals_seed.json
│   ├── gov_subsidy_seed.json
│   └── consumer_subsidy_seed.json
├── outputs/            # 样例产物(*_deals.json + report_all.html),可安全覆盖
└── references/
    ├── profile_schema.md   # profile JSON 字段全量说明 + 标定方法
    └── data_schema.md      # 数据文件格式 + ACH 输出字段 + value_scope 口径判定指南

outputs/ 里只保留样例产物,不含运行时状态。 首次使用时自己生成:

outputs/snapshots/<profile>_<date>.json   events.py 的基线快照(首轮自动创建)
outputs/predictions.json                  calibration.py 的预测台账(log 时创建)

双布局兼容scripts/ 同时是包路径和目录路径。脚本头部有 4 行 shim, config/profiles/(项目)与 assets/profiles/(skill)自动切换。两种布局行为一致, 已实测。

落地节奏建议

  1. 先用现成模板跑一遍--all),确认引擎行为符合预期,再动配置
  2. 补 L1 源是最高优先级 —— 每条缺一手文件的情报都列进「待补核验」,下一轮抓取按这张表排
  3. 事件流比快照重要 —— 首轮跑 events.py 打基线,之后每次跑都会输出「刚没了 / 刚开了 / 即将关闭」。用户要的就是这张表
  4. Brier 校准必须闭环 —— 每次跑 calibration.py log 记账,到期 resolve 结算, 每月 report 看分桶偏差。不校准的系统永远停在第一天
  5. 判断力天花板在三本书上 —— 《情报分析心理学》(Heuer,ACH 八步)解释仲裁规则为什么成立; 《超预测》(Tetlock)给出校准的具体工具(Brier + 外部视角);《信号与噪声》(Silver) 给出事件流的理论依据(混沌:动态 + 非线性)。三本缺一,规则就只能是拍的

作者与联系方式

本 skill 由「七仔的AI工具箱」维护。欢迎就技能使用、问题反馈与二次分享交流:

  • 微信公众号:七仔的AI工具箱
  • 抖音号:七仔的AI工具箱
  • CSDN 博客:七仔的AI工具箱

版权与署名:真伪仲裁借鉴 Heuer《情报分析心理学》ACH 八步,Brier 校准借鉴 Tetlock《超预测》, 变更事件流借鉴 Silver《信号与噪声》(仅方法论来源,未包含原文)。本 skill 可免费使用与二次分享, 转载请注明出处「七仔的AI工具箱」。