工作区管理
wescraft 的工作区通过 Cell 实现数据隔离,个人版和团队版有不同的工作区组织方式。
个人版工作区
默认工作区
个人版自动创建 personal Cell 作为默认工作区:
| 特性 | 说明 |
|---|---|
| Cell ID | personal |
| 数据隔离 | 完全独立 |
| 用户 | 单用户 |
| actor | 固定 "local" |
数据位置
所有数据存储在用户本地:
~/Library/Application Support/wescraft/ # macOS
~/.local/share/wescraft/ # Linux
├── hypervisor.db # Cell 注册表
├── cells/personal/ # 个人 Cell
│ ├── meta.db # 元数据
│ ├── sessions.db # 会话
│ ├── state.db # 运行时状态
│ ├── knowledge/ # 知识库
│ ├── skills/ # 技能
│ └── workspace/ # 工作产出
└── db/wescraft.db # 应用数据
团队版工作区
团队 Cell
团队版使用 team-{id} 作为 Cell ID:
| 特性 | 说明 |
|---|---|
| Cell ID | team-{teamID} |
| 数据隔离 | 团队独立 |
| 用户 | 多用户 |
| actor | SSO user_id |
共享资源
团队 Cell 内共享的资源:
| 资源 | 共享范围 |
|---|---|
| 知识库 | 全团队 |
| Agent | 全团队 |
| Skill | 全团队 |
| 页面 | 全团队 |
| 数据库 | 全团队 |
隔离资源
团队 Cell 内按 actor 隔离的数据:
| 资源 | 隔离方式 |
|---|---|
| 记忆 | per-actor(引擎层) |
| 会话 | per-actor(引擎层) |
| Token 用量 | per-actor(引擎层) |
工作区切换
个人 ↔ 团队
用户可以在个人工作区和团队工作区之间切换:
| 切换 | 效果 |
|---|---|
| 个人 → 团队 | 看到团队共享内容 |
| 团队 → 个人 | 只看到个人内容 |
切换影响
切换工作区(Cell)后:
| 资源 | 行为 |
|---|---|
| Tab | 完全切换 |
| 页面 | 切换为目标 Cell 的 |
| 知识库 | 切换为目标 Cell 的 |
| 记忆 | 切换为目标 Cell 的 |
| 收集箱 | 切换为目标 Cell 的 |
| 文件索引 | 切换为目标 Cell 的 |
Cell 边界选择
判断标准
如何决定用个人 Cell 还是团队 Cell:
| 问题 | 选择 |
|---|---|
| 数据归谁? | 个人数据 → personal |
| 谁需要访问? | 团队 → team-{id} |
| 谁付费? | 个人 → personal |
| 合规要求? | 部门 → team-{dept} |
私有环境需求
如果团队成员需要完全私有的环境,正确做法是给他开一个个人 Cell,而不是在团队 Cell 里做 actor 过滤。
配置管理
工作区设置
每个工作区独立的设置:
| 设置 | 说明 |
|---|---|
| Provider | 模型提供商配置 |
| Governance | 治理策略 |
| Compliance | 合规类别 |
| Quotas | 配额限制 |
注意事项
- 个人版默认单工作区
- 团队版支持多工作区切换
- 工作区 = Cell,数据物理隔离
- 切换工作区 = 切换所有数据面
- 私有环境需求 = 独立 Cell