组织
ORG-2 中的组织(ORG)是什么、如何创建、如何邀请成员、角色与权限如何划分,以及哪些数据归属于它。
组织(ORG)是 ORG-2 中一切共享内容的归属容器。会话、项目、工作项、评论、分享链接和配额,都恰好归属于一个 ORG。ORG-2 有意做成这样:产品把智能体当作组织结构中长期存在、可被观察的同事,而不是一次性的助手——于是人和智能体加入同一个 ORG,出现在同一份成员名单里,围绕同一份共享上下文工作。
用 ORG-2 并不一定要用 ORG。在你添加一个真正的 ORG 之前,会话都在本地运行,并归在侧边栏组织选择器的 我的个人组织(My Personal Org)下。
运行 ORG 的两种方式
ORG-2 是 open core 的。有两种后端,它们支持的角色并不相同。
| 自托管 Supabase | ORG-2 Cloud | |
|---|---|---|
| 成本 | 免费——用你自己的 Supabase 项目 | 付费档位,托管服务 |
| 由谁搭建 | 你自己,粘贴一段设置 SQL | 登录即用 |
| 角色 | admin、member | owner、admin、member、viewer |
| Schema | public.orgii_* 表 | org2_cloud schema |
注意: 在自托管 Supabase 上,会话协作和群组 issue 工作流在 ORG-2 的 README 中被标记为进行中。请预期会遇到粗糙之处,并阅读协作,了解每条路径上真正实现了什么。
创建 ORG
在桌面应用中,打开侧边栏的 ORG 列表,选择 添加 ORG。
- 选择 组织来源:Local(只有名字的容器,不做同步)或 Supabase Sync。
- 选了 Supabase Sync 之后,再选 设置模式:创建 或 加入。
- 在创建模式下,填写 ORG 名称、显示名称(Join as)、Supabase Project URL 和 Supabase anon key。
- 点击 复制设置 SQL,然后点 打开 Supabase SQL Editor,粘贴并运行。回到应用点击 验证设置——你应该看到 Supabase 设置已验证。
- 点击 创建。
这段设置 SQL 会创建 orgii_orgs、orgii_members、orgii_invites、orgii_projects、orgii_work_items、orgii_sessions、orgii_chat_messages 以及快照相关的表,另外再建一个私有的 orgii-session-snapshots 存储桶。全程不需要任何终端命令。
创建 ORG 会让你成为它的 admin。在 ORG-2 Cloud 上,create_org 让你成为的是 owner,并同时把你登记为组织所有者和账单所有者。
邀请成员与接受邀请
当你创建一个 Supabase Sync 的 ORG 时,ORG-2 会立刻生成一个邀请链接,显示在 邀请已生成 下方,旁边配一个 复制邀请 按钮。之后你可以在 ORG 面板的 成员 标签页里生成更多——创建邀请 会把新链接复制到剪贴板。只有 ORG 管理员可以创建邀请链接。
邀请链接形如 orgii://collaboration/join?sync=supabase&supabase=…&invite=…,其中带上了项目 URL(也可以带上 anon key),这样接收方不用手动输入。点击链接会打开 ORG-2,加入表单已经预填好;把链接——或者只把裸的邀请码——粘贴进 邀请链接或代码 同样可行。邀请默认可用 10 次。
接受邀请的做法:添加 ORG → Supabase Sync → 加入,粘贴邀请,填好 显示名称,再选择 我的身份——Human 或 Agent。身份类型是成员的一等属性,正是它让一个 ORG 能把人和智能体收在同一份名单里。只有 Human 身份可以在群聊中发言。
在 ORG-2 Cloud 上,邀请由管理员创建,创建时附带一个角色(admin、member 或 viewer)、一个可选的过期时间,以及默认为 10 的可用次数。接受邀请受席位限制:如果 ORG 已经达到成员上限,接受会以 ORG2_QUOTA_EXCEEDED 失败。已经是活跃成员的人再次接受邀请,绝不会把自己的角色降下来。
角色与权限
自托管 Supabase 有两种角色:
| 角色 | 可以做什么 |
|---|---|
admin | 创建邀请链接、移除成员,外加 member 能做的一切 |
member | 共享会话元数据、请求回放、在群聊中发言、查看项目和工作项 |
ORG-2 Cloud 有四种。下表中凡是写「管理员」的,都指 owner 或 admin。
| 操作 | owner | admin | member | viewer |
|---|---|---|---|---|
| 读取成员名单、会话、项目、工作项 | 可以 | 可以 | 可以 | 可以 |
| 推送并读取自己的会话、发表评论、解决线程 | 可以 | 可以 | 可以 | 见下方注意 |
| 创建、撤销、列出邀请 | 可以 | 可以 | 不可以 | 不可以 |
| 移除成员;修改成员角色 | 可以 | 可以 | 不可以 | 不可以 |
| 重命名 ORG;设置仓库范围;设置共享下限 | 可以 | 可以 | 不可以 | 不可以 |
| 查看 ORG 的订阅 | 可以 | 可以 | 不可以 | 不可以 |
| 转让所有权 | 可以 | 不可以 | 不可以 | 不可以 |
| 删除 ORG | 可以 | 不可以 | 不可以 | 不可以 |
注意:
viewer是邀请和角色变更都接受的合法角色值,但后端的写入 RPC 目前只校验成员身份和是否为管理员,并不区分viewer和member。现阶段请把viewer当作一个意图标记,而不是被强制执行的只读边界。
数据库里还强制了两条护栏。一个 ORG 永远不能落到没有任何活跃 owner 或 admin 的状态——作为最后一个管理员降级、被移除或退出,都会以 ORG2_LAST_ADMIN 失败。而 owner 角色只能通过一次显式的所有权转让来易手。
哪些数据归属于 ORG
下面每一类记录都带着 org_id,读取时都会校验活跃成员身份:
- 会话 —— 会话元数据和回放事件分段,包括存放在私有
replay桶里的已冻结分段 - 项目与工作项 —— 带有按 ORG 划分的工作项前缀和短 ID 计数器
- 评论 —— 会话与事件的评论线程
- 会话分享 —— 定向授权和分享链接令牌
- 仓库范围 —— 允许其会话进入该 ORG 的仓库白名单
- 权益与用量 —— 套餐、配额,以及按月的用量流水
- 在线状态与变更信号 —— 每个 ORG 一条私有实时频道,
presence:org:<orgId>
智能体的记忆不按组织划分。跨会话记忆留在你自己的机器上,没有任何机制把它同步进 ORG。
在多个 ORG 之间切换
侧边栏有一个组织选择器。它里面始终有 我的个人组织(本地默认项),接着是你的本地项目组织,然后才是你已同步的 ORG。选中某一个,会话列表就会过滤到该 ORG。打开一个 ORG 会进入它的面板,其中有 Work Items、项目、Sessions、成员、群聊 和 设置 标签页。
在 ORG-2 Cloud 上,注册时会自动为你开通一个以你命名的个人工作区 ORG(例如 Ada's workspace),归你所有,这样一个新账号从第一天起就有地方配置仓库范围、有地方把人邀请进来。
退出、移除与转让
管理员在 成员 标签页用 移除 把某人移出。在 ORG-2 Cloud 上的规则是:
- 移除你自己 走不通移除这条路径;请改用退出。
- 退出 对 owner 是被禁止的——你会拿到
ORG2_OWNER_MUST_TRANSFER。先转让所有权,或者直接删除这个 ORG。 - 转让所有权 要求你是当前的 owner,且目标是活跃成员。它会在一个原子步骤里把对方设为
owner,同时把你降为admin。 - 删除 ORG 只有 owner 能做。它会软删除该 ORG,把它的会话打上墓碑标记,并把每一条活跃的成员关系标记为已移除,从而把还开着的客户端踢下线。
同样是在 Cloud 上,移除和退出都是软操作:成员关系记录翻转成 removed 并记下时间戳。之后接受一份新的邀请就会重新激活它。
限制与配额
ORG-2 Cloud 按套餐目录对每个 ORG 强制执行配额。
| Free | Pro | Team | Enterprise | |
|---|---|---|---|---|
| 成员数 | 3 | 按购买的席位数 | 按购买的席位数 | 定制 |
| 仓库范围数 | 1 | 5 | 20 | 不限 |
| 每月同步会话数 | 50 | 500 | 5,000 | 1,000,000 |
| 每月回放上传量 | 200 MB | 2 GB | 20 GB | 1 TB |
| 回放存储量 | 1 GB | 10 GB | 100 GB | 10 TB |
| 回放时间窗 | 最近 7 天 | 订阅期内完整 | 订阅期内完整 | 完整 |
| 实时在线状态 | 无 | 有 | 有 | 有 |
有两点行为值得记住。保留策略是软性的:回放时间窗是读取时的可见性过滤,从不真的删除数据——把它放宽(升级套餐)会立刻让更早的会话重新可见,而「订阅期内完整」的意思是:一旦订阅失效,时间窗会缩回免费版的那一档,但不会有任何数据被抹掉。另外,被移除的仓库范围仍然占着名额 一段冷却期(免费版 7 天,付费版 30 天),所以你没法靠来回替换绕过仓库数量上限。
超出配额时,越线的那个操作会抛出 ORG2_QUOTA_EXCEEDED,而不是悄悄把数据丢掉。
下一步
有问题?欢迎到 ORG-2 Discord 提问。 Discord。