RSS 就是消息队列:搭一套内网自持的信息源 AI 学习系统
信息输入的问题
做技术的人每天面对三个输入难题:
- 散:博客、新闻、视频收藏各在各的平台,人肉刷既低效又焦虑
- 贵:网页搜索、抓取走外部 SaaS 按次收费,LLM 走外部 API 花钱且数据出网
- 伪时效:总觉得信息要」追实时」,但个人学习场景里,晚几小时读毫无损失
这周我在新装的 Linux 笔记本上立项了 rss-reader,把这三个问题一次处理。核心认知只有一句话:RSS 本身就是消息队列。
RSS 就是消息队列
RSS(Really Simple Syndication,内容订阅的标准格式)常被当成」老技术」。但换一个视角看,它具备消息队列的全部核心性质:
| 消息队列性质 | RSS 的对应 |
|---|---|
| 消息持久化 | 条目发布后一直存在,不会过期消失 |
| 拉取式消费 | 消费者自己定节奏,随时拉取 |
| 天然削峰 | 一天不读,积压都在,不丢不乱 |
| 解耦生产消费 | 作者发布与读者阅读完全异步 |
想清楚这一点,系统的消费模型就直接定型了:
flowchart LR
S1[博客] --> Q[RSS 源<br/>= 持久化队列]
S2[新闻] --> Q
S3[自建源<br/>auto-trend / 视频源] --> Q
Q -->|每日限额拉取| C[AI 分析]
C --> R[报告 Markdown]** 每日限制读取,不追时效。** 因为条目不会消失,限流消费即可,不需要为」实时性」付任何设计成本。这也是 rss-reader 后来演进成 Tier1 全量分析 + Tier2 零 AI 选取的两段式管线的思想起点 —— 成本按预算花,深度按重要性给。
系统架构:内网自持
系统三段式:输入(RSS 多源聚合)→ 处理(AI 分析)→ 输出(报告 Markdown)。
flowchart TB
subgraph 输入
FEED[RSS 源聚合<br/>管理后台扩充]
end
subgraph 处理
AI[AI 分析<br/>概述 / 总结 / 归纳]
AGENT[agent 联网调研补全<br/>信息不全时主动查证]
end
subgraph 底座 Linux 笔记本
FC[firecrawl 内网部署<br/>websearch / webcrawl]
LLM[llama.cpp 本地 3B<br/>分类 / 摘要]
end
subgraph 输出
RPT[报告 Markdown<br/>每日学习简报]
end
FEED --> AI --> RPT
AGENT --> AI
FC --> AGENT
LLM --> AI几个关键取舍:
- 前端复用不重写:把已有项目 Horizon 改造成 RSS 分析前端,再演进为独立项目(支持 agent 联网调研补全分析)
- firecrawl 内网部署:开源的网页抓取与搜索服务跑在自己机器上,websearch / webcrawl 不依赖外部 SaaS,成本归零、数据不出网
- 管理后台管源的扩充与聚合:自建源(GitHub trending 的 auto-trend、视频源解析项目)产出 RSS 即可接入,零适配
本地 3B 模型的能力边界
分析任务里分类、摘要这类轻活,交给本地模型。在 Linux 笔记本上用 llama.cpp 跑 granite 3B(Q4_0 量化,上下文 32K),实测出两条有价值的数据。
一是连通性坑:pi(终端 AI 代理)一直连不上服务。根因是 llama-server 默认绑定 127.0.0.1,只回环可达,局域网访问不通。改成 --host 0.0.0.0 解决。这个坑极其常见:127.0.0.1 永远只指当前机器。
二是性能天花板:生成速度约 16 token/s,此时内存带宽占用已到双通道峰值的八成 —— 瓶颈是硬件带宽,软件调参已无空间。进一步实测:这台机器内存实跑 2667 MT/s 是平台上限;核显卸载(把层卸到 iGPU)不升反降,生成速度反而降约四分之一,因为核显与 CPU 共享同一套内存。
结论很清晰:3B 本地模型做分类、摘要够用且零成本,重分析交给外部大模型。任务分层,各得其所。配套还有一条:小模型的提示词要少而显式,规则一多它会漏执行。
这周其他内容一句话带过:双机协同环境配好(VS Code 配置同步、RDP 远程桌面、pi 开箱可用),视频源分析项目调试完成。