本文基于实际搭建经验,记录如何从零开始构建一个AI驱动的自动化知识库系统。通过本文,你将学会:
一、为什么要用 OpenClaw 搭建知识库
传统知识库的问题
本文搭建的知识库特点
二、从零开始:初始化你的知识库
步骤1:创建基础文件夹结构
打开终端,执行以下命令创建知识库骨架:
预期输出:
步骤2:创建第一个示例文件
为了让系统能够检测到格式规范,先在每个文件夹创建一个示例文件:
具体的Prompt内容
步骤3:用 OpenClaw 验证环境
三、基础环境要求
1. 系统要求
2. 软件安装
OpenClaw:
3. 文件夹结构设计原则
为什么这样设计6个文件夹:
关键原则:
四、核心技能搭建(实战记录)
以下是本文实际搭建的4个核心技能,必须按顺序执行,因为后面的技能依赖前面的技能。
前置:创建工作空间
技能1:Context Runner(上下文感知执行器)
作用:执行命令前先扫描目标文件夹的现有格式,确保新增内容与已有格式一致。
创建步骤:
验证:
技能2:News Adder(新闻自动添加器)
作用:接收新闻内容,自动套用格式并保存到 01-新闻 文件夹。
创建步骤:
验证:
技能3:Smart Archiver(智能归档器)⭐
作用:自动分类 + 智能标签。根据内容特征选择最佳文件夹,提取关键词标签。
创建步骤:
分类算法核心逻辑:
标签库:
验证:
技能4:Knowledge Assistant(知识库助手)⭐
作用:语义搜索 + 问答系统 + 写作辅助。基于AI提取关键词进行搜索。
创建步骤:
核心工作流程:
验证:
搭建过程中的关键经验
经验1:先创建示例文件,再搭建技能
问题: 如果文件夹是空的,context-runner 无法检测格式规范。
解决: 先在每个文件夹手动创建1-2个示例文件,展示你想要的格式。
经验2:路径扩展要处理 ~ 符号
问题: Node.js 的 path 模块不会自动展开 ~ 为用户目录。
解决: 必须手动处理:
踩坑记录: 如果不处理,会出现 ENOENT 错误,找不到文件夹。
经验3:文件名序号处理
问题: 既有 001-3.3.md 又有 1-3.3.md 的混合命名。
解决: 统一使用3位数字前缀:
经验4:AI提取关键词的备用方案
问题: 命令行脚本调用AI服务可能会超时或失败。
解决: 必须有本地规则作为 fallback:
五、使用工作流
场景1:保存网页文章
你说:
系统自动执行:
场景2:添加新闻
你说:
系统自动执行:
- 格式化每条新闻(
**1.** **标题**:内容)
场景3:搜索知识库
你说:
返回:
场景4:写作辅助
你说:
返回:
六、进阶扩展
1. 添加 RSS 自动订阅
创建定时任务,自动抓取订阅源:
2. 添加阅读状态跟踪
保存时自动添加 _unread 标记:
3. 升级为向量搜索
使用 ChromaDB + Embedding 实现真正的语义搜索:
七、快速开始速查表
第1步:创建文件夹(5分钟)
第2步:创建示例文件(5分钟)
第3步:搭建4个技能(30分钟)
依次执行:
knowledge-assistant - 知识助手
第4步:开始使用
八、常见问题 FAQ
Q1:为什么技能创建后没有生效?
检查:
- SKILL.md 是否有正确的 frontmatter(name 和 description)
- 脚本是否有执行权限:
chmod +x script.js
Q2:保存的文件格式不对怎么办?
解决: 先在目标文件夹创建1个格式正确的示例文件,让 context-runner 能够检测到格式。
Q3:分类不准确怎么优化?
方法: 修改 smart-archiver/scripts/auto-archive.js 中的 FOLDER_RULES,增加更多关键词或调整权重。
Q4:如何备份知识库?
方案:
Q5:可以在多台设备同步吗?
方案: 使用 Obsidian Sync 或 iCloud/Dropbox 同步 ~/Documents/笔记 文件夹,技能配置需要手动复制到各设备的 ~/.openclaw/workspace/skills/。
九、总结
通过本文,你已经搭建了一个完整的 AI驱动个人知识库系统:
| |
|---|
| news-adder / smart-archiver |
| |
| |
| |
| |
核心优势: