Meta Knowledge Base

自动捕获、组织与检索信息,支持语义搜索与智能问答。

已扫描
适合谁
需要系统化管理知识的个人用户、团队知识共享与协作成员
不适合谁
无需知识管理的普通用户、不接受外部数据集成的封闭环境使用者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @jason-aka-chen/meta-knowledge-base

Skill 说明

命令、参数、文件名以原文为准

元知识库(Meta Knowledge Base)

一个能够自动学习与持续成长的自构建知识管理系统。

功能特性

1. 自动捕获

  • 对话学习:从聊天记录中提取关键信息
  • 文档解析:从 PDF、Word 文档、电子邮件中提取内容
  • 网页抓取:从访问过的网页中学习知识
  • 文件监听:监控文件夹以发现新内容

2. 知识组织

  • 自动打标:自动进行主题分类
  • 实体提取:识别人物、公司、概念等实体
  • 关系映射:建立相关概念之间的关联
  • 版本历史:追踪知识的演化过程

3. 语义搜索

  • 向量嵌入:基于语义相似性进行搜索
  • 混合搜索:结合关键词与语义匹配
  • 过滤功能:按时间、标签、来源等条件筛选
  • 结果排序:根据相关性对结果排序

4. 智能问答

  • RAG 流水线:检索 + 生成答案
  • 上下文感知:理解对话上下文
  • 引用来源:标注原始知识出处
  • 置信度评分:显示回答的可信程度

5. 持续学习

  • 用户反馈:通过纠正意见改进模型
  • 隐式学习:从交互行为中自动学习
  • 知识更新:保持信息时效性
  • 缺口识别:发现缺失的知识点

安装方法

pip install numpy faiss-cpu sentence-transformers

使用方式

初始化知识库

from meta_knowledge import KnowledgeBase

kb = KnowledgeBase(
    name="my_knowledge",
    embedding_model="paraphrase-multilingual-MiniLM-L12-v2"
)

添加知识

# 从文本添加
kb.add(
    content="Python 是一种高级编程语言...",
    tags=["programming", "python"],
    metadata={"source": "user", "date": "2026-03-22"}
)

# 从文件添加
kb.add_from_file("document.pdf", tags=["research"])

# 从网址添加
kb.add_from_url("https://example.com/article", tags=["news"])

搜索知识

# 语义搜索
results = kb.search(
    query="什么是机器学习?",
    top_k=5
)

for r in results:
    print(f"{r.score:.2f} | {r.content[:100]}...")

提问与回答

# 提出问题
answer = kb.ask(
    question="关于 AI 我知道些什么?",
    include_sources=True
)

print(answer['answer'])
print("来源:", answer['sources'])

获取知识图谱

# 获取实体关系图
graph = kb.get_knowledge_graph()

# 查找相关概念
related = kb.find_related("Python", depth=2)

API 参考

添加知识

方法说明
add(content, ...)添加单条知识
add_batch(contents)批量添加多个条目
add_from_file(path)解析并添加文件内容
add_from_url(url)获取并添加网页内容
add_from_email(email)解析邮件内容

搜索功能

方法说明
search(query, top_k)语义搜索
hybrid_search(query, ...)关键词 + 语义混合搜索
filter_search(query, filters)带过滤条件的搜索
find_similar(content)查找相似条目

问答功能

方法说明
ask(question, ...)使用 RAG 获取答案
get_context(question)获取相关上下文
generate_summary(topic)生成主题摘要

管理功能

方法说明
get_knowledge_graph()获取实体关系图
list_tags()列出所有标签
export(format)导出知识数据
import_(data)导入知识数据

系统架构

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   数据源    │────▶│  数据摄入   │────▶│   存储系统    │
│ - 聊天      │     │ - 解析器    │     │ - 向量数据库  │
│ - 文档      │     │ - 嵌入模型  │     │ - 图数据库    │
│ - 网页      │     │ - 索引器    │     │ - 文档存储    │
└─────────────┘     └─────────────┘     └─────────────┘
                                           │
                    ┌──────────────────────┘
                    ▼
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   查询处理  │────▶│   检索模块   │────▶│   生成模块   │
│ - 搜索      │     │ - 向量检索  │     │ - 大语言模型 │
│ - 提问      │     │ - 图谱检索  │     │ - 引用生成   │
└─────────────┘     └─────────────┘     └─────────────┘

嵌入模型

模型维度语言支持适用场景
paraphrase-multilingual-MiniLM-L12-v238450+种通用场景
bge-small-zh-v1.5512中文中文专用
text-embedding-ada-0021536英文生产环境

应用场景

  • 个人助理:记住所有信息
  • 团队维基:共享知识库
  • 客户服务:自动化问答
  • 科研工作:论文检索与摘要
  • 代码库管理:文档搜索与理解

最佳实践

  1. 定期更新:保持知识库内容新鲜
  2. 质量优先于数量:干净的数据更重要
  3. 合理使用标签:便于高效检索
  4. 利用用户反馈:通过纠正提升准确性
  5. 定期备份:防止数据丢失

集成方案

与 OpenClaw 集成

# 自动从对话中捕获信息
@hookimpl
def after_message(message, response):
    kb.add(
        content=f"用户询问了:{extract_topics(message)}",
        tags=["conversation", extract_topics(message)]
    )

与其他技能集成

# 在技能中使用知识库
def my_skill(query):
    context = kb.search(query, top_k=3)
    return generate_response(query, context)

未来功能规划

  • 支持多模态知识(图像、音频)
  • 跨设备实时同步
  • 协作式知识库
  • 自动知识校验机制
JA
@jason-aka-chen

已收录 1 个 Skill

相关推荐