文档

在 ORG-2 中运行、审阅并共享智能体工作所需的一切。

全部文档

安全与隐私

ORG-2 的威胁模型、凭据在磁盘上的位置、智能体能访问到什么、哪些数据被传输到哪里,以及如何报告漏洞。

ORG-2 在你的机器上、用你的凭据、针对你的仓库运行智能体。没有任何服务器持有你的源码,但有一个本地进程可以代表你读取文件、执行命令。本页描述应用实际强制执行的内容,并且刻意把它提供什么也说清楚。

本地优先的威胁模型

ORG-2 假定你的机器和用户账户是可信的——任何以你的身份运行的程序都能读到它的数据,而物理接触设备不在考虑范围内。网络是不可信的,因此所有流量都走 HTTPS。你的模型服务商会看到你发给它的内容。

它并不假定智能体是安全的。策略控制让破坏性操作更难发生、也更容易被看见,但模型被你仓库里的内容做提示词注入,是一个真实存在的风险——请审阅智能体究竟做了什么,回放正是为此而生。ORG-2 不防御这些情况:另一个以你的身份运行的进程、被攻破的模型服务商,或者你自己选择安装的恶意 MCP server。

凭据在磁盘上的位置

在所有平台上,ORG-2 都把数据放在 ~/.orgii/ 下(可用 ORGII_HOME 覆盖)。

文件内容保护措施
credentials.json服务商 API 密钥和会话令牌macOS/Linux 上为 0600 权限;Windows 上为受限 ACL
sync_connection_tokens.jsonGit 托管服务的访问令牌和刷新令牌同上
extension_secrets.json扩展密钥同上
proxy/ca-key.pem本地代理 CA 私钥同上
sessions.dbprojects/projects.db会话历史、对话记录、项目普通文件权限

警告: 对于自己的密钥,ORG-2 使用操作系统钥匙串、Windows 凭据管理器或 Linux Secret Service,也做静态加密。credentials.json 是明文 JSON,唯一的保护就是文件权限位;数据库就是普通的 SQLite,没有口令。任何以你的身份运行的进程都能读到这全部内容。请把这台机器本身当作安全边界,并且只给智能体它真正需要的那部分服务商密钥。

加固过的文件会先设好权限再做原子重命名,所以它们不会有哪怕一瞬间是所有人可读的;集成配置和部分 CLI 智能体的 OAuth 配置文件则没有这种处理。云端会话令牌存放在内嵌 WebView 的 local storage 里,而不是 ~/.orgii/ 中。

粘贴进会话内密钥输入框的机密值处理得更好:它们保存在一个会自动清零的内存缓冲区里,通过一个不透明的令牌来引用,并且只有在写入环境变量文件(0600 权限)时才会被解析——永远不会进入模型的对话记录或会话数据库。

智能体能访问到什么,以及如何约束它

控制项默认值作用
访问模式读取 + 写入只读,或者同时可以写文件、执行命令
仅限工作区开启将文件和 Shell 访问限制在工作区目录内
阻止高风险命令开启高风险模式会被直接拒绝,而不是排队等待批准
阻止列表sudoshutdown永远不会运行的基础命令
禁止访问路径智能体绝不能碰的路径
始终询问列表运行前需要额外批准的命令

这些都在 设置 → 安全 中按智能体分别配置,那里提供 访问模式只读 / 读取 + 写入)、仅限工作区路径策略 → 禁止访问路径,以及 命令策略 → 阻止列表始终询问列表。禁止访问路径每行填一个绝对路径或 ~/ 相对路径;应用里给出的示例正是大多数人需要的那一组——~/.ssh~/.aws/etc,以及在 Windows 上你的 .ssh 文件夹和 System32

路径会被独立检查两次:语法校验会拒绝空字节、.. 路径段,以及诸如 ..%2f 这样的 URL 编码穿越;而 仅限工作区 则单独检测路径是否包含在该会话允许的根目录之内。

请设置禁止访问路径。 它默认为空,而正是它把智能体挡在 ~/.ssh 和你的云凭据之外。

批准提示

命令在运行前会按风险分级。高风险模式——默认是 sudoshutdown——会被直接阻止。中风险模式会暂停等待批准:随应用提供的列表涵盖 rm -rfddrebootsuwgetncssh 这类网络工具,以及包括 git cleangit reset --hard、各种 git push --force 变体和 git branch -D 在内的破坏性 git 操作。两份列表都可以编辑,可用 策略重置 → 重置为默认值

带有不可逆外部副作用的命令始终需要确认:git pushgh pr/issue/releasenpm/yarn/pnpm publishcargo publishtwine uploadpip upload。匹配是在归一化后的管道上进行的,所以用串联或管道并不能让某条命令蒙混过关。

隔离:worktree,而不是操作系统沙箱

警告: ORG-2 不在操作系统级别的沙箱中运行智能体。没有 seatbelt 或 sandbox-exec 配置文件,没有 Landlock,也没有容器。智能体进程以你的身份、在你的环境中运行。隔离来自上面那层策略机制和 git,而不是来自内核。

你真正得到的是 worktree 隔离:子智能体可以在一个临时的 git worktree 中运行,这样它的文件和 Shell 活动就不会碰到你的工作树,它的产出也落在自己的分支上。过期的 worktree 会在后台被清理——默认每个仓库最多 8 个,每 6 小时清理一次。

面对任何不可信的东西,请把这几层叠起来用:在 worktree 里运行它,把 访问模式 设为 只读,并把 禁止访问路径 填好。如果你需要内核级别的隔离,请把 ORG-2 放进一台你自己掌控的虚拟机或容器里运行。

智能体所工作的仓库中的密钥卫生

遍历文件的工具使用的是能识别 .gitignore 的遍历器,因此被忽略的文件不会因为一次宽泛的搜索就被卷进上下文;智能体在会话开始时拿到的工作区摘要也会跳过点文件,只有 .gitignore.env.example 除外。这降低了意外暴露的概率,但它不是一道边界——一个拥有读取权限、又知道具体路径的智能体,仍然可以读取被忽略的文件。请把真正的机密放在工作区目录之外,把 ~/.ssh~/.aws 加进 禁止访问路径,对智能体不该看到的值使用会话内的密钥输入框,并在共享一个会话之前先审阅回放。

有哪些数据被传输,传给了谁

发给你的模型服务商: 提示词、对话历史,以及智能体拉进上下文的任何文件内容或命令输出——它们用你自己的密钥,从你的机器直接发出,不经我们代理。参见 API 密钥

同步时发给 ORG-2: 只有你的 Session 访问 模式针对 允许的工作区 所允许的那些内容,而完整回放只限于你批准过的请求。绝不包括你的 API 密钥,也绝不包括你的源码树。参见云端与同步

除此之外没有别的。 没有崩溃上报器,也没有第三方分析 SDK。更新经过密码学签名,并用内置在应用中的密钥进行验证。

诊断与遥测

诊断是默认开启、需要你主动关闭的,而不是需要你主动开启的。 privacy.diagnosticsLevel 的默认值是 default,应用默认每 12 小时上传一份聚合快照(可在 1 到 24 之间配置)。

采集到的是聚合值和分桶值,绝不是内容本身:应用版本与启动次数、操作系统家族与粗粒度版本、CPU/内存以及应用内存的分桶、按内部操作名统计的成功与失败次数、按类别统计的会话数、工作区数量,以及在 default 级别下的模型名称和每个模型的运行次数。其中没有提示词、消息、文件内容、文件路径、仓库名、主机名或用户名。身份标识是每次安装时生成一次的随机 UUID——没有邮箱,也没有账号 ID。

清洗器按白名单工作:它会新建一条记录,只把识别得出的字段拷贝进去,并对每个字符串做长度限制,因此未被识别的键不可能被转发出去。快照会排队写入 ~/.orgii/diagnostics/queue.jsonl,再通过 HTTPS 上传到一个由 ORG-2 运营的端点,该端点还会记录它的边缘节点观测到的国家。

要修改它,请编辑 ~/.orgii/settings.jsonc

json
{
  "privacy.diagnosticsLevel": "performance-only",
  "privacy.offlineMode": true
}
  • performance-only 会丢掉使用类聚合数据,保留性能计数器。
  • off 是一个最小化档位,而不是总开关——它仍然会发送一次最小化的存在性心跳,其中带有会话数、工作区数和外部工具数,以及安装 ID。
  • privacy.offlineMode: true 才是真正的总开关。 它会禁用非必要的对外网络请求,包括所有诊断数据上传。

注意: 目前设置界面里还没有针对这些键的开关。编辑 ~/.orgii/settings.jsonc 是修改它们的受支持方式。

云端路径:传输、存储与组织隔离

与 ORG-2 Cloud 之间的流量走 HTTPS。登录使用魔法链接配合 PKCE,交换在你的浏览器中完成,令牌通过 URL 片段返回桌面应用,因此它们不会到达任何 Web 服务器,也不会进入其日志;只有固定的一组桌面回调地址会被接受,这堵死了开放重定向的滥用空间。

组织之间的隔离是在数据库里强制执行的:每一张表都启用了行级安全,客户端从不直接对表发起原始查询。所有访问都经由存储过程,它们会在读写之前检查组织成员身份——在若干场景下还会检查管理员或所有者角色——而这些存储过程只授予已认证用户。

关于存储,要保持清醒:这套 schema 没有为会话负载增加任何应用层或端到端加密。同步上来的回放按其到达时的样子存储,保护它的是行级安全和平台磁盘加密,而不是一把只有你才持有的密钥,因此任何拥有合法数据库管理权限的人都能读到它。正因如此,Session 访问 默认为 关闭,而完整回放需要逐次请求批准。自托管路径会为它的设置 SQL 所创建的每一张表启用行级安全,但密钥保管、备份和网络暴露面都归你自己负责。

报告漏洞

不要为安全漏洞创建公开的 GitHub issue。请发邮件到 security@orgii.ai,写明问题描述与影响、复现步骤、受影响的版本与平台,以及你已知的任何缓解措施。我们也支持 PGP 加密邮件,可以索取。

我们公开的目标是:48 小时内确认收到,5 个工作日内完成定级,严重和高危问题在定级后 14 天内出补丁、中低危问题 90 天内出补丁,并在补丁发布之后进行协同披露。除非报告者希望匿名,否则我们都会署名致谢;另外,只有最新版本会收到安全补丁。

下一步

  • 云端与同步 —— 每种后端存储什么,以及共享模式是怎么工作的。
  • API 密钥 —— 添加服务商密钥,以及哪些智能体会用到它们。
  • 工具 —— 每个内置工具能碰到什么。
  • MCP —— 在连接一个 MCP server 之前如何审查它。

有问题?欢迎到 ORG-2 Discord 提问。 Discord