Rag Kb

Communauté Productivité

Local-first agent memory and knowledge base: hybrid dense and BM25 retrieval, document and webpage ingestion and optional RAG answers via local Ollama.

Installation

Les étapes d'installation sont dans la documentation ci-dessous. Documentation

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. rag-kb — 本地 Agent 记忆与知识服务
  2. kb — 本地优先的 Agent 记忆与知识服务
  3. 核心特性
  4. 快速开始(Linux / Windows / macOS)
  5. 让 Agent 接入 kb(客户端无关)
  6. MCP 挂载
  7. REST 端点速查
  8. 配置项简表
  9. CLI 速查(无需启动服务)
  10. 目录结构
  11. 更多文档

rag-kb — 本地 Agent 记忆与知识服务

English | 中文

本地优先、完全离线可用的 Agent 记忆与知识服务——REST + MCP 双协议,混合检索(向量 + BM25 归一化加权融合),文档/网页入库与 RAG 问答;无 LLM 时存取与检索完整可用。

kb 是本地优先、完全免费的 Agent 记忆与知识服务(v2.2.0)。

开源协议:Apache-2.0(含专利授权,可商用)。

kb — 本地优先的 Agent 记忆与知识服务

Windows 单进程常驻(python -m kb serve),REST + MCP 双协议,向 Claude Code / Cursor / TraeWork / 自建 Agent 提供记忆写入、文档与网页入库、混合检索 (向量 + BM25 归一化加权融合)与 RAG 问答。

无 LLM 时存取与检索完整可用——记忆写入、文档入库、混合检索不依赖任何大模型; 配置本地 Ollama 或云端 API 后,/ask 问答能力自动启用。

核心特性

  • 单进程常驻:一个 python -m kb serve 同时提供 REST API 与 MCP 端点,无需额外组件
  • 混合检索:向量检索 + BM25 关键词检索,归一化加权融合排序(每路 min-max 归一化后按生效路数均权,N32/N33),中文分词友好
    • 嵌入模型:默认 BAAI/bge-small-zh-v1.5(轻量,约 92 MB / 512 维)——开箱成本低、CPU 上也快;需要更强语义理解可换 BAAI/bge-m3(约 2.2 GB / 1024 维),见「嵌入模型怎么选」
    • 可选精排:KB_RERANK_ENABLED=true 启用 bge-reranker-v2-m3 交叉重排(默认关)
    • 可选三路:KB_SPARSE_ENABLED=true 启用 BGE-M3 稀疏向量第三路(默认关,失败自动降级双路;需 bge-m3)
  • 记忆管理:写入 / 更新 / 删除 / 列表,支持 namespace、tags、type 过滤
  • 记忆全共享:所有记忆/知识与任何客户端、任务、AI 全共享——本地单用户定位,跨 agent、跨任务读到同一份用户记忆;client 仅用于审计归类与元数据;主键服务端生成
  • 全局 + 分项目记忆(v2.1):不传 project 写入全局库;传 project 写入独立子库 kb_data/projects/<project>/(物理隔离,删目录即删项目记忆);带项目检索 = 项目子库 + 全局库加权合并(KB_PROJECT_BOOST)
  • PyPI 安装与依赖瘦身(v2.1):pip install "kb-memory[ingest]",摄取/LLM 拆为可选 extras;Linux 可先装 CPU 版 torch,总下载量显著下降
  • Skill 自动安装与发现(v2.1):skill 内置 bootstrap.py,询问用户同意后才建独立环境安装;kb where 告诉你装在哪,kb autostart enable 开机自启
  • 空闲卸载(v2.1):KB_IDLE_UNLOAD_SECONDS 到期自动卸载嵌入模型并释放显存,后台占用趋零
  • 记忆语言与自定义规则(v2.1):KB_MEMORY_LANG=auto 跟随操作系统语言存储记忆;~/.kb/rules.md 自定义"什么时候该存记忆"
  • 存取审计:每次写/读/改/删/检索/问答记 JSON 到 logs/agent-audit/<客户端>__<项目>.log(按 client+project 分文件);用户可查:REST GET /api/v1/audit?client=<客户端>[&project=<项目>] 或 CLI kb audit --client <客户端>
  • 知识入库:本地文档(txt/md/pdf/docx 等)上传或路径导入,网页正文抓取入库
  • 目录监听:指定目录内新增/删除文件自动入库/清理(KB_WATCH_DIR)
  • CLI 工具:kb add/search/stats/ask/eval/forget/dedup——终端直接完成写入、检索、统计与 RAG 问答
  • 隐私护栏:敏感 namespace 强制本地回答不出网;/ask 智能路由(本地优先,难题可选云端)
  • 断网可用:模型与数据全部落本地,无网络时存取与检索功能完整

快速开始(Linux / Windows / macOS)

Linux(推荐,含 2 核 2G 小服务器):先装 CPU 版 torch,再装 kb。

pip install torch --index-url https://download.pytorch.org/whl/cpu   # CPU 轮子约 196 MB
pip install "kb-memory[ingest]"
python -m kb serve

不先装 CPU 版 torch 时,PyPI 默认会拉 CUDA 版本(torch + cudnn + nccl 等合计 2–3 GB), 这是 Linux 新用户最大的下载坑;只做记忆存取与检索不需要显卡。

2 核 2G 服务器建议配置(写入 .env 或环境变量):

KB_DEVICE=cpu
KB_LLM_MODE=off
KB_TORCH_THREADS=2          # 0=自动(按 cgroup/affinity 配额,最多 4)
KB_EMBED_BATCH_SIZE=16      # 默认 32;内存紧张降到 8–16
KB_IDLE_UNLOAD_SECONDS=300  # 空闲 5 分钟卸载嵌入模型

启动阶段不加载嵌入模型(百 MB 级);首次检索/写入才加载默认 bge-small(约 92 MB), 加载后常驻通常 < 1 GB,检索为毫秒级,2 核 2G 可运行。LLM 问答(/ask)在 2G 上 建议保持关闭或使用云端。

Windows / macOS:

pip install "kb-memory[ingest]"   # 核心 + 文档/网页摄取;[llm]=云端问答,[full]=全部
python -m kb serve

源码开发安装:

python -m venv venv
.\venv\Scripts\Activate.ps1          # Linux/macOS: source venv/bin/activate
pip install -r requirements.txt
pip install -e ".[full]"             # 开发/测试需要摄取、监听与 LLM 可选依赖
python -m kb serve

首次安装要下载什么、大概多久(先看一眼,避免以为卡死了):

  • Linux 先装 CPU 版 torch(约 196 MB)后,整条核心依赖约 0.5–0.7 GB; Windows / macOS 核心依赖约 400–600 MB(Windows CPU 版 torch 约 124 MB 为最大单体);
  • 可选 [ingest] 额外约几十 MB(PDF/DOCX/Office 解析、网页提取、目录监听);
  • 首次写入/检索时才加载并下载嵌入模型(懒加载,启动本身很轻),默认 bge-small-zh-v1.5 约 92 MB(若显式配了 KB_EMBED_MODEL=BAAI/bge-m3,则约 2.2 GB);
  • 国内网络可加 pip 镜像加速(实测阿里云可用、清华可能 403),但镜像同步新包有延迟 (实测阿里云对 kb-memory 返回过 404);建议同时挂官方源兜底: pip install "kb-memory[ingest]" -i https://mirrors.aliyun.com/pypi/simple/ --extra-index-url https://pypi.org/simple/ 若仍报 No matching distribution,改用官方源:pip install "kb-memory[ingest]" -i https://pypi.org/simple/
  • 模型下载走 HuggingFace 镜像:$env:HF_ENDPOINT='https://hf-mirror.com'(Windows)/ export HF_ENDPOINT=https://hf-mirror.com(Linux、macOS)。

重要:用源码 venv 安装时 kb 命令只装在虚拟环境内。每个新终端都要先激活虚拟环境 (Windows .\venv\Scripts\Activate.ps1,Linux/macOS source venv/bin/activate), 否则会提示 kb:未找到命令。改用 python -m kb <子命令> 可绕过激活。 不知道自己的 kb 装在哪里、怎么启动:kb where,或运行 skill 包里的 python bootstrap.py --status / --start-only。

启动后健康检查:

curl http://127.0.0.1:8000/api/v1/healthz

嵌入模型采用懒加载:启动后空闲时几乎不占内存,首次写入或检索才加载 BAAI/bge-small-zh-v1.5(约 92 MB,自动下载并缓存,之后断网可用); 未配置 LLM 时服务照常启动,/ask 返回 503 与配置指引。 /healthz 的 embedder 字段会显示 unloaded/loading/ok/error,模型加载失败时 写/查请求返回 503 EMBED_MODEL_UNAVAILABLE(含模型名与修复建议),不再裸 500。

CPU 即可运行,不占显卡:Windows / macOS 安装默认使用 CPU 版 torch; Linux 按上面的命令先装 CPU 轮子即可,无独立显卡的机器也能完整使用。 有显卡想加速(大库、批量入库)可另装 CUDA 版 torch 后显式 KB_DEVICE=cuda。

LLM 默认关闭(KB_LLM_MODE=off):服务启动不会探测/加载/调用任何大模型, 零显存、零成本、纯离线;记忆写入、文档入库、混合检索完整可用。 需要 RAG 问答(/ask)时再按下面方式配置本地或云端 LLM。

嵌入模型怎么选

默认用轻量模型,是为了让"先试试"的成本足够低;模型不强绑定,可随时按需切换:

模型体积维度加载后常驻内存适用
BAAI/bge-small-zh-v1.5(默认)约 92 MB512约 100 MB 量级日常偏好/决策/笔记类记忆;CPU 上也快
BAAI/bge-m3约 2.2 GB1024约 2 GB长文档、跨语言、语义更微妙的内容,需要更强语义召回

本项目在自带 50 题中文评测集上的实测(kb eval):轻量模型 Recall@1 0.760 / MRR 0.847 / 平均延迟 28.6 ms;bge-m3 为 0.740 / 0.841 / 105.6 ms。小样本下二者基本持平,轻量模型更快更省。 但 bge-m3 在长文档与跨语言场景预期更强,两个模型定位不同,按自己数据选。

换模型前必读:向量维度不同(512 vs 1024),ChromaDB 集合维度由首次写入的向量决定, 换了模型后旧数据无法直接检索。所以:

  • 新库(还没写过数据):直接设 KB_EMBED_MODEL=BAAI/bge-m3 即可;
  • 已有数据的库:kb 会自动沿用建库时使用的模型(记录在 kb_data/runtime.json), 不会因默认值变化而破坏你的数据,启动日志会记录实际沿用的模型; 若能识别的配置与库不一致(你显式改了 KB_EMBED_MODEL),还会给出 WARNING 说明如何迁移。 确要换模型,请先备份,再清空 kb_data/chroma 后重新入库。
配置 LLM(可选,/ask 问答需要)

KB_LLM_MODE 默认 off(不加载不调用);四个档位:

档位行为
off(默认)完全不加载/不调用 LLM;记忆存取与检索完整可用
local仅本地 Ollama(完全离线,隐私零出网)
auto本地优先,云端降级:本地 Ollama 可用走本地,无本地但有云端 Key 走云端
cloud全部走云端(本地仅做压缩与隐私隔离)

本地 LLM(Ollama):

# 1. 安装并启动 Ollama(Windows 从开始菜单/托盘启动,不要从 AI 沙箱终端拉起)
# 2. 拉取一个适合你电脑的模型(按显存/内存选择,如 qwen3:4b 约 3.2GB、
#    qwen3:1.7b 约 1.8GB;国内可用魔搭加速,拉完 ollama cp 改成短名)
ollama pull <你的模型名>
# 3. 在 .env 配置后重启服务:
#    KB_LLM_MODE=local            # 仅本地
#    KB_LLM_MODEL=<你的模型名>    # 以 `ollama list` 输出的名称为准
#    KB_OLLAMA_BASE_URL=http://localhost:11434

云端 LLM(任意 OpenAI 兼容服务商,不绑定 DeepSeek): DeepSeek / OpenAI / 通义千问 / 硅基流动 / Moonshot 等均可,通用三键:

# .env
KB_LLM_MODE=auto                 # 本地优先、云端降级;或 cloud 全云端
KB_LLM_API_KEY=sk-xxx            # 服务商 API Key
KB_LLM_BASE_URL=https://api.deepseek.com   # 换成你所用服务商的 OpenAI 兼容端点
KB_LLM_CLOUD_MODEL=deepseek-v4-flash       # 云端模型名

验证:GET /api/v1/healthz 的 llm 字段——local/cloud 表示 LLM 已就绪,disabled 表示未启用。

常见问题:嵌入模型下载失败
  • 中国大陆直连 huggingface.co 会超时。设置 HF 镜像后重启即可:

    export HF_ENDPOINT=https://hf-mirror.com   # 或写入 ~/.bashrc 永久生效
    python -m kb serve

    模型会自动从镜像下载并缓存到 ~/.cache/huggingface/hub/,之后断网也能离线加载。

  • 模型已在本机缓存,但无外网:kb 采用离线优先(先命中本地缓存,失败才联网), 只要缓存目录完整即可完全离线运行。
  • 报错里出现「torch 版本不满足 transformers 要求」:transformers 检测到 torch 过旧会 静默禁用 PyTorch 后端,底层只抛 NameError: name 'nn' is not defined。kb 在加载模型前 预检这条依赖链,并直接给出两个版本号——按提示升级 torch(pip install -U torch)即可。

让 Agent 接入 kb(客户端无关)

把 kb 的接入规约交给 AI 客户端(TraeWork / Claude Code / Cursor / 自建 Agent), 让它们知道怎么读写记忆、按什么身份规约、怎么查审计。两种方式,任选其一:

  1. skill(推荐,能自动触发)——可选的独立步骤:仓库内 skills/kb-memory/SKILL.md 是客户端无关的 Anthropic 开格式 skill。把它安装到你所用客户端的用户级 skills 目录后, 该客户端的任何项目会话都会在读写记忆/RAG 问答/审计查询时自动识别并触发。 安装 = 把 skills/kb-memory 目录复制过去即可(有脚本,也可手动复制,无需任何依赖); 更新(重新覆盖)、卸载、以及装好后的使用说明见 scripts/README.md。

    不装也不影响 kb 服务:skill 只是给 AI 客户端的「提示词包装」,与服务的安装、 启动无关——跳过这一步,服务照常运行,你随时可用方法 2 的纯文本提示词接入; skill 安装是一次性、按需、独立执行的,不会随 kb serve 自动触发, 也不会写入你的任何客户端目录以外的文件。

  2. 纯文本提示词(兜底,任何客户端通用):整段复制 docs/AGENT_PROMPT.md 粘贴给 Agent 即可,不依赖 skill 机制。

.trae-cn/skills / .claude/skills / .cursor/skills 是任何客户端都认的「标准」吗?——不是。 这些只是各家客户端各自的用户级约定目录:SKILL.md 本身是统一的 Anthropic 开格式, 但「装到哪个目录、能否自动触发」由各客户端自行决定,支持程度不一:

客户端用户级 skills 目录自动加载
TraeWork~/.trae-cn/skills/自动发现
Claude Code~/.claude/skills/高版本支持
Cursor~/.cursor/skills/逐步跟进
其他 / 自建 Agent无统一约定需手动加载或不支持

不存在「所有客户端都遵循」的统一目录;你的客户端若不支持 skill,永远有方法 2 兜底 (粘贴 AGENT_PROMPT.md,纯文本任何客户端可用)。安装方法、各客户端目录差异与加载机制、 相互引用关系:详细见 scripts/README.md(此处不重复)。

打包为独立 skill(Agensi / marketplace)

skills/kb-memory/ 是 kb 的独立交付单元,只依赖 kb 服务本身: 包含标准 front matter 的 SKILL.md(包根)、MCP 配置模板 mcp.json、配置模板 env.example、独立 README 与 LICENSE,覆盖「安装 → 启动 → 配置 → 验证 → 排障」全流程。

python scripts/build_skill_package.py        # 产物:dist/kb-memory-skill-<版本>.zip

zip 内 SKILL.md 位于包根目录,不含测试、运行数据或任何密钥; 构建脚本会校验 front matter、自包含说明与敏感信息。可直接提交到 Agensi 这类 skill marketplace,用户拿到包后按 SKILL.md 即可把本机 kb 接入自己的 Agent。

MCP 挂载

MCP 端点(streamable HTTP):http://127.0.0.1:8000/mcp/

Claude Code:本仓库已内置项目级 .mcp.json,在本目录启动 Claude Code 即自动挂载; 也可全局添加:

claude mcp add --transport http kb http://127.0.0.1:8000/mcp/

Cursor / TraeWork 及其他支持 MCP 的客户端:在 MCP 配置中加入以下 JSON (Cursor 放 ~/.cursor/mcp.json 或项目 .cursor/mcp.json;TraeWork 在设置中添加 MCP 服务器):

{
  "mcpServers": {
    "kb": {
      "type": "http",
      "url": "http://127.0.0.1:8000/mcp/"
    }
  }
}

挂载后可用的 MCP 工具(11 个):write_memory / search_memory / read_memory / update_memory / delete_memory / link_memory / unlink_memory / list_links / add_document / add_webpage / ask_kb。

启用 KB_API_KEY 鉴权后,MCP 客户端需在连接配置加 headers(Authorization: Bearer <key>); 仓库内 .mcp.json 模板不含真实 key(JSON 不支持注释),配法见 USER_GUIDE §5.2。

REST 端点速查

方法路径说明
POST/api/v1/memories写入记忆 {content, tags?, source?, namespace?}
GET/api/v1/memories记忆列表,支持 type/tag/source/q/limit/offset 过滤
GET/api/v1/memories/{id}读取单条记忆
PATCH/api/v1/memories/{id}更新内容或标签
DELETE/api/v1/memories/{id}删除单条记忆
POST/api/v1/memories/{id}/links建立记忆关联 {to_id, relation?};relation: related/supersedes/depends_on/part_of/contradicts
GET/api/v1/memories/{id}/links列一跳关联(含内容/方向;?project=&relation=)
DELETE/api/v1/memories/{id}/links/{to_id}取消关联(任一方向;删除后同步清理)
POST/api/v1/search混合检索 {query, top_k?, mode?, type?, tag?},mode: hybrid/vector/keyword
POST/api/v1/documents文档入库:multipart file 字段或 JSON {"path": "本地路径"}
GET/api/v1/documents已入库文档列表(按 source 聚合)
DELETE/api/v1/documents/{source}按 source 删除该文档全部记录(本地文件名等简单 source)
DELETE/api/v1/documents?source=<urlencoded>按查询参数删除(URL 等含斜杠的 source 必须用这个)
POST/api/v1/ingest/web网页入库 {url},抓取正文切分入库;同 URL 重复入库自动替换旧记录
POST/api/v1/askRAG 问答 {question};未配置 LLM 返回 503
GET/api/v1/healthz健康检查与服务统计(含 embedder 状态)
GET/api/v1/governance/stats记忆治理统计:total_count/avg_access_count/stale_90d_count(只读)
GET/api/v1/governance/config治理配置:衰减+新鲜度开关与参数(只读)
POST/api/v1/memories → 409启用语义去重(KB_DEDUP_ENABLED=true)后写入命中重复返回 409:{"error":"DUPLICATE","duplicate_of":"<已有记录id>","similarity":<相似度>}(不写入)

记忆关联默认启用一跳检索扩展:命中的 memory 会带出直接关联的邻居(结果附 via: {id, relation}),无关联数据时与基础检索完全一致;开关与上限见 KB_LINK_EXPAND_ENABLED / KB_LINK_EXPAND_LIMIT。设计见 memory-links spec。

记忆治理(去重/衰减/新鲜度)均默认关闭、零行为变化;用法见 USER_GUIDE §3.5。

示例(Windows PowerShell 可直接复制;中文必须按 UTF-8 字节发送):

function Invoke-KbJson($Uri, $Body) {
  Invoke-RestMethod -Uri $Uri -Method Post -ContentType 'application/json; charset=utf-8' `
    -Body ([System.Text.Encoding]::UTF8.GetBytes(($Body | ConvertTo-Json -Depth 5)))
}

# 写入一条记忆
Invoke-KbJson http://127.0.0.1:8000/api/v1/memories @{ content = "用户偏好深色主题"; tags = @("偏好") }

# 混合检索
Invoke-KbJson http://127.0.0.1:8000/api/v1/search @{ query = "用户界面偏好"; top_k = 5 }

# 按 URL 删除网页文档(source 需 URL 编码;PowerShell 用 [uri]::EscapeDataString)
$src = [uri]::EscapeDataString("https://example.com/page")
Invoke-RestMethod -Uri "http://127.0.0.1:8000/api/v1/documents?source=$src" -Method Delete

Linux / macOS 用 curl(curl 在这里是原生命令,不是 PowerShell 别名):

curl -X POST http://127.0.0.1:8000/api/v1/memories \
  -H "Content-Type: application/json" \
  -d '{"content": "用户偏好深色主题", "tags": ["偏好"]}'

配置项简表

全部配置以 KB_ 前缀的环境变量或 .env 文件提供;完整键名见 .env.example (复制为 .env 后填写,.env 已被 gitignore,真实密钥只放本机,严禁入库)。

配置项默认值说明
KB_LLM_MODEoffLLM 模式:off(默认,不加载/不调用 LLM,零显存零成本)/ local(仅本地 Ollama)/ auto(本地优先,云端降级)/ cloud
KB_DEVICE空嵌入模型设备:空或 auto=自动检测(非交互启动回退 cpu),可显式设 cpu / cuda
KB_WATCH_DIRdataserve 模式监听目录,文件变动自动入库;空串或 . = 不启动
KB_DATA_DIRkb_data运行数据根目录(ChromaDB、运行时状态等)
KB_API_HOST / KB_API_PORT127.0.0.1 / 8000REST 与 MCP 监听地址
KB_EMBED_MODELBAAI/bge-small-zh-v1.5嵌入模型(轻量默认,约 92 MB);可换 BAAI/bge-m3(约 2.2 GB,更强),见「嵌入模型怎么选」
KB_TORCH_THREADS / KB_EMBED_BATCH_SIZE0 / 32低配 CPU 调优:线程数 0=自动(按 cgroup/affinity,最多 4);2G 内存可把批大小降到 8–16
KB_IDLE_UNLOAD_SECONDS600嵌入模型空闲 N 秒后卸载;0=不卸载
KB_LLM_MODEL空本地 Ollama 模型名(默认空=不配;配 KB_LLM_MODE=local/auto 时须按自己电脑选模型,以 ollama list 为准)
KB_OLLAMA_BASE_URLhttp://localhost:11434Ollama 端点
KB_LLM_API_KEY / KB_LLM_BASE_URL / KB_LLM_CLOUD_MODEL空云端 LLM(可选):任意 OpenAI 兼容服务商(DeepSeek / OpenAI / 通义 / 硅基流动等),仅填在本机 .env
KB_CHUNK_SIZE / KB_CHUNK_OVERLAP500 / 100文档切分参数
KB_SENSITIVE_NAMESPACES空逗号分隔的敏感 namespace,命中强制本地回答不出网
KB_API_KEY空空=不鉴权(本地回环零摩擦);非空=启用 Bearer/X-API-Key 鉴权
KB_RERANK_ENABLED / KB_RERANK_MODEL / KB_RERANK_TOP_Nfalse / BAAI/bge-reranker-v2-m3 / 20检索精排(A3.5):融合候选送 CrossEncoder 重排,默认关
KB_SPARSE_ENABLEDfalse稀疏第三路(A3.5):BGE-M3 稀疏向量 + 倒排索引参与归一化加权融合,默认关
KB_LINK_EXPAND_ENABLED / KB_LINK_EXPAND_LIMIT / KB_LINK_EXPAND_SCORE_RATIOtrue / 3 / 0.5记忆关联一跳扩展:每次最多追加邻居数、邻居分数相对种子的比例
KB_LINK_MAX_PER_RECORD50单条记忆的关联边上限(防止单点成为巨型枢纽)

CLI 速查(无需启动服务)

python -m kb add "记忆内容" --tags 偏好 --client TraeWork                       # 写入(project 缺省自动取当前目录名)
python -m kb search "查询词" --client TraeWork                                 # 混合检索(v2.1:不传 project 查全局;传 project 合并子库)
python -m kb stats                            # 统计:类型分布 / 访问热度 / 陈旧分布
python -m kb ask "问题" --client TraeWork      # 终端 RAG 问答(LLM 不可用时输出检索命中)
python -m kb audit --client TraeWork --days 7   # 查某客户端/项目存过/读过什么
python -m kb eval --file tests/eval_zh_50.jsonl   # 检索质量评测(Recall@1/@5 + MRR)
python -m kb forget --stale --days 90 --dry-run  # 全作用域预览(默认 dry-run,删除前自动备份)
python -m kb dedup --threshold 0.92           # 语义去重

kb ask 直连本地服务逻辑(不经 HTTP);建议 serve 停止时使用,避免双进程写库竞争。

目录结构

kb/            kb 服务源码(config / models / embedder / storage / bm25 / retriever /
               service / llm / ingest / watcher / api / mcp / cli + reranker / sparse / eval)
tests/         kb 验收测试(462 项通过 / 1 跳过,含 eval_zh_50.jsonl 检索评测数据集)
docs/          用户指南、开发者手册与设计文档
kb_data/       kb 运行数据(gitignore)

更多文档

  • 用户使用手册:docs/USER_GUIDE.md
  • 设计文档(需求、架构、API、里程碑):docs/superpowers/specs/2026-08-23-kb-memory-service-design.md
  • v2.1 设计(当前):docs/superpowers/specs/2026-10-20-kb-v2.1-design.md
  • 开发者维护手册:docs/DEV_HANDBOOK.md

Questions fréquentes

Qu'est-ce que Rag Kb ?

Local-first agent memory and knowledge base: hybrid dense and BM25 retrieval, document and webpage ingestion and optional RAG answers via local Ollama.

Comment installer Rag Kb ?

Suivez les étapes d'installation de sa documentation, affichée sur cette page et dans son dépôt.

Rag Kb est-il open source ?

Oui. Son code est sur GitHub sous licence Apache-2.0.

Qui maintient Rag Kb ?

Il est publié par fish827-08. AI.tn le référence sans le maintenir ni le recommander.

Issu des listes communautaires awesome-mcp-servers et du dépôt GitHub du projet. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.