⚙️ 实例:Gbrain+Trilium 人机双消 AI 知识库
这不是调研报告——这是对你当前 AI 知识库实例的架构记录与运行实录。
一、你的架构(2026-05 现状)
组件拓扑
┌─ 📖 Trilium (trilium.atibm.com) ─────────────────────┐
│ 1133 篇笔记 │ ce5 富文本 │ 目录树 → AI编程手册 → AI知识库 │
│ 标签 + Relation Map → AI 能读懂笔记间关联 │
└──────────────────────────────────────────────────────┘
│ MCP 协议
▼
┌─ 🧠 gbrain ──────────────────────────────────────────┐
│ 686 页已同步 │ 实体(人/公司/项目)+ 关系三元组 │
│ 自动从对话中抽取:谁、在哪、做了什么 │
│ 存储:PostgreSQL(不是 Markdown 文件) │
└──────────────────────────────────────────────────────┘
│ API / 注入
▼
┌─ 🤖 Hermes Agent ───────────────────────────────────┐
│ 通过 Telegram 与你交互 │ 支持 Group + Topic 多会话 │
│ 记忆:Memory(持久事实)+ Session(对话历史) │
│ 技能:可复用工作流(Skills) │
└──────────────────────────────────────────────────────┘
│ 1133 篇笔记 │ ce5 富文本 │ 目录树 → AI编程手册 → AI知识库 │
│ 标签 + Relation Map → AI 能读懂笔记间关联 │
└──────────────────────────────────────────────────────┘
│ MCP 协议
▼
┌─ 🧠 gbrain ──────────────────────────────────────────┐
│ 686 页已同步 │ 实体(人/公司/项目)+ 关系三元组 │
│ 自动从对话中抽取:谁、在哪、做了什么 │
│ 存储:PostgreSQL(不是 Markdown 文件) │
└──────────────────────────────────────────────────────┘
│ API / 注入
▼
┌─ 🤖 Hermes Agent ───────────────────────────────────┐
│ 通过 Telegram 与你交互 │ 支持 Group + Topic 多会话 │
│ 记忆:Memory(持久事实)+ Session(对话历史) │
│ 技能:可复用工作流(Skills) │
└──────────────────────────────────────────────────────┘
数据流
| 方向 | 流转 | 协议 |
|---|---|---|
| 你 → Trilium | 你在 ce5 界面写/改笔记,带 #标签 和 Relation Map | HTTP (Trilium UI) |
| Hermes → Trilium | 通过 MCP 工具读取笔记内容、创建/更新笔记 | MCP / REST |
| Hermes → gbrain | 对话中自动抽取实体存入 gbrain;查询时注入相关实体到 prompt | API |
| Hermes → 你 | 问答结果 / 笔记推送 / 定时报告(通过 Telegram) | Telegram Bot |
二、操作实录
以下是你实际用过的工作流,来自本笔记目录下的真实操作:
📝 流程 1:你提问 → AI 从笔记找答案
① 你在 Telegram 发问(涉及项目/GitHub 星/配置)
② Hermes 搜索 Trilium(MCP) + 查询 gbrain(实体注入)
③ 从已有笔记中检索相关信息 → 综合回答
④ 效果:不用重复解释你已经记录过的内容
② Hermes 搜索 Trilium(MCP) + 查询 gbrain(实体注入)
③ 从已有笔记中检索相关信息 → 综合回答
④ 效果:不用重复解释你已经记录过的内容
📝 流程 2:你要求记笔记 → AI 写入 Trilium
① 你发:
② Hermes 解析指令 → 读取目标笔记当前内容
③ 格式化 HTML(ce5 富文本,含卡片/渐变标题/表格)
④ 写入 Trilium(create_note / update_note via MCP)
⑤ 返回结果给你确认
⑥ gbrain 同步:新笔记中的实体(项目名 + GitHub 链接 + 星级)可被后续查询
"#trilium操作 我要更新 AI 应用探索笔记,内容:..."② Hermes 解析指令 → 读取目标笔记当前内容
③ 格式化 HTML(ce5 富文本,含卡片/渐变标题/表格)
④ 写入 Trilium(create_note / update_note via MCP)
⑤ 返回结果给你确认
⑥ gbrain 同步:新笔记中的实体(项目名 + GitHub 链接 + 星级)可被后续查询
📝 流程 3:边聊边建知识库
① 你讨论一个问题(如:AI 知识库方案选型)
② 对话中出现有价值信息 → 你要求记下来
③ Hermes 创建笔记 + 自动维护关联(同目录、带标题、ce5 格式)
④ 同一话题的多次讨论 → 逐渐形成系列笔记
⑤ 效果:知识库随对话自然生长,不额外增加录入负担
② 对话中出现有价值信息 → 你要求记下来
③ Hermes 创建笔记 + 自动维护关联(同目录、带标题、ce5 格式)
④ 同一话题的多次讨论 → 逐渐形成系列笔记
⑤ 效果:知识库随对话自然生长,不额外增加录入负担
三、人机双消费的 5 个矛盾 & 你的解法
这是你实例的核心价值——不靠理论,靠工程落地。
| 矛盾 | 你的解法 | 具体实现 |
|---|---|---|
| 🧩 结构化 vs 自然 AI 要标签,人类要自由 |
内容自由写 + 标签手动贴 | 笔记正文用自然语言 + ce5 排版;Hermes 通过 #标签 和 Relation Map 做精准过滤 |
| 🏗️ 扁平索引 vs 层次目录 AI 要扁平的,人类要目录树 |
Trilium 目录给人类看 标签索引给 AI 用 |
AI 检索时跳过目录层次,直接通过标签 + 语义匹配找到笔记;人类通过在 Trilium 树中浏览 |
| 🎨 纯文本 vs 视觉排版 AI 要干净内容,人类要好看 |
MCP 读取时剥离样式 | Hermes 通过 Trilium MCP API 读笔记时取纯文本内容 + metadata;人类在 ce5 界面看完整排版 |
| 🔗 显式链接 vs 隐形关联 AI 要明确关系,人类要自然 |
你自然写引用 + gbrain 自动建模 | 你写笔记时自然提及("参考 X 笔记");gbrain 自动抽取这些引用中的实体关系建立图谱 |
| 🔬 精确原子 vs 上下文聚集 AI 要细粒度,人类要连贯阅读 |
原子笔记 + Relation Map 聚合 | 每篇笔记聚焦一个主题(原子化);人类通过 Trilium 的链接关系阅读系列笔记(连续性) |
四、当前瓶颈 & 优化方向
| 🔴 瓶颈 | 现象 | 🎯 改进方向 |
|---|---|---|
| 无语义检索 | Hermes 读 Trilium 靠标签 + 关键词搜索(MCP search_notes),无法做"语义相似"查询 | 接入本地 Embedding(BGE-M3 / mxbai)为 Trilium 笔记建向量索引 |
| gbrain 范围有限 | gbrain 只覆盖运行态实体(人/公司/项目),笔记内知识不在 gbrain 范围内 | 用 LightRAG 为笔记建轻量图谱索引,作为 gbrain 的补充 |
| Relation Map 手动维护成本高 | Trilium 的 Relation Map 需要手动建立链接,笔记多了难以保持完整 | 探索自动关系抽取:Hermes 在写入笔记时自动补关联链接 |
| MCP 工具覆盖有限 | 当前 Trilium MCP 支持读/写/搜索,但缺少批量操作和高级过滤 | 评估 MCP 版本更新或自建扩展工具 |
五、实例快照(本目录下的笔记)
| 笔记 | 定位 | 最后更新 |
|---|---|---|
| 📊 方案报告 | 场景问题→技术路线→具体方案→部署接入,全景图 | 2026-05-09 |
| ⭐ 核心框架·C篇 | 一页式参考卡片,覆盖全部核心框架和选型决策 | 2026-05-09 |
| ⚙️ 当前笔记 | 实例架构记录 + 操作实录 + 瓶颈清单(你在这里) | 2026-05-09 |
| 🧩 应用探索笔记 | AI 量化/金融项目清单(TradingAgents ~ OpenBB) | 2026-05-09 |
更新说明:本文从调研对比报告重写为实例记录。内容聚焦你的 Trilium + gbrain + Hermes 实际架构、操作流程、矛盾解法和瓶颈,去掉了方案对标/范式对比等通用调研内容。
维护建议:架构有变更(如新增组件/发现新瓶颈/改进了某个解法),直接更新本文——它是你知识库的"运行日志"。