本地优先的研究编排引擎,整合SQLite持久化、自主策略生成与可选后台服务,适合需要数据主权与离线工作的研究者
说明:
ResearchVault 是一款以“本地优先(Local-first)”为核心理念的研究编排引擎,主打数据主权、隐私安全与离线可用性。系统采用 SQLite 作为唯一存储介质,默认路径位于 `~/.researchvault/research_vault.db`,所有研究状态、原始资料与合成结果均保存在本地磁盘,不进行任何云端同步,从架构层面杜绝了数据外泄风险。
核心功能围绕三大模块展开:
1. **项目管理(Project Init)**:通过 `vault.py init` 创建研究项目,支持自定义研究目标(objective)与项目标识(name),为后续资料归集奠定基础。
2. **数据摄取(Data Ingestion)**:`scuttle` 子命令允许用户将任意 URL 内容抓取并关联至特定项目 ID,系统会自动处理网页内容提取与元数据索引。
3. **自主策略生成(Autonomous Strategist)**:`strategy` 子命令基于已摄取的数据自动分析、综合并生成研究策略建议,实现从原始资料到洞察报告的半自动化转换。
对于需要可视化交互的用户,ResearchVault 提供可选的 Portal 服务(手动启动),包含独立的前后端分离架构:后端默认绑定 `127.0.0.1:8000`,前端开发服务器运行于 `127.0.0.1:5173`。Portal 采用静态 Token 认证机制,Token 通过 `.portal_auth` 文件或环境变量 `RESEARCHVAULT_PORTAL_TOKEN` 注入,登录通过 URL hash `#token=` 完成,避免了传统会话 Cookie 的复杂性。同时,Portal 支持双主机访问(`127.0.0.1` 与 `localhost`),便于不同浏览器环境的使用。
安全设计方面,ResearchVault 实施了多层防护策略:
– **SSRF 硬化**:默认拒绝所有私有网络、本地回环及链路本地地址(如 `10.0.0.0/8`、`192.168.0.0/16`、`127.0.0.0/8`、`169.254.0.0/16`),需显式添加 `–allow-private-networks` 参数方可放行,有效防范服务器端请求伪造攻击。
– **网络透明性**:除用户主动触发的研究请求或已配置的 Brave Search 外,系统不进行任何出站连接,确保网络行为的可预测性。
– **严格服务隔离**:MCP 服务器与 Watchdog 后台服务均位于 `scripts/services/` 目录,必须手动启动,且技能配置中明确设置 `disable-model-invocation: true`,防止 AI 模型自主启动后台任务,降低未授权操作风险。
– **Provider 密钥隔离**:Brave、Serper、SearXNG 等搜索服务的 API 密钥仅通过环境变量注入,不会传递给 Vault 子进程,避免密钥泄露。
此外,系统支持丰富的环境变量配置,涵盖数据库路径自定义、搜索 Provider 优先级调整、Portal 端口与 CORS 策略、Cookie 安全标记等,满足进阶用户的个性化部署需求。
**显著优点**:数据完全本地掌控,隐私风险极低;模块化设计清晰,CLI 与 Portal 双模式兼顾自动化与交互性;SSRF 防护默认启用,安全基线较高;MIT 许可证开源,社区可审计。
**潜在局限**:依赖 Python 3.13 环境,对旧系统兼容性有限;Portal 为开发级前端(Vite 开发服务器),生产环境需额外加固;无内置协作功能,团队共享需手动导出/同步数据库文件;搜索功能依赖外部 API(Brave/Serper/SearXNG),完全离线场景下需预先摄取资料。
**适合人群**:对数据主权敏感的研究人员、需要离线/内网环境工作的分析师、关注供应链安全的技术审计团队、以及希望自建研究知识库的个人知识管理(PKM)用户。
**常规风险**:尽管 SSRF 防护完善,若用户显式添加 `–allow-private-networks` 或 Portal 中开启“Allow private networks”,可能暴露内网服务;环境变量中存储的 API 密钥若未妥善管理(如写入 shell history 或权限宽松的 `.env` 文件),存在泄露风险;SQLite 数据库文件需定期备份,磁盘故障可能导致研究数据不可恢复。









