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=<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 数据库文件需定期备份,磁盘故障可能导致研究数据不可恢复。