Cell 最佳实践
Cell 粒度选择、CellSpec 配置、Provider 策略、治理策略和配额设置的实践建议。
Cell 粒度选择
Cell 是唯一隔离域(AX-1),粒度选择决定了数据边界、合规边界和计费边界。
| 粒度 | 适用场景 | 优点 | 代价 |
|---|---|---|---|
| per-user | 个人桌面产品 | 最强隔离,数据完全私有 | 无法共享 KB/Agent/记忆 |
| per-workspace | IDE 编程工具 | 项目隔离,CKG 独立 | 切 workspace = 换 Cell |
| per-department | 企业多部门 | 部门内共享 Agent/KB | 需 Actor 隔离运行时行为 |
| per-team | 小团队协作 | 灵活共享 | 需明确 admin 角色 |
判断标准
- 数据边界:一个人的数据 vs 一个团队的数据?→ 选后者的粒度
- 合规边界:GDPR 请求给一个人 vs 给一个组织?→ 选后者
- 计费边界:谁付账?→ 谁的粒度做 Cell
CellSpec 配置建议
immutable 字段(创建后不可变)
ID:使用有意义的前缀(dept-、ws-、user-)Timezone:设为用户实际时区
存储
不需要配置。路径由引擎从 (DataDir, ID) 推出,三层 SQLite 自动管理。
DenyPaths
始终包含 hypervisor.db 和应用配置文件:
DenyPaths: []string{
filepath.Join(dataDir, "hypervisor.db"),
configFilePath,
}
Provider 策略选型
| 策略 | 含义 | 适用场景 |
|---|---|---|
own_only | 仅用 Cell 私有 Provider | 个人桌面(自己的 API Key) |
shared_only | 仅用 Hypervisor 共享池 | 企业统一管理密钥 |
own_first | 优先私有,fallback 到共享 | HR 部门(PII 优先私钥) |
shared_first | 优先共享,fallback 到私有 | 通用场景 |
自动推导:单侧池非空时自动推导。两侧皆非空时必须显式声明,否则 ErrProviderStrategyUnset。
治理策略选型
GovernMode
| Mode | Yellow Zone 行为 | 典型用途 |
|---|---|---|
open(默认) | Allow + Audit | 编程、助手、通用 |
locked | Deny | 金融合规、展示 |
Compliance 预设
// 通用
governance.StandardPreset() // open + allow
// 金融/审计
governance.RegulatedPreset() // locked + internal_only
// 展示/Demo
governance.ReadonlyPreset() // locked + deny
注意:Compliance 只决定 RedactorRules + GuardrailsRequired,不直接管理 DenyPaths。
配额设置建议
计算配额
| 配额 | 建议值 | 说明 |
|---|---|---|
| MaxConcurrentRuns | 3~5 | 单 Cell 并发 Run 数 |
| TokensPerMinute | 100,000 | 防止单用户打满 Provider |
| TokensPerDay | 2,000,000 | 日限额 |
外设配额
| 配额 | 建议值 |
|---|---|
| MaxIMChannels | 5 |
| MaxMCPServers | 10 |
| MaxCronJobs | 20 |
| MaxEmailAccounts | 3 |
| MaxSkillsInstalled | 50 |
配额判据在唯一增长点执行(INV-QUOTA-05),超限返回 429。
常见反模式
| 反模式 | 正确做法 |
|---|---|
| 在部门 Cell 内给 Agent/Skill 加 per-actor 过滤 | 结构资源归 Cell,运行时行为归 Actor |
| 想让员工有私有 Agent/KB → 加 owner_id | 给员工开个人 Cell |
CellSpec 填了 Skills 字段 | 已删除,通过 Skills() handle 装配 |
| 不声明 ProviderStrategy 但两侧池都有 | 必须显式声明 |
相关文档
- Boot 模式 →
boot-patterns.md - Provider 配置 →
provider-config.md - 治理架构 →
governance.md