四
可搜索的知识语料库,BM25排名。Rust库、CLI和MCP服务器。
状态
CLI、搜索和MCP服务器正常工作。可选的Tantivy(BM25)排名搜索后端可通过以下方式获得 ranked 功能。
什么是kvault?
kvault是一个快速、本地优先的知识库,可以让您:
- 商店 知识,如Markdown、JSON或纯文本
- 搜索 具有ripgrep(快速)或Tantivy BM25排名(可选)
- 访问 通过CLI、Rust库或MCP服务器
没有外部AI服务。没有嵌入API。你可以控制你的知识在哪里。
安装
需要 ripgrep 搜索:
brew install ripgrep # macOS
cargo install ripgrep # any platform
apt install ripgrep # Debian/Ubuntu安装kvault:
cargo install kvault或者从源代码构建:
git clone https://github.com/aaronbrooks/kvault
cd kvault
cargo build --release
# With MCP server support
cargo build --release --features mcp
# With ranked search (BM25 + fuzzy matching)
cargo build --release --features ranked
# Full build with all features
cargo build --release --features "ranked,mcp"快速开始
添加文档:
echo "# Lambda Patterns
Use environment variables for configuration.
Keep functions small and focused.
" | kvault add --title "AWS Lambda Patterns" --category aws --tags "lambda,serverless"或者从文件中:
kvault add --title "AWS Lambda Patterns" --category aws --file ./notes.md然后搜索并检索:
kvault list # List all documents
kvault search "environment" # Search content
kvault get aws/aws-lambda-patterns.md # View full documentCLI命令
kvault add --title "..." --category "..." [--tags "..."] [--file path]
# Add document (reads stdin if no --file)
kvault search # Search the corpus (case-insensitive)
kvault search -l 5 # Limit results
kvault search -c aws # Filter by category
kvault search -s # Case-sensitive search
kvault search -b ranked # Use BM25 ranked search (requires --features ranked)
kvault search --fuzzy # Fuzzy search with edit distance 1 (ranked backend)
kvault search --fuzzy 2 # Fuzzy search with edit distance 2
kvault list # List all documents
kvault list --category aws # Filter by category
kvault get
# Print document contents
kvault index # Build search index (requires --features ranked)
kvault serve # Start MCP server (requires --features mcp)配置
配置文件: ~/.config/kvault/config.toml
[corpus]
paths = [
"~/.kvault", # default location
"./.kvault", # add project-specific paths as needed
"~/work/shared-kb", # or team/custom locations
]违约: ~/.kvault 如果不存在配置文件,则使用。
环境变量
| 变量 | 描述 |
|---|---|
KVAULT_CONFIG | 覆盖配置文件位置(对测试有用) |
存储后端
| 后端 | 用例 | 状态 |
|---|---|---|
| 本地文件系统 | CLI用户、脚本、个人知识 | 可用 |
| S3 | 团队共享,分布式语料库 | 计划 |
搜索后端
| 后端 | 用例 | 状态 |
|---|---|---|
| ripgrep | 快速文本搜索,无需索引 | 可用(默认) |
| Tantivy | BM25排名结果,模糊搜索,需要索引 | 可用(ranked 特征) |
排名搜索(坦特维)
使用排名搜索支持进行构建:
cargo build --release --features ranked构建搜索索引(使用排名搜索前需要):
kvault index使用排名搜索:
# Explicit ranked backend
kvault search "lambda patterns" --backend ranked
# Auto-select (uses ranked if index exists, else ripgrep)
kvault search "lambda patterns" --backend auto
# Fuzzy search - finds "lambda" even if you type "lamda"
kvault search "lamda" --fuzzy # 1 edit distance (default)
kvault search "lamda" --fuzzy 2 # 2 edit distance (more permissive)编辑距离指南:
| 距离 | 捕获量 | 示例 |
|---|---|---|
| 1 | 单个拼写错误,缺少/多余字符 | lamda 火柴 lambda |
| 2 | 两个拼写错误,转置 | lambada 火柴 lambda |
MCP服务器
kvault包括一个用于AI编辑器集成的MCP服务器。在MCP支持下构建:
cargo build --release --features mcp添加到编辑器的MCP配置中:
{
"mcpServers": {
"kvault": {
"command": "kvault",
"args": ["serve"]
}
}
}支持的编辑器
- 克劳德代码
- 光标
- 帆板运动
- 任何支持模型上下文协议的编辑器
MCP工具
| 工具 | 说明 |
|---|---|
search_knowledge | 在语料库中搜索匹配的文档 |
list_knowledge | 列出所有文档,可选择按类别筛选 |
get_document | 按路径获取文档的完整内容 |
add_knowledge | 将新文档添加到语料库 |
功能标志
| 标志 | 描述 |
|---|---|
ranked | 使用模糊匹配启用Tantivy BM25排名搜索 |
mcp | 启用MCP服务器(kvault serve) |
许可证
麻省理工学院
