数据、安全与恢复

Scientific Agent 默认把研究数据保存在本机。数据、缓存和应用配置分开存放,便于备份重要结果,同时安全地清理可再生成内容。

默认位置

研究数据默认都在 ~/Documents/ScientificAgent。缓存和配置按平台放置:

平台 缓存 配置
Linux $XDG_CACHE_HOME/scientific-agent,未设置时为 ~/.cache/scientific-agent $XDG_CONFIG_HOME/scientific-agent,未设置时为 ~/.config/scientific-agent
macOS ~/Library/Caches/ScientificAgent ~/Library/Application Support/ScientificAgent
Windows %LOCALAPPDATA%\ScientificAgent\Cache %APPDATA%\ScientificAgent

CLI 可显式覆盖:

scientific-agent \
  --data-dir /data/my-study \
  --cache-dir /scratch/scientific-agent-cache \
  --config-dir /data/my-settings \
  status RUN_ID

三个全局选项必须出现在子命令之前。

数据目录中有什么

主要目录包括:

目录 内容
runs/ 每次运行的合同、事件、状态、工作区、日志和交互记录
artifacts/ 跨运行或应用级产物存储
models/ 最终模型和模型相关交付物
reports/ 报告数据
exports/ 科学导出和 Runtime 备份

单个运行目录通常包含 events/artifacts/workspace/logs/interactions/state/。这些是内部布局;请通过桌面端、CLI 或 Control API 读取,不要手工编辑。

为什么事件和产物都要保存

  • 事件记录“发生了什么”:运行状态、动作、预算、人工介入和完成决定。
  • 产物记录“依据是什么”:输入、数据、代码、预测、评估、分析和报告。
  • 投影视图把两者组合成控制室、时间线和谱系。

启动、恢复或查看旧运行时,Runtime 会从事件重放研究状态。产物带有 SHA-256 摘要;读取时会校验内容,避免文件被替换后仍被当作原始证据。

因此,手工修改 events.jsonl、state 文件或产物内容会破坏可恢复性和审计链。要修正研究,应创建新运行或通过支持的介入命令留下新记录。

移动数据目录

桌面端 Settings → Storage 会显示当前目录、大小和可用空间,并支持选择新位置。迁移前:

  1. 暂停或结束所有运行。
  2. 创建 Runtime 备份。
  3. 选择有足够空间且能持续挂载的位置。
  4. 完成移动/复制后,让应用自行验证新目录。

不要在运行中用文件管理器移动目录。网络盘或同步盘可能改变原子写入和锁行为;若必须使用,先在小型 toy run 上验证暂停、恢复和产物哈希。

Runtime 备份

桌面端点击 Create backup,或使用:

curl -sS -X POST http://127.0.0.1:8000/api/v1/storage/backups | jq

备份 ZIP 位于 <data-dir>/exports/backups/,包含 runsartifactsmodelsreports 以及带每个文件摘要的 backup.json。缓存和普通配置不在备份中,因为它们不是研究事实。

备份文件仍在数据目录内部。真正的灾难恢复还需要把 ZIP 复制到另一块磁盘或受控的备份系统,并定期测试解压和摘要。

科学导出

成功运行可以生成面向审阅者的科学导出。它会选择最终报告、模型/推理文件和必要元数据,保存在 exports/ 下。

导出适合论文附件、同事复核和部署交接;它不是所有历史运行的镜像。需要完整恢复时使用 Runtime 备份。

中断与恢复

应用或机器异常退出后,运行通常显示 INTERRUPTED。恢复会:

  1. 校验事件序列和已有产物;
  2. 定位安全恢复点;
  3. 标记未完成作业,而不是假设它已成功;
  4. 从保存的合同和剩余预算继续。

在控制室点击 Recover,或执行:

scientific-agent resume RUN_ID

若状态不是可恢复中断,命令会拒绝操作。先用 status RUN_ID --events 查看最后一个失败或生命周期事件。

凭据

桌面端把 provider 凭据交给操作系统凭据存储,并且不会把密钥写入研究合同、事件或模型档案。CLI 使用环境变量:

export LAB_MODEL_API_KEY="..."
scientific-agent run study.yaml

配置文件只写环境变量名,例如 auth_env: LAB_MODEL_API_KEY。不要把 .env、终端历史、带密钥的日志或配置提交到版本库。

codex-cli provider 使用本机 Codex 登录状态。它与 API key provider 是两条不同的认证路径。

Control API 与桌面安全

  • Desktop 的本地 API 使用应用生成的临时令牌,并限制可接受的本地来源。
  • scientific-agent serve 是方便开发和自动化的无认证模式;默认绑定 127.0.0.1,不要改成公网地址直接暴露。
  • 需要远程或多用户服务时,在前面增加 TLS、认证、访问控制和请求大小限制,并使用独立系统账户运行。
  • API 返回的是受控读模型,不应通过静态文件服务器直接公开数据目录。

插件与本地执行

启用的 Python 插件与应用进程拥有相同权限。ZIP 安装会阻止常见压缩包路径攻击,但不会证明插件业务代码安全。只启用可信代码。

Local Executor 限制工作区和声明的输入/输出,却不是针对恶意程序的安全沙箱。对不可信代码,应在容器、虚拟机或隔离账户中运行整个 Scientific Agent。

评估私有数据

evaluator_private 可见性的产物只交给受信任评估器。它们不会进入:

  • Scientific Reasoner 上下文;
  • 普通研究插件输入;
  • 面向研究者的产物列表和 Research Flow;
  • 科学导出的公开部分。

这能防止普通训练循环直接读取答案,但仍应使用文件权限和隔离账户保护底层磁盘。

删除与保留

当前界面重点提供打开、移动、备份和导出,不提供把历史事实当作普通缓存清理的工作流。需要释放空间时:

  1. 先生成并异地保存备份;
  2. 确认相关论文、报告和模型已导出;
  3. 关闭应用和 API 服务;
  4. 按明确的完整运行目录做归档或删除,不要只删其中的 events 或 artifacts。

缓存可以重新生成,研究数据通常不能。两者不要放进同一条清理命令。

找到 条结果:“

    没有找到匹配结果:“