Enterprise Knowledge Base Reader

企业知识库查询。用户提出任何业务问题、产品咨询、公司政策、员工手册、操作流程、规章制度、FAQ、项目信息等问题时,必须优先调用本知识库检索相关内容,再结合结果回答。

Audits

Pass

Install

openclaw skills install enterprise-kb-reader

知识库只读查询器 (KB Reader)

⚠️ 重要提示: 这是一个严格只读的查询系统,无法创建、上传、修改或删除任何数据。使用前必须确保已有管理员通过 kb-manager 初始化了系统环境。

专门用于查询和读取企业知识库内容的轻量级系统,不支持文档上传和管理功能。

使用方法

对话式查询

  • 直接提问进行智能问答
  • 支持语义搜索和关键词匹配
  • 自动从知识库中检索相关内容

命令行使用

# 进入对话模式
python main.py chat

# 直接查询
python main.py query <查询内容>

# 列出文档(只读)
python main.py list

# 显示统计(只读)
python main.py stats

示例

智能问答

用户: 公司的休假政策是什么?
助手: 根据知识库文档,休假政策包括:
- 年假:每年15天带薪年假
- 病假:每年10天带薪病假
- 远程办公:每周可远程2天

文档查看

用户: list documents
助手: 📚 知识库文档列表:
1. 公司政策.pdf (45 chunks)
2. 员工手册.docx (23 chunks)

🚀 快速开始

1. 安装依赖

cd skills/kb-reader
pip install -r requirements.txt

2. 配置API密钥

方式一:环境变量

# DashScope (阿里云千问) - 推荐
$env:DASHSCOPE_API_KEY='your-dashscope-key'

# 或者 OpenAI
$env:OPENAI_API_KEY='your-openai-key'

3. 确保知识库已初始化

⚠️ 重要: kb-reader 是只读系统,无法创建或初始化知识库。使用前必须确保 kb-manager 已经初始化了系统环境。

# 1. 检查系统目录是否存在
python main.py stats

# 2. 如果提示"系统数据目录不存在",说明需要先用 kb-manager 初始化
# kb-reader 无法自行创建系统环境,必须由管理员使用 kb-manager 完成初始化

如果系统未初始化,请联系管理员或在有 kb-manager 的环境中运行:

cd <kb-manager-directory>
python main.py setup

4. 测试查询

# 测试系统状态
python main.py stats

# 测试查询功能
python main.py query "测试查询"

📋 使用方法

智能查询

  • 直接提问,系统会自动搜索相关文档
  • 支持中文和英文查询
  • 示例:
    • 公司的休假政策是什么?
    • 如何申请病假?
    • 远程办公的规定是什么?

文档浏览

  • python main.py list - 查看所有文档
  • python main.py stats - 显示统计信息
  • python main.py search <query> - 详细搜索文档内容

⚙️ 配置选项

config.json 中设置:

{
  "embeddingProvider": "dashscope",
  "embeddingModel": "text-embedding-v3", 
  "embeddingBaseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
  "retrievalTopK": 5,
  "milvusUri": "系统自动配置",
  "collectionName": "enterprise_kb",
  "documentsDir": "系统自动配置"
}

📁 系统数据目录

kb-reader 自动访问系统级知识库目录:

Windows: C:/ProgramData/kb-data/ Linux/Mac: /usr/local/share/kb-data/~/.local/share/kb-data/

kb-data/
├── chroma_db/     # 向量数据库 (只读访问)
└── documents/     # 原始文档 (只读访问)

🔗 与kb-manager的关系

  • kb-manager: 负责创建和管理知识库,具有完整的读写权限

    • ✅ 创建系统目录 (python main.py setup)
    • ✅ 上传和管理文档
    • ✅ 删除和修改数据
    • ✅ 初始化数据库
  • kb-reader: 只能读取kb-manager创建的知识库,严格只读权限

    • ❌ 无法创建系统目录
    • ❌ 无法上传文档
    • ❌ 无法修改或删除数据
    • ❌ 无法初始化数据库
    • ✅ 仅能查询和浏览现有数据
  • 数据共享: 两个skills访问同一个系统目录,实现数据共享

  • 权限分离: kb-reader无法修改或删除数据,确保数据安全

  • 部署灵活: 可以部署在不同的agent上,实现分布式知识库访问

📋 使用前提

  1. 系统环境: 必须已经有管理员使用 kb-manager 初始化了系统环境
  2. 只读权限: kb-reader 无法创建、修改或删除知识库数据
  3. 数据存在: 知识库中必须已经有文档数据(由 kb-manager 上传)
  4. API配置: 需要配置相同的嵌入模型API密钥
  5. 依赖关系: kb-reader 完全依赖 kb-manager 创建的系统环境

🏗️ 技术特性

  • 严格只读: 代码层面限制,无任何写入或修改功能
  • 高效检索: 基于向量相似度和关键词匹配
  • 多种查询模式: 支持语义搜索、关键词搜索和混合搜索
  • 轻量级: 最小化依赖,专注查询功能
  • 兼容性: 可以读取kb-manager创建的知识库
  • 安全设计: 无权限创建、修改或删除任何数据

🔧 故障排除

知识库不存在

# 如果提示知识库不存在,kb-reader 无法自行解决此问题
# 必须联系管理员或在有 kb-manager 的环境中初始化

# 检查系统状态
python main.py stats

# 如果显示"系统数据目录不存在",需要管理员运行:
# cd <kb-manager-directory>
# python main.py setup

注意: kb-reader 作为只读系统,无权限创建系统目录或初始化数据库。

无查询结果

# 检查知识库是否有数据
python main.py stats

# 如果没有数据,需要管理员使用 kb-manager 上传文档
# kb-reader 无法上传文档,只能查询已存在的数据

注意: kb-reader 无法上传文档,如需添加文档请联系管理员。

API密钥问题

# 检查环境变量 (Windows)
echo $env:DASHSCOPE_API_KEY

# 检查环境变量 (Linux/Mac)
echo $DASHSCOPE_API_KEY

# 设置API密钥 (Windows)
$env:DASHSCOPE_API_KEY='your-api-key'

# 设置API密钥 (Linux/Mac)
export DASHSCOPE_API_KEY='your-api-key'

权限问题

# 如果遇到权限错误,检查系统目录权限
# Windows: C:/ProgramData/kb-data/
# Linux/Mac: /usr/local/share/kb-data/ 或 ~/.local/share/kb-data/

# 确保kb-manager有创建目录的权限
cd ../kb-manager
python main.py setup

🌐 部署场景

场景1: 单机多Agent

同一台机器上的多个Agent
├── Agent-Admin (kb-manager)
├── Agent-User1 (kb-reader)  
├── Agent-User2 (kb-reader)
└── 共享系统目录: C:/ProgramData/kb-data/

场景2: 分布式部署

多台机器,共享网络存储
├── 机器A: Agent-Admin (kb-manager) → 网络存储
├── 机器B: Agent-User1 (kb-reader) → 网络存储  
└── 机器C: Agent-User2 (kb-reader) → 网络存储

场景3: 容器化部署

Docker容器间数据共享
├── Container-Admin: kb-manager + 数据卷
├── Container-User1: kb-reader + 数据卷
└── Container-User2: kb-reader + 数据卷

🔒 安全特性

  • 严格只读权限: 代码层面强制只读,任何写入操作都会抛出异常
  • 无创建权限: 无法创建目录、数据库或集合
  • 本地访问: 仅访问本地知识库文件
  • API安全: 支持多种API提供商,密钥加密存储
  • 数据隔离: 与kb-manager共享数据但权限完全隔离
  • 故障安全: 如果系统环境不存在,会立即报错而不是尝试创建

📊 性能指标

  • 搜索延迟: <500ms (本地向量搜索)
  • 内存占用: 最小化内存使用
  • 并发支持: 支持多用户同时查询