ResearchVault

🦞 本地优先的研究编排引擎

本地优先的研究编排引擎,整合SQLite持久化、自主策略生成与可选后台服务,适合需要数据主权与离线工作的研究者

收藏
11.5k
安装
5k
版本
3.0.5
CLS 安全扫描中
预计需要 3 分钟...

使用说明

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.1localhost),便于不同浏览器环境的使用。

安全设计方面,ResearchVault 实施了多层防护策略:

  • SSRF 硬化:默认拒绝所有私有网络、本地回环及链路本地地址(如 10.0.0.0/8192.168.0.0/16127.0.0.0/8169.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 数据库文件需定期备份,磁盘故障可能导致研究数据不可恢复。

ResearchVault 内容

portal文件夹
backend文件夹
app文件夹
routers文件夹
frontend文件夹
src文件夹
components文件夹
lib文件夹
scripts文件夹
services文件夹
tests文件夹
手动下载zip · 153.3 kB
auth.pytext/plain
请选择文件