zd87pl/slm-vault
GitHub: zd87pl/slm-vault
隐私至上的本地可信 AI 代理,通过 MCP 协议在用户与外部 AI 之间建立加密屏障,确保原始文档永不离开本机的同时让外部 AI 完成任务。
Stars: 1 | Forks: 0
# Enclave
**隐私至上的 AI 个人数据管理器**
[](LICENSE)
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io/)
## 问题所在
每个 AI 都需要你的数据才能发挥作用。但是,一旦你与 Claude、Cursor 或 Copilot 共享了文档,你就会失去控制权。它们能看到你的原始数据。你无法审计访问记录。你也无法撤销授权。
**治理鸿沟是真实存在的**:79% 的组织正在采用代理式 AI,但只有 48% 的组织建立了限制 AI 自主权的框架。
## 解决方案
Enclave 是一个位于你与外部 AI 之间的**本地可信代理**。
```
External Agent (Claude Desktop / Cursor / Copilot)
↓ MCP command: "Summarize Q3 report"
↓
┌───────────────────────────────────────┐
│ LOCAL TRUSTED AGENT (Enclave) │
│ • Full access to your encrypted docs │
│ • Reads & processes locally │
│ • Generates synthesized response │
│ • Logs every access │
└───────────────────────────────────────┘
↓ Response: "Q3 revenue was $4.2M..."
↓
External Agent (never saw the actual document)
```
外部 AI 发送命令。Enclave 在本地读取你的文档并返回合成答案。**它们永远不会看到你的原始数据。**
## 功能
- **本地 RAG**:拖放文档,即可通过语义搜索进行即时查询
- **MCP 集成**:与 Claude Desktop、Cursor、Copilot 及任何 MCP 客户端配合使用
- **加密存储**:使用 ChaCha20-Poly1305 加密所有静态数据
- **活动日志**:查看来自每个 AI 代理的每一条命令
- **按代理授权**:控制每个 AI 可以访问的内容
- **本地推理**:在 Apple Silicon 上运行基于 MLX 的 LLM(Qwen 2.5、Phi-4、Llama)
- **桌面 GUI**:原生支持 macOS/Windows/Linux 的应用程序
- **适配器训练**:基于你的文档微调本地模型
### 性能优化
- **HNSW 索引**:大规模向量搜索速度提升 10-30 倍
- **E5-small Embeddings**:与 MiniLM 相比,检索质量提升 15%
- **持久化缓存**:重复查询加速 2-9 倍
- **递归分块**:基于语义边界实现更好的召回率
## 快速开始
### 安装
```
# 从源码安装
git clone https://github.com/your-org/slm-vault
cd slm-vault
python3.11 -m venv .venv
./.venv/bin/python -m pip install -U pip
./.venv/bin/python -m pip install -e ".[mlx,gui,mac-performance]"
# 验证本地演示路径
./.venv/bin/python scripts/verify_local_demo.py
```
### 运行桌面应用
```
# 启动 GUI
./.venv/bin/python -m advanced_vault.gui.vault_app
```
### 启动 MCP Server
```
# 启动 Enclave MCP 服务器
python -m advanced_vault.mcp_server
```
### 连接 Claude Desktop
将其添加到你的 Claude Desktop MCP 配置中(`~/Library/Application Support/Claude/claude_desktop_config.json`):
```
{
"mcpServers": {
"enclave": {
"command": "python",
"args": ["-m", "advanced_vault.mcp_server"]
}
}
}
```
重启 Claude Desktop。现在你可以向 Claude 询问关于你文档的问题——Enclave 会处理剩下的事情。
### 索引文档(Python API)
```
from advanced_vault.training import RAGIndex
import os
# 生成或加载 32 字节加密密钥
master_key = os.urandom(32) # In production, derive from password
# 创建加密索引
with RAGIndex(master_key=master_key) as index:
# Add documents
index.add_document(
name="Q3 Report",
content="Revenue increased 15% to $4.2M in Q3..."
)
# Search
results = index.search("What was Q3 revenue?")
for r in results:
print(f"{r.document_name}: {r.chunk.content[:100]}...")
```
## MCP 工具
Enclave 向 AI 代理暴露了以下工具:
| 工具 | 描述 |
|------|-------------|
| `agent_query` | 对已索引的文档进行提问 |
| `agent_summarize` | 总结某个主题或文档 |
| `agent_draft` | 基于你的文档起草内容 |
| `agent_status` | 检查已索引文档和代理状态 |
| `vault_store` | 存储机密信息(API 密钥、密码) |
| `vault_recall` | 使用自然语言检索机密信息 |
## 个人数据保险库(新增 🆕)
Enclave 现在将你的文档组织成**语义保险库类别**,并配有特定领域的 AI 适配器:
| 保险库 | 文档 | AI 适配器 |
|-------|-----------|------------|
| 🏥 **健康** | 病历、处方、化验结果 | 健康顾问 |
| 💰 **财务** | 银行对账单、纳税申报表、投资 | 税务助手 |
| ⚖️ **法律** | 合同、遗嘱、移民文件 | 法律伴侣 |
| 🧠 **个人** | 日记、电子邮件、笔记、回忆 | 生活档案员 |
### 自动分类
放入任何文件,Enclave 会自动检测其类型:
```
# 分类单个文件
vault prosumer classify blood_test.pdf
# 分类整个文件夹
vault prosumer classify-folder ~/Documents --recursive
```
### 一键适配器训练
基于你的文档训练特定领域的 AI:
```
# 列出训练预设
vault prosumer presets list
# 通过 GUI 训练:拖放文档 → 点击“Train AI” → 5-15 分钟内完成
```
每个预设都包含安全护栏:
- **健康顾问**:从不开具处方,始终建议就医
- **税务助手**:显示计算过程,建议咨询注册会计师(CPA)
- **法律伴侣**:仅作总结,从不提供法律建议
### 加密适配器备份与共享
你训练好的适配器包含学习到的模式——而不是你的原始文档。安全地备份或共享它:
```
# 导出加密 adapter
vault prosumer backup export ~/.vault/adapters/health.wdva \
--name "My Health Advisor" --category health
# 在另一台设备上导入
vault prosumer backup import ./health.enclave
# 验证完整性
vault prosumer backup verify ./health.enclave
# 列出所有备份
vault prosumer backup list
```
**包含内容**:加密的学习权重(WDVA 格式)+ 元数据。
**不包含内容**:你的原始文档、文件名或个人数据。
**核心原则**:`agent_query` 返回的是合成答案,而不是原始文档。外部 AI 永远不会看到你的实际内容。
## 架构
```
┌─────────────────────────────────────────────────────────────┐
│ External AI Agents │
│ (Claude Desktop, Cursor, Copilot) │
└───────────────────────────┬─────────────────────────────────┘
│ MCP Protocol
▼
┌─────────────────────────────────────────────────────────────┐
│ Enclave MCP Server │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────────┐ │
│ │ Consent │ │ Activity │ │ Agent Commands │ │
│ │ Manager │ │ Logger │ │ (query/summarize) │ │
│ └─────────────┘ └─────────────┘ └─────────────────────┘ │
└───────────────────────────┬─────────────────────────────────┘
│
┌───────────────────┼───────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────────┐
│ RAG Index │ │ Local LLM │ │ Encrypted Vault │
│ (HNSW+E5) │ │ (MLX) │ │ (ChaCha20) │
└───────────────┘ └───────────────┘ └───────────────────┘
```
## 隐私模型
1. **数据保留在本地**:文档在你的设备上进行索引和存储
2. **静态加密**:所有内容均使用 ChaCha20-Poly1305 进行加密
3. **合成响应**:外部 AI 获得的是答案,而不是原始文档
4. **需要授权**:每次访问都需要明确的权限许可
5. **完整审计跟踪**:准确查看每个 AI 访问了什么以及何时访问
6. **密钥清零**:加密密钥在使用后从内存中安全擦除
## 项目结构
```
slm-vault/
├── advanced_vault/ # Core application
│ ├── gui/ # Desktop GUI (Flet)
│ ├── training/ # RAG index, embeddings, caching
│ ├── prosumer/ # Personal data vaults (Health, Finance, Legal, Personal)
│ ├── mcp_server/ # MCP server implementation
│ └── backend/ # Supabase integration (optional)
├── browser-extension/ # Browser extension
├── langchain-enclave/ # LangChain integration
├── docs/ # Documentation
│ ├── architecture/ # Technical architecture
│ ├── deployment/ # Deployment guides
│ └── security/ # Security documentation
└── examples/ # Example scripts
```
## 要求
- Python 3.10+
- macOS(推荐 Apple Silicon)、Windows 或 Linux
- 8GB+ 内存(本地 LLM 推荐使用 16GB+)
### 可选依赖项
```
# Apple Silicon 加速
pip install mlx mlx-lm
# 高级训练:DPO, ORPO, GRPO, QAT(需要 mlx-lm-lora)
pip install "enclave-vault[advanced-training]"
# Fast embeddings (ONNX)
pip install fastembed
# HNSW 索引(搜索速度提升 10-30 倍)
pip install hnswlib
# Desktop GUI
pip install "flet[all]>=0.28.3,<0.29"
```
## 高级本地训练
Enclave 支持通过 Apple Silicon 上的 `mlx-lm-lora` 使用高级训练算法:
| 算法 | 用例 | 环境变量 |
|-----------|----------|---------|
| **SFT**(默认) | 问答对的标准微调 | `ENCLAVE_LOCAL_TRAIN_MODE=sft` |
| **DPO** | 偏好优化(好答案与坏答案) | `ENCLAVE_LOCAL_TRAIN_MODE=dpo` |
| **ORPO** | 优势比偏好优化 | `ENCLAVE_LOCAL_TRAIN_MODE=orpo` |
| **GRPO** | 带有自定义奖励的组相对策略优化 | `ENCLAVE_LOCAL_TRAIN_MODE=grpo` |
| **SFT+QAT** | 感知量化的训练,用于生成更小的适配器 | `ENCLAVE_LOCAL_TRAIN_MODE=sft` + `ENCLAVE_LOCAL_QAT=true` |
### 环境变量
```
# 训练算法
export ENCLAVE_LOCAL_TRAIN_MODE=dpo # sft | dpo | orpo | grpo
# QAT (Quantization Aware Training)
export ENCLAVE_LOCAL_QAT=true # true/false
# LoRA 超参数
export ENCLAVE_LOCAL_LORA_RANK=8
export ENCLAVE_LOCAL_LORA_ALPHA=16
export ENCLAVE_LOCAL_LR=1e-5
export ENCLAVE_LOCAL_BATCH_SIZE=4
# DPO/ORPO 特定
export ENCLAVE_LOCAL_DPO_BETA=0.1
# GRPO 特定
export ENCLAVE_LOCAL_GRPO_GROUP_SIZE=4
export ENCLAVE_LOCAL_GRPO_REWARD_COMBO=rag_default # rag_default | citation_heavy | concise | structured
# 强制本地与云端训练对比
export ENCLAVE_LOCAL_TRAINING=true # true | false | auto
```
### 打包与共享适配器
```
# 打包训练好的 adapter
vault model package ~/.enclave/adapters/my_adapter ./my_adapter.enclave \
--train-mode dpo --qat --password
# 解包
vault model unpack ./my_adapter.enclave ~/.enclave/adapters/restored --password
# 验证完整性
vault model verify ./my_adapter.enclave --password
```
## 开发
```
# 克隆仓库
git clone https://github.com/your-org/slm-vault
cd slm-vault
# 安装开发依赖项
pip install -e ".[dev]"
# 运行测试
pytest
# 运行 linter
ruff check .
# 类型检查
mypy advanced_vault/
```
## 文档
- [架构概览](docs/architecture/ARCHITECTURE.md)
- [加密规范](docs/architecture/CRYPTOGRAPHIC_SPECS.md)
- [MLX DoRA 架构](docs/MLX_DORA_ARCHITECTURE.md)
- [安全性分析](docs/security/SECURITY_ANALYSIS_PDF_QA.md)
- [部署指南](docs/deployment/RUNPOD_DEPLOYMENT.md)
## 状态
- [x] 带有 HNSW 加速的 RAG 索引
- [x] 带有持久化缓存的 E5-small embeddings
- [x] 带有代理命令的 MCP 服务器
- [x] 加密保险库存储(ChaCha20-Poly1305)
- [x] 活动日志与授权管理
- [x] 桌面 GUI(Flet)
- [x] 本地 LLM 推理(MLX)
- [x] 浏览器扩展
- [x] 高级本地训练(通过 mlx-lm-lora 实现 DPO、ORPO、GRPO、QAT)
- [x] 加密适配器打包与分发
- [ ] 多设备同步(加密)
- [ ] 适配器市场
## 许可证
Apache License 2.0 - 详见 [LICENSE](LICENSE)
**Enclave**:隐私至上的 AI。你的数据,你做主。
标签:AI安全, AI网关, ChaCha20-Poly1305, Chat Copilot, Claude, CNCF毕业项目, Copilot, Cursor, CVE检测, JSONLines, MCP协议, Python, Streamlit, 个人数据管理, 人工智能, 内核驱动漏洞利用, 审计, 提示词模板, 敏感数据保护, 数据加密, 数据治理, 数据泄露, 无后门, 本地RAG, 本地代理, 本地处理, 权限管理, 检索增强生成, 模型上下文协议, 模型越狱, 活动日志, 用户模式Hook绕过, 网络安全, 网络安全审计, 访问控制, 语义搜索, 逆向工具, 隐私保护, 隐私计算, 零信任