# 数据与凭据

了解本地保存、模型请求、外部服务访问与用户隔离。

## 数据经过哪些地方

Nexus 将宿主状态和用户工作数据保存在运行环境中。调用远程模型或外部服务时，完成任务所需的内容仍可能发往相应服务。使用远程服务时，本地运行的任务也会产生数据传输。

![工作区与宿主数据保存在 Nexus 环境，必要上下文发往模型，工具请求发往已授权服务](/images/docs/data-boundaries.svg)

## 本地保存的内容

统一状态根默认是 `~/.nexus`。宿主数据在 `app/`；服务端 Control 使用 `control/`；用户工作区、运行时配置与会话在 `users/<owner>/`。桌面迁移需要移动完整状态根。

工作区中的 `MEMORY.md` 和 `memory/` 保存 NXS 长期记忆，可能用于后续任务。原始会话、摘要和记忆分别承担不同用途，删除其中一类不会同时删除其余数据。

## 模型请求和外部工具

对话、必要文件内容、图片和工具结果可能成为模型上下文。实际发送内容取决于任务与工具调用。远程 Provider 对数据的保留和使用应查看该服务的条款与账号配置。

连接器和浏览器操作使用相应账号访问外部服务。读取只应覆盖任务所需资源；写入、发送和发布前检查目标与内容。不要在公开材料中包含私人工作区路径、凭据或无关个人信息。

## 凭据保存

Provider 凭据由 Product 配置管理，在启动运行时等必要环节注入，不应写进 Agent 工作区。Connector 与 IM 凭据使用独立密钥加密保存。

加密密钥与密文同样需要备份。丢失密钥可能导致已有连接配置无法恢复；随意生成一把新密钥不能解开旧数据。备份介质和运行主机本身仍需访问控制。

## 多用户边界

服务端身份由 Control 管理，Nexus 验证签名身份并映射到对应 owner。跨 owner 访问应被拒绝；同一用户下的多个 Agent 目录用于组织工作，不提供成员之间的强安全隔离。

Linux 多用户部署还依赖运行时 launcher、用户组与文件系统限制。管理员应按[运行隔离文档](https://github.com/nexus-research-lab/nexus/blob/main/docs/operations/runtime-isolation.md)部署，通过宿主权限限制运行时的访问范围。

## 用一次文件任务检查数据路径

以读取报告并生成摘要为例，上传材料保存在任务运行环境，读取出的内容可能进入模型请求，摘要文件再写回工作区。若随后使用连接器发送摘要，还会产生一次外部服务写入。

| 阶段 | 需要确认 |
| --- | --- |
| 提供材料 | 上传的是哪些文件，是否包含无关内容 |
| 调用模型 | 当前使用哪个 Provider 与模型 |
| 保存交付 | 文件位于本机还是服务器工作区 |
| 对外发送 | 接收系统、账号与具体目标 |

停止后续任务不会撤回已经发出的请求。需要删除外部副本时，应在相应服务中处理，不能只删除 Nexus 中的会话。

## 删除记录与停用连接不同

删除聊天、修改长期记忆、移除文件和停用连接器分别作用于不同对象。要清理一项工作的材料，先列出原文件、交付、聊天与记忆是否各有副本，再按需要处理。

停用连接器阻止后续使用，不会自动撤销外部平台账号或令牌。账号离职或凭据泄露时，还应在签发凭据的平台完成撤销或轮换，然后核对 Nexus 配置。

## 分享和备份之前

分享文件前检查隐藏的账号、令牌和私人内容。提交故障日志前只保留必要片段并脱敏。导出工作成果与备份整套系统是不同操作，恢复策略见[备份、恢复与迁移](/docs/backup)。
