建立可搜索的个人知识库,让OpenClaw帮你记住一切重要信息
适合人群:知识工作者、研究者、学生、任何需要整理大量信息的人难度:⭐⭐(需要理解向量搜索概念,但有现成模板)
为什么要部署这个系统
解决的核心点:
❌ 文档太多,找不到想要的信息,每次都要重新搜索 ❌ 记得讨论过某事,但忘了细节和出处,无法引用 ❌ 想系统性地整理知识,但手动整理太耗时,坚持不下去
最终效果:
你:我上周关于GEO优化的决策是什么?OpenClaw:根据知识库,你在2026-04-15决定: • 使用v3.3-A级质量标准 • 建立Git-Notes防失忆机制 • 执行时强制三脚本检查 来源:memory/2026-04-15.md你:查找所有关于"时效性"的内容OpenClaw:找到3条相关内容: 1. 4/16 修正文章年份错误... 2. 4/16 建立时效性检查机制... 3. 4/15 v3.3标准包含时效性检查使用场景:
项目资料管理:整理项目文档、会议记录、决策依据 学习资料整理:整理课程笔记、论文、研究资料 个人知识积累:整理读书笔记、行业资讯、经验总结 团队知识共享:建立团队共享知识库,避免知识孤岛
需要准备什么
前置条件:
OpenClaw已安装并正常运行 有Python环境(用于运行raglite) 有足够的磁盘空间存储向量数据
第一步:安装知识库技能
你:安装raglite和knowledge技能
OpenClaw会回答:
正在安装 raglite...✅ raglite 安装成功正在安装 knowledge...✅ knowledge 安装成功✅ 知识库技能安装完成原理:raglite提供向量搜索能力,knowledge提供知识库管理界面,两者结合实现智能知识检索。
第二步:初始化向量数据库
你:初始化向量数据库
OpenClaw会回答:
# 创建知识库目录mkdir -p ~/.openclaw/workspace/knowledge# 初始化raglite配置cat > ~/.openclaw/workspace/knowledge/config.yaml << 'EOF'vector_store: type: "chroma" # 使用Chroma向量数据库 persist_directory: "./chroma_db"embedding: model: "text-embedding-3-small" # OpenAI嵌入模型 api_key: "${OPENAI_API_KEY}"retriever: top_k: 5 # 每次检索返回5个最相关结果EOF# 创建初始知识库cat > ~/.openclaw/workspace/knowledge/README.md << 'EOF'# 个人知识库这是一个使用OpenClaw + raglite构建的个人知识库。## 使用方式1. 添加文档:将文档放入 knowledge/documents/ 目录2. 索引文档:运行索引脚本3. 搜索知识:通过OpenClaw搜索## 目录结构- documents/ - 原始文档- chroma_db/ - 向量数据库- config.yaml - 配置文件EOF✅ 向量数据库初始化完成原理:向量数据库将文本转换为数学向量,通过向量相似度实现语义搜索。
第三步:配置知识库索引
你:配置知识库自动索引
OpenClaw会回答:
# 创建知识库索引脚本cat > ~/.openclaw/workspace/knowledge/index.sh << 'EOF'#!/bin/bashcd ~/.openclaw/workspace/knowledge# 安装依赖pip install chromadb openai# 创建Python索引脚本cat > index_documents.py << 'PYEOF'import osimport chromadbfrom chromadb.utils import embedding_functions# 初始化Chroma客户端client = chromadb.PersistentClient(path="./chroma_db")# 创建或获取集合collection = client.get_or_create_collection( name="knowledge_base", embedding_function=embedding_functions.OpenAIEmbeddingFunction( api_key=os.environ.get("OPENAI_API_KEY"), model_name="text-embedding-3-small" ))# 索引文档documents_dir = "./documents"for filename in os.listdir(documents_dir): if filename.endswith(('.md', '.txt', '.pdf')): filepath = os.path.join(documents_dir, filename) with open(filepath, 'r', encoding='utf-8') as f: content = f.read() # 添加到向量数据库 collection.add( documents=[content], metadatas=[{"source": filename, "type": "document"}], ids=[filename] ) print(f"✅ 已索引: {filename}")print(f"🎉 知识库索引完成,共索引 {len(os.listdir(documents_dir))} 个文档")PYEOF# 执行索引python index_documents.pyecho "✅ 知识库索引配置完成"EOFchmod +x ~/.openclaw/workspace/knowledge/index.sh✅ 知识库自动索引已配置原理:索引脚本将文档内容转换为向量并存储到Chroma数据库中,支持快速语义搜索。
第四步:配置知识库搜索
你:配置知识库搜索功能
OpenClaw会回答:
# 创建知识库搜索脚本cat > ~/.openclaw/workspace/knowledge/search.sh << 'EOF'#!/bin/bashcd ~/.openclaw/workspace/knowledgequery="$1"cat > search_knowledge.py << 'PYEOF'import osimport sysimport chromadbfrom chromadb.utils import embedding_functions# 获取查询参数query = sys.argv[1] if len(sys.argv) > 1 else ""# 初始化Chroma客户端client = chromadb.PersistentClient(path="./chroma_db")collection = client.get_collection("knowledge_base")# 执行搜索results = collection.query( query_texts=[query], n_results=5)print(f"🔍 搜索: {query}")print("=" * 50)for i, (doc, meta) in enumerate(zip(results['documents'][0], results['metadatas'][0])): print(f"{i+1}. {meta['source']}") print(f" 相关度: {results['distances'][0][i]:.3f}") print(f" 内容: {doc[:200]}...") print()PYEOF# 执行搜索python search_knowledge.py "$query"EOFchmod +x ~/.openclaw/workspace/knowledge/search.sh# 创建OpenClaw搜索命令别名echo 'alias search-knowledge="~/.openclaw/workspace/knowledge/search.sh"' >> ~/.zshrc✅ 知识库搜索功能已配置现在你可以使用 "search-knowledge [关键词]" 搜索知识库原理:搜索脚本将查询转换为向量,在向量数据库中查找最相似的文档。
日常使用
场景1:添加新文档
你:"添加文档到知识库" OpenClaw会:指导你将文档放入knowledge/documents/目录并运行索引
场景2:搜索知识
你:"搜索知识库中的[关键词]" OpenClaw会:返回最相关的5个文档片段
场景3:批量索引
你:"更新知识库索引" OpenClaw会:重新索引所有文档,更新向量数据库
场景4:知识问答
你:"根据知识库回答[问题]" OpenClaw会:从知识库检索相关信息并生成回答
常见问题
Q1: OpenAI API Key错误
解决步骤:
你: 检查OpenAI API KeyOpenClaw会: echo $OPENAI_API_KEY(确认环境变量)
原因:需要有效的OpenAI API Key才能使用text-embedding-3-small模型(也可使用国内代理)
Q2: Chroma数据库连接失败
解决步骤:
你: 检查Chroma数据库OpenClaw会: ls -la ~/.openclaw/workspace/knowledge/chroma_db/
原因:数据库文件损坏或权限问题
Q3: 索引文档失败
解决步骤:
你: 检查文档格式OpenClaw会: file ~/.openclaw/workspace/knowledge/documents/*
原因:文档编码格式不支持或文件损坏
效果实现
✅ 向量知识库 - 使用Chroma向量数据库存储知识✅ 语义搜索 - 基于内容相似度而非关键词匹配✅ 自动索引 - 支持批量文档索引和更新✅ 自然语言查询 - 用自然语言搜索知识库✅ 本地存储 - 所有数据存储在本地,保护隐私
快速命令参考
添加[文档名]到知识库 | |
搜索知识库中的[关键词] | |
更新知识库索引 | |
查看知识库统计信息 |
教程版本: v1.0启明AI实验室
夜雨聆风