Knowledge Dashboard
Hermes
五阶段数据管线 · 三层渐进增强架构 · 可插拔信源与输出 · 零 LLM 依赖也能运行
01执行流程
1
信源采集
2
相关性打分
3
去重聚合
4
内容蒸馏
5
格式化输出
每次 hermes run 按顺序执行上述五步。cron 定时触发,每步输出下一步的输入。单步失败不阻塞后续步骤。
02核心设计决策
Architecture
无状态管线
每次运行完全独立。持久状态仅两处:config.yaml(用户画像)和 SQLite(历史 item ID + 反馈信号)。无需数据库服务。
Degradation
渐进增强
Tier 0 → 1 → 2 逐层解锁能力。每层独立可用。用户按需选择或由系统根据资源自动切换。
Reliability
故障隔离
每个信源适配器独立 try/catch。单源超时或报错不影响其他信源。LLM 调用也独立隔离。
Cost Control
Token 预算机制
每日 API 调用有 token 上限(用户在 YAML 中配置)。超限自动降级到本地模型或规则引擎。避免账单失控。
03技术栈一览
Language
Python 3.10+
asyncio 异步架构。类型注解。单一 requirements.txt。
Storage
SQLite + YAML
config.yaml 存用户画像。SQLite 存历史 ID + 反馈。零运维。
Deployment
Docker / pip / bare
docker compose uppip install hermes-news。树莓派可跑。
1
信源采集
2
相关性打分
3
去重聚合
4
内容蒸馏
5
格式化输出
Step 1
信源采集 — 从全网拉取原始内容
cron 触发后,Hermes 并发调用所有已配置的 source adapter,每个 adapter 实现标准化的 fetch() + parse() 接口。
Process
执行逻辑
异步并发调用所有 adapter
统一输出格式:title, body, url, date, metadata
内置限速 + 重试 + 单源失败隔离
Stack
依赖组件
aiohttp feedparser arxiv API Reddit JSON Playwright (可选)
Step 2
相关性打分 — 基于用户画像计算 0–1 分数
每条 Item 过打分引擎,得到一个 0–1 的 relevance score。低于阈值的直接丢弃。打分方式取决于当前运行的 Tier。
Tier 0
关键词打分
TF-IDF 向量化 + 关键词权重匹配 + 正则表达式规则。纯 CPU,毫秒级。
Tier 1
语义打分
本地 embedding 模型做语义相似度。"固态电池"="全固态电池"。需 GPU 或 CPU 推理。
Tier 2
深度推理
云端 LLM 理解用户身份 + 研究阶段 + 上下文,判断"这条对这个人重要吗"。最准但有成本。
多信号融合公式:score = keyword×0.4 + semantic×0.4 + recency×0.1 + source_trust×0.1。权重可在 YAML 中覆盖。
Step 3
去重聚合 — 合并同一话题的多源内容
同一条新闻可能同时出现在 arXiv、HN、和 RSS 三个地方。这一步把它们合并为一个 cluster。
Dedup
两层去重
精确去重:URL 标准化后比对
近似去重:MinHash (Tier 0) 或 embedding 余弦相似度 > 0.85 (Tier 1+)
Cluster
聚合策略
同话题内容聚为一个 cluster
选最高分 item 作为代表
保留所有源链接供深入阅读
Step 4
内容蒸馏 — 生成摘要与解读
根据 Tier 选择不同的摘要生成策略。
Tier 0
提取式
取前 N 句 + 关键词高亮。无需模型。
Tier 1
生成式
本地 LLM 生成一段话摘要 + "为什么跟你相关"。
Tier 2
上下文感知
云端 LLM 结合用户画像生成个性化摘要 + 跨语言翻译。
输出结构:title / summary / relevance_note / source_url / score — 每条 item 统一格式,供下游 formatter 消费。
Step 5
格式化输出 — 渲染为最终输出
蒸馏后的内容经 formatter 渲染为用户选择的最终输出。
Primary
Obsidian
Markdown + frontmatter + [[wikilinks]] + tags。直接写入 vault 目录。
Messaging
Email / TG / Slack
HTML 邮件模板 · Telegram Bot API · Slack webhook。
API
RSS / JSON
生成私有 Atom feed 或本地 RESTful 端点,供其他工具订阅。
Tier 0
规则引擎
零依赖 · $0
Tier 1
本地大模型
Ollama · $0
Tier 2
云端 API
BYOK · ~$0.05/天
能力Tier 0Tier 1Tier 2
打分方式TF-IDF + 关键词权重语义 embedding 相似度LLM 深度推理
摘要方式提取前 N 句LLM 生成式摘要画像感知个性化摘要
语义理解
跨语言翻译✓ 基础✓ 高质量
完全离线
硬件需求Python 3.10+ · 50MB RAM8GB VRAM 或 16GB RAMAPI Key
延迟/条< 10ms1–5s2–8s
适合场景离线 · 低资源 · 简单兴趣隐私优先 · 中等硬件追求最佳效果 · 复杂画像
01各层核心组件
可插拔的 Source Adapter 系统。每个适配器继承 BaseSource,实现 fetch() + parse()。放入 sources/ 目录自动发现。
01内置信源适配器
类别信源接入方式限速
学术arXivarXiv API无限制
Semantic ScholarREST API100 req/s
PubMedE-utilities3 req/s (无 key)
开放数据OpenAlexREST API100K/天
社区Hacker NewsAlgolia API无限制
RedditJSON (.json)60 req/min
LobstersRSS
V2EXAPI / RSS
新闻任意 RSS/Atomfeedparser
自定义 URLPlaywright 抓取自定义
02自定义适配器接口
sources/my_custom_source.py
from hermes.sources import BaseSource, Item

class MySource(BaseSource):
    name = "my_custom_source"

    async def fetch(self) -> list[dict]:
        resp = await self.http.get("https://...")
        return resp.json()["items"]

    def parse(self, raw: dict) -> Item:
        return Item(
            title=raw["title"],
            body=raw["content"],
            url=raw["link"],
            date=raw["published"],
        )
适配器放入 sources/ 目录后自动注册。无需修改核心代码。Hermes 启动时通过模块扫描发现所有 BaseSource 子类。
01输出格式
primary
Obsidian
Markdown + frontmatter (date, tags) + [[wikilinks]] 自动生成。直接写入 vault 目录。
Messaging
Email
HTML + 纯文本双格式。Jinja2 模板可自定义。SMTP 直发或 SendGrid。
Messaging
Telegram / Slack
Bot API 或 Incoming Webhook。支持 inline 反馈按钮。
Feed
私有 RSS/Atom
生成标准 Atom feed。可被 Reeder、Feedly 等任何阅读器订阅。
API
JSON RESTful
本地 HTTP 端点。GET /api/today 返回当日简报。供任何自定义集成消费。
02Obsidian 集成细节
Write
写入逻辑
每日生成 YYYY-MM-DD.md
Frontmatter: date, tags, sources
按兴趣领域分 H2 段落
每条附 relevance score + 原文链接
Link
智能 Wikilinks
扫描 vault 已有笔记标题
自动生成 [[wikilinks]] 到相关笔记
新概念自动创建 stub 笔记
03反馈闭环
1
用户在笔记中
标记 👍/👎
2
下次 run 时
读取反馈
3
调整关键词权重
+ 信源优先级
4
后续推送
更精准
反馈信号存入 SQLite。权重调整采用指数移动平均(EMA),避免单次反馈过度修正。用户也可在 config.yaml 中手动覆盖任何自动调整。
04输出示例
~/obsidian/hermes/2026-04-13.md
---
date: 2026-04-13
tags: [hermes/daily, cathode, AI-tooling]
---

## Cathode Research

### Sulfide electrolyte hits 4.2 mS/cm
KAIST 团队展示 Li₆PS₅Cl₀.₅Br₀.₅ ...
Relevance: directly relevant to [[Solid-State Thesis]]
Source: [arXiv 2604.08821](https://arxiv.org/abs/2604.08821)
👍 / 👎

## AI/ML Tooling

### 开源领域微调工具包
MIT 协议的 RLHF 工具包 ...
Relevance: connects to [[LLM Research Notes]]
Source: [HN](https://news.ycombinator.com/item?id=40123456)
👍 / 👎
产品远景 · Feature 分类 · 增长阶段 · Obsidian 团队模式研究 · 运营哲学
01产品演进路线
v0
CLI 工具
一个 Python 脚本。config.yaml + cron + markdown 输出。开发者的信息管道。
v1
开源产品
Obsidian 插件 + Docker 镜像 + Web UI 配置面板。Hacker News 冷启动。
v2
待定
取决于 v1 的社区反馈和增长数据。可能方向:托管服务 / 垂直深耕 / 其他。
v3
待定
取决于 v2 的商业验证。先把 v0→v1 做扎实再规划。
02商业分层
Layer 1
开源引擎
核心管线永远开源。信源采集 + 打分 + 蒸馏 + 输出。社区贡献 adapter、scorer、formatter。MIT 协议。
Layer 2
待定
可能方向:托管服务 · 免去自部署 · 统一 LLM 调用。取决于 v1 社区反馈。
Layer 3
待定
可能方向:团队版 · API 平台 · B2B。取决于商业模式验证。
03产品哲学
时间效率 > 信息量
10 条精准推送 > 100 条噪音。Hermes 的目标是节省用户时间,不是增加阅读量。少即是多。
用户意志声明
用户显式声明自己是谁、关心什么。算法在此基础上优化,而非从零猜测用户偏好。YAML 是用户意志的声明。
File over App
输出是 Markdown 文件,不是被锁在某个 App 里的数据。Hermes 消失了,你的信息还在。继承 Obsidian 的 File over App 哲学。
渐进复杂度
新用户 5 分钟上手(默认配置 + 几个关键词)。Power user 可以写自定义 scorer、调权重、接私有信源。深度无上限。
01六个月路线图
Week 1–2
v0
核心管线 MVP
5 个信源 + TF-IDF 打分 + Markdown 输出。config.yaml → 跑一次 → 输出 markdown 文件。README + GIF demo。目标:让人 clone 下来 5 分钟能跑。
PythonRSSTF-IDFMarkdown
Week 3–4
Launch
Show HN + r/selfhosted + V2EX
目标:首周 500 star。关键是 README 的质量和 demo GIF 的效果。同步发 r/LocalLLaMA(Ollama 集成角度)。
核心里程碑
Month 2
v0.5
Obsidian 插件 + 反馈闭环
Obsidian 社区插件市场上架。wikilinks 自动生成。👍/👎 反馈 → 权重调整。Docker Compose 一键部署。
Month 3–4
v1.0
社区适配器生态 + 画像模板
开放 adapter 贡献流程。发布 5+ 画像模板(PhD、VC、PM、crypto trader、独立开发者)。Product Hunt 发布。
Month 5–6
v1.x
待定 — 取决于 v1 数据
可能方向:托管版 beta · 垂直深耕某个用户群 · API 化 · 或继续打磨开源产品。根据前 4 个月的社区反馈和增长数据决定。
02Star 增长目标
Week 1
500
HN + Reddit 冷启动
Month 1
2K
中文社区 + Obsidian 论坛
Month 3
5K
插件生态 + Product Hunt
Month 6
10K
持续口碑 + 集成生态
Obsidian 是 Hermes 最值得研究的运营范本:7 人团队、零 VC、$25M ARR、150 万 MAU。以下是完整拆解。
01关键数据
Team
7
全职成员
上限 10–12 人
ARR
~$25M
第三方估算
利润率极高
MAU
5–10M
不精确追踪
无用户分析
Funding
$0
零 VC
完全自举
02团队组成
成员角色背景
Steph Ango (kepano)CEO前 Lumi 创始人 · 设计师 · 以 superfan 身份加入 · 2023 年成为 CEO
Shida Li (Licat)Co-founder / Lead Dev核心架构师 · Electron + 本地优先架构
Erica Xu (Silver)Co-founder / Product产品方向 · 社区运营
LiamDevCalendar 插件作者 → 全职加入
JoetheiDev / Plugin Ecosystem插件审核 + 开发者生态
+2–3Engineering2026 年从 3 扩招到 4 名工程师
03运营三原则
公司 ≤ 10 人
Steph: "保持小团队是刻意选择。"公司不会超过 10–12 人。小团队 = 快速决策 + 低沟通成本。kepano 在大团队后发现"不好玩"。
永不接受 VC
VC 带来增长压力 → 与 longevity/privacy 冲突。"拒绝上百万美元需要极大毅力。"Obsidian 选择 hard mode。
永不收集用户数据
不做用户分析。"没人知道 Obsidian 有多少用户,包括我们自己。"Local-first = 零基础设施成本增长。
04为什么能 work
Architecture
Local-first = 零边际成本
核心功能跑在用户设备上。用户增长不增加服务器成本。唯一的云服务是可选的 Sync ($4–8/mo) 和 Publish ($8–16/mo)。
Ecosystem
社区插件 = 免费研发力
2000+ 社区插件。等同于数百名免费开发者。Obsidian 只需维护 API 和审核流程。核心团队专注核心体验。
Revenue
可选付费 · 不强制
核心免费。Sync / Publish / 商业授权 ($50/人/年) 共计 ~$25M ARR。用户付费是因为信任,不是因为被迫。
Philosophy
File over App
数据是 .md 文件,不锁定。"软件是短暂的,文件比应用重要。"这个哲学建立了极深的用户信任。
05创始人洞察
先做用户,再做创始人
Steph Ango: "我先作为粉丝,然后才成为 CEO 的。"产品决策源于自身需求。
长期主义 > 快速增长
"我们想做一个能存在 100 年的工具。"不追求快速增长,追求持久价值。
01Hermes 应该从 Obsidian 学什么
直接可学
Local-first 架构
Hermes 的核心引擎跑在用户机器上 = 零基础设施成本。用户增长不增加运营负担。跟 Obsidian 一模一样。
直接可学
可选付费 · 卖便利性
核心免费。付费解锁便利性(不用自己搭)+ 算力(LLM 调用)。数据永远属于用户。
直接可学
插件生态驱动增长
Source adapter = Obsidian 的社区插件。社区贡献信源 → 覆盖面扩大 → 吸引更多用户 → 更多贡献者。飞轮效应。
直接可学
小团队 · 零会议
2–3 人核心团队。GitHub PR 驱动。Discord 社区运营。不需要产品经理、不需要项目经理。
02Hermes 跟 Obsidian 的关键差异
维度ObsidianHermes影响
边际成本接近零(本地 app)有成本(LLM 调用 + 信源抓取)托管版需要 per-user 成本管控
使用频率高频(每天长时间使用)低频(每天 2 分钟)留存靠 value density 而非使用时间
插件生态2000+ 社区插件Source adapter 为主生态规模可能更小但更专注
付费意愿笔记 = 高价值 → 付费意愿高信息流 = 需要证明价值要用 quality 建立付费心智
03团队运营模型
Phase 1 · 0–6 months
2 人核心
1 人写管线 + 后端
1 人做 README + 社区 + 托管版前端
兼职即可启动
Phase 2 · 6–12 months
3–4 人
+ 1 社区运营(兼 adapter 审核)
+ 1 LLM/NLP 优化
如果有收入支撑
Long term
≤ 8 人
学 Obsidian 的上限原则
每个人都是贡献者
不设管理层
04收入模型
确定
开源核心 — 永久免费
完整核心引擎 + 所有 adapter + 本地部署 + 社区生态。MIT 协议。这一层不会变。
待定
商业化路径
可能方向:托管版订阅 · 商业授权 · API 付费 · 团队版

参考 Obsidian 模式(Sync $4–8/mo · Publish $8–16/mo · 商业授权 $50/人/年)——卖便利性,不卖功能锁定。具体定价和路径等 v1 跑出数据后再定。
当前阶段唯一目标:把开源产品做到 GitHub 5K+ star。商业化是 v1 之后的事。过早规划收入模型反而会分散注意力。