通过向量检索 + 文件系统文档管理,为 Agent 提供按需查阅内部知识的能力。
- 多格式支持:
.md.txt.json.pdf.docx - 向量检索:ChromaDB 本地持久化 + 自定义 Embedding API
- 智能分类:inbox 模式,自动分析内容并分类到对应目录
- 增量更新:新增/删除文档后一键重建索引
knowledge/
├── inbox/ ← 新文档入口(自动分类入库)
├── 公司制度/ ← 内部制度文档
├── 业务知识/ ← 业务流程文档
└── 技术文档/ ← 技术规格文档
核心模块:
├── SKILL.md ← Agent 调用接口
├── config.py ← 配置(Embedding API / 向量库)
├── store.py ← ChromaDB CRUD
├── indexer.py ← 索引管理(rebuild/add/remove)
├── search.py ← 检索 + 重排 + 格式化
├── extractor.py ← 文档内容提取(pdf/docx/md等)
└── process_inbox.py ← inbox 自动分类入库
将文档放入 knowledge/inbox/
说"有新知识入库"
→ 自动完成:读取→分类→移动→重建索引
通过 query_knowledge_base() 接口检索
返回 documents / summary / sources
python indexer.py rebuild # 重建全部索引
python indexer.py add <file> <category> # 添加单个文件
python indexer.py remove <file> <category> # 删除文件
python indexer.py list # 列出已索引文档{
"documents": [
{"content": "文档片段...", "category": "技术文档", "score": 0.46}
],
"summary": "拼接好的上下文摘要",
"sources": ["技术文档/大模型算法工程师.pdf"]
}conda activate openclaw
pip install chromadb requests pdfplumber python-docx在 Agent 系统提示词中定义触发规则:
当用户询问公司内部制度、业务流程、技术文档等需要精确信息时,调用
query_knowledge_base获取知识库内容。
决策:【需要知识库】
检索结果:{...}
最终回答:...
- Python 3.10+(推荐 conda 管理)
- 网络可访问 Embedding API
1. 克隆仓库
git clone https://github.com/AKA-liang/knowledge-base-rag.git
cd knowledge-base-rag2. 创建 Python 环境
conda create -n kb-rag python=3.10
conda activate kb-rag3. 安装依赖
pip install chromadb requests pdfplumber python-docx4. 配置 Embedding API
方式一:设置环境变量(推荐)
# Linux/Mac
export EMBEDDING_API_URL="你的API地址"
export EMBEDDING_API_KEY="你的API密钥"
export EMBEDDING_MODEL="你的模型名"
# Windows PowerShell
$env:EMBEDDING_API_URL="你的API地址"
$env:EMBEDDING_API_KEY="你的API密钥"
$env:EMBEDDING_MODEL="你的模型名"方式二:创建 .env 文件
# 复制示例文件
copy .env.example .env
# 编辑 .env,填入你的实际值5. 初始化索引
cd knowledge-base-rag
python -c "from store import get_embedding_client; from indexer import index_directory; index_directory(get_embedding_client(), verbose=True)"6. 添加知识(可选)
将文档放入 knowledge/inbox/,然后:
python process_inbox.py7. 测试检索
python search.py 你的测试问题knowledge-base-rag/
├── knowledge/
│ ├── inbox/ ← 新文档放这里(自动分类)
│ ├── 公司制度/ ← 内部制度文档(可自行添加)
│ ├── 业务知识/ ← 业务流程文档(可自行添加)
│ └── 技术文档/ ← 技术规格文档(可自行添加)
└── chroma/ ← 向量数据库(自动生成,不要提交到Git)
在 OpenClaw(或支持 Function Calling 的 Agent)中注册:
# 注册 query_knowledge_base 函数
# description: 当用户询问公司内部制度、业务流程、技术文档等需要精确信息时调用| 问题 | 解决方案 |
|---|---|
| 检索结果为空 | 运行 python indexer.py rebuild 重建索引 |
| API 连接失败 | 检查 config.py 中的 API URL 和 Key 是否正确 |
| ChromaDB 报错 | 删除 chroma/ 目录后重新 rebuild |
Made with ❤️ by 毛线(OpenClaw AI Assistant)