PERSONAL INTELLIGENCE PIPELINE · 架构与数据流

公开情报系统:从采集到发布

当前生产系统的组件架构、数据流、存储模型、调度策略与失败路径。 统计值在构建时直接读取项目 YAML,不是运行时监控指标。

9目标(30 个标签)
32 / 38启用频道 / 全部频道
30 min到期频道扫描周期
1 h待分析队列处理周期

01 / ARCHITECTURE

组件架构与控制流

控制面由 Multica 触发,数据面由固定采集器和 Worker API 执行。模型不直接写 Git 或 D1;写入经过 Schema、幂等键和发布门禁。

02 / SEQUENCE

一次完整运行:输入、处理、输出

  1. 1

    调度与到期查询

    每 30 分钟触发 collect-due。Worker 根据 enabledinterval_minuteslast_checked_at 返回到期频道;overlap=skip 防止任务重叠。

    Input
    catalog + channel cursor
    Output
    GET /v1/channels/due
  2. 2

    固定路由采集

    每个频道绑定明确的 collector 与参数模板。MCP 绑定预先验证;主方式失败时按配置尝试 fallback,不在运行时临时选择供应商。

    启用采集器
    MCP 20 · RSS 4 · GitHub API 5 · HTTP 2
    Output
    CollectionPage(items, next_cursor)
  3. 3

    标准化、时间证据与去重

    统一 URL、正文和时间。去重顺序为 channel + external_id → canonical URL → channel + content_hash。目录页只作线索,正文和发布日期未核验前不得进入报告。

    Write
    POST /v1/items/batch
    游标
    写入成功后才推进
  4. 4

    正文补全与待分析队列

    研究任务补抓完整正文、最终 URL 和发布日期证据。只允许近 72 小时、正文完整、非 discovery-only、且当前 content revision 尚无分析的条目进入队列。

    Read
    GET /v1/items/pending-analysis
    Guard
    content_revision compare-and-swap
  5. 5

    结构化分析

    模型阅读全文并返回严格 JSON:headline、summary、key_change、why_it_matters、importance、confidence、topics、watch_next 和逐事实 evidence。importance(1–5)与 confidence(0–1)仅用于内部排序。

    Validate
    analysis-batch.schema.json
    Write
    POST /v1/analyses/batch
  6. 6

    确定性选稿与生成

    按重要度、置信度和时间排序,再按 item ID 与来源 URL 去重;最多 12 条,其中最多 3 条重点。午间版只收 importance ≥ 4;无有效新内容则 skipped。

    窗口
    08:15 / 12:45 / 18:45 / weekly 7d
    Output
    content/posts/intelligence/*.zh.md
  7. 7

    发布门禁与线上验收

    检查公共来源、证据、敏感信息、Front Matter、Hugo 构建、Git diff 和允许路径;之后提交并推送。Actions 成功后仍会 GET 页面并核对 64 位 artifact 指纹。

    Status
    draft → validating → ready → published
    Failure
    保留草稿并记录 Run / Issue

03 / STORAGE

D1 核心数据模型

targets 1 ── N channelschannels 1 ── N itemsitems 1 ── 1 analysesreports N ── N itemspipeline_runsaudit_events
保存内容
channels采集配置、游标、最近成功/错误、连续失败次数
items原始条目、正文哈希、发布时间、来源元数据
analyses结构化分析、模型、提示词版本、证据
reports窗口、版次、Markdown、状态、提交和 URL

04 / SCHEDULE

生产调度

Job频率作用
collect-due*/30 min采集到期频道
analyze-pendinghourly :05补全并分析
morning08:30早报
midday13:00高重要度快讯
evening19:00晚报
weeklySun 20:007 天周报

时区:Asia/Shanghai。调度与报告策略分别保存在 schedules.yamlreport-policy.yaml

05 / FAILURE PATHS

失败时系统如何收敛

采集失败

primary → fallback → retry / last_error → health review

正文或日期不足

discovery_only / rejected → enrichment → max attempts

Schema 失败

one repair retry → run failed → exact error in issue

发布失败

stop → keep draft → preserve Git/D1 evidence → no duplicate run