[Share Experiences] Deepin 25 利用 Hermes 构建本地私人知识库
Tofloor
poster avatar
kookboy
deepin
5 hours ago
Author

这段时间一直在折腾各种AI Agent开源应用,所以来社区和发帖的时间少了。最近两天折腾Hermes,然后尝试用它构建了一个本地私人知识库,它的方便之处在于---自动化处理。你现有的资料可以让Hermes批量给你导入库内,如果阅读网站文章或公众号文章,有用的信息和资料你可以随手粘贴给它,或者发送给它,也可以放入规定的文件夹内,它自动帮你归档入库和提炼。用下来感觉效果还不错,所以今天分享给大家,嗯,有条件的话大家可以试试~当然,你有更好的方案也可以分享、分享。applaud

好现在进入正题---

从 0 到 1,打造你的第二大脑

前言

知识焦虑大概是每个搞机党都逃不过的坎——收藏夹堆满文章、笔记软件塞满碎片、某天想找某个知识点时翻遍全网也找不到本地那份。

今天分享一个我在 Deepin 25 上折腾出来的方案:基于 Hermes Agent + docsify 构建本地私人知识库。成本几乎为零,效果超出预期。【最终想要什么风格效果你可以让hermes或用AI CLI助手帮你修改】


效果先看

我的知识库长这样:

index.png

002.png

点击即可跳转、搜索、暗黑模式适配、右侧悬浮目录导航。核心文件 MD 格式,改动即更新。


核心技术栈

组件 作用 为什么选它
Hermes Agent AI 助手,控制整个构建流程 帮我规划结构、自动生成内容
docsify 静态文档网站引擎 零配置、MD 原生渲染、搜索内置
Python 脚本 frontmatter 自动化处理 MD 源文件保留元数据,渲染时自动剥离

构建步骤

第一步:初始化目录结构

~/wiki/
├── concepts/        # 概念页:什么是 XX
├── entities/        # 实体页:XX 工具的用法
├── comparisons/     # 对比页:XX vs XX
├── queries/         # 查询页:FAQ、常见问题
├── raw/             # 原始文章来源
├── _render/         # 渲染输出(自动生成)
├── index.md         # 知识库首页
├── _sidebar.md      # 侧边栏导航
├── SCHEMA.md        # 内容规范(自己定的规则)
└── proxy.py         # 静态文件服务

让 Hermes 帮你规划,直接说「帮我规划一个 AI 知识库的结构」即可。

第二步:安装 docsify 并初始化

# 创建项目目录
mkdir -p ~/wiki && cd ~/wiki

# docsify 只需要一个 HTML 入口文件,无需 Node 环境
# 手动创建一个 index.html 即可

或者用这套简单现成的 index.html




  孤风知识库
  *
    window.$docsify = {
      name: '知识库名称',
      repo: '',
      loadSidebar: true,
      subMaxLevel: 3,
      auto2top: true,
      search: { depth: 3, placeholder: '搜索...' }
    };
  
  *src="//cdn.jsdelivr.net/npm/docsify@4">

加载中...

第三步:解决 MD 文件的 frontmatter 问题

docsify 原生不支持 Jekyll/YAML frontmatter(--- 包裹的元数据),但我们希望源文件保留 frontmatter 方便管理。

写一个 Python 脚本自动剥离:

# _strip_frontmatter.py
import os
from pathlib import Path

WIKI_DIR = Path(__file__).parent
OUTPUT_DIR = WIKI_DIR / "_render"
SKIP_DIRS = {'node_modules', '_render', '__pycache__'}

def strip_frontmatter(content: str) -> str:
    lines = content.split('\n')
    if not lines or lines[0].strip() != '---':
        return content
    result = []
    in_fm = True
    for line in lines[1:]:
        if in_fm:
            if line.strip() == '---':
                in_fm = False
        else:
            result.append(line)
    return '\n'.join(result)

def main():
    for root, dirs, files in os.walk(WIKI_DIR):
        dirs[:] = [d for d in dirs if d not in SKIP_DIRS]
        for fname in files:
            if fname.endswith('.md'):
                src = Path(root) / fname
                rel = src.relative_to(WIKI_DIR)
                out = OUTPUT_DIR / rel
                out.parent.mkdir(parents=True, exist_ok=True)
                out.write_text(strip_frontmatter(src.read_text()), encoding='utf-8')

if __name__ == '__main__':
    main()

运行一次即可:

python3 _strip_frontmatter.py

第四步:配置本地静态服务

docsify 需要通过 HTTP 访问才能正常工作(不能直接 file:// 打开)。写一个简单的 Python 服务器:

# proxy.py
#!/usr/bin/env python3
import http.server, socketserver, os, urllib.parse

PORT = 3001
RENDER = os.path.abspath('_render')

class Handler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        path = urllib.parse.unquote(self.path.split('#')[0])
        if path == '/': path = '/index.html'
        file_path = os.path.join(RENDER, path.lstrip('/'))
        if os.path.exists(file_path) and not os.path.isdir(file_path):
            self.send_response(200)
            self.send_header('Content-Type', 'text/html; charset=utf-8')
            self.end_headers()
            with open(file_path, 'rb') as f:
                self.wfile.write(f.read())
        else:
            self.send_error(404)

os.chdir(RENDER)
socketserver.TCPServer.allow_reuse_address = True
with socketserver.TCPServer(('', PORT), Handler) as httpd:
    httpd.serve_forever()

启动:

python3 proxy.py 3001

访问 http://localhost:3001/ 即可。

第五步:用 AI 批量填充内容

这是最有意思的部分。

传统方案是你自己写每篇内容。有了 Hermes Agent,你可以:

  1. 丢原始文章进去raw/articles/ 目录放入 markdown 或 docx 文件
  2. 让 AI 分析并创建 wiki 页面:说「帮我把这些文章整理成知识库,提取核心概念和实体」
  3. AI 自动生成 frontmatter、跨链接、摘要描述

示例 prompt:

帮我把 raw/articles/ 目录下的文章整理成知识库:
1. 分析每篇文章的核心主题
2. 创建相应的 concepts/entities 页面
3. 用 frontmatter 规范元数据
4. 更新 index.md 和 _sidebar.md 导航

内容规范(SCHEMA)

为了防止知识库变成垃圾场,给自己定几条规则:

## Frontmatter 必须字段
---
title: 页面标题
created: YYYY-MM-DD
updated: YYYY-MM-DD
type: entity | concept | comparison | query
tags: [from taxonomy below]
confidence: high | medium | low
---

## 页面类型定义
- **entity**: 工具/项目/产品——用法、特性、相关链接
- **concept**: 概念/主题——定义、现状、开放问题
- **comparison**: 对比分析——多维度表格 + 结论
- **query**: FAQ——常见问题 + 答案


进阶玩法

1. 多设备同步

~/wiki 目录放到 NAS 或内网服务器上,手机/平板也能访问。

2. 自动更新 CI

配合 GitHub Actions,push 原始 MD 文件后自动触发渲染 + 部署。

3. AI 自动摘要

写一个脚本,定期让 AI 阅读新的 RSS 源/文章,自动生成 entities/concepts 页面。


总结

这套方案的核心优势:

优势 说明
零成本 全部开源工具,无订阅费
MD 原生 源文件直接可用,迁移无压力
AI 驱动 Hermes Agent 可以帮你批量生成和维护
秒级响应 本地服务,访问速度飞快
可定制 docsify 主题、插件、样式全部可控

相关资源

Reply Favorite View the author
All Replies
说书人
deepin
3 hours ago
#1

like 很好的教程

Reply View the author