CellSpec 总览

CellSpec 是 wesgine Cell 的声明式配置,定义 Cell 的所有可配置属性。


分层结构

CellSpec 使用 Go struct embedding 分层:

type CellSpec struct {
    ID string                      // 不可变
    CellCoreSpec                   // 核心配置
    CellAdapterSpec                // 外设配置
    CellSchedulingSpec             // 调度配置
    CellPortableSpec               // 可移植配置
}

Go 嵌入保持向后兼容:spec.Timezone 等价 spec.CellCoreSpec.Timezone。


CellCoreSpec

字段可变性说明
Timezoneimmutable时区
Localemutable语言区域
Compliancemutable合规类
Governancemutable治理配置
EnginePathsmutable引擎保留路径
RedactorRulesmutable脱敏规则

CellAdapterSpec

字段说明
ChannelsIM 渠道
Email邮箱账号
MCPsMCP Server
Cron定时任务声明
HITLHITL 配置
HeadlessBrowserHeadless 浏览器
PlaywrightPlaywright 自动化
Desktop桌面自动化
STT语音转写
PluginsPlugin Runtime

CellSchedulingSpec

字段说明
Quotas配额
CycleDetect循环检测配置
FaultPolicyOverride故障策略覆盖
SkillPolicy技能策略
InboxCapInbox 容量
Roles角色配置

CellPortableSpec

字段说明
Export/Import 行为打包/解包配置

Provider 相关字段

字段说明
ProviderStrategyown_only / shared_only / own_first / shared_first
PrivateProvidersCell 私有 Provider(SecretRef)
AllowedModels允许的模型列表
LogicalModelGroups逻辑模型分组
DisallowActorProvider禁止 Actor 自带 Provider

ProviderStrategy 自动推导

条件结果
只有私有own_only
只有共享shared_only
两侧都有必须显式声明
两侧都空保持 unset

SDK Hooks(json:"-")

进程内回调,不序列化:

Hook说明
ProviderLiveKeyFnlive-token 回调(wes:/org:)
HostEnvironment宿主环境能力注入
QualityGate质量门回调
EditPatrol编辑巡查回调
OnStartedCell 启动后回调
PostRunFnRun 结束后回调
FileSegmenter文件分段器
EditMatchFallback编辑匹配 fallback
ToolExecutorHooks工具执行钩子

GetOrCreate 前必须绑齐这些 hook(INV-CELL-08)。


字段可变性标签

type CellSpec struct {
    ID       string `wesgine:"immutable"`
    Timezone string `wesgine:"immutable"`
    Locale   string `wesgine:"mutable"`
    // ...
}
标签含义
immutable创建后不可变
mutable可通过 UpdateSpec 修改
restricted有条件修改

SpecPatch

部分更新 CellSpec:

hyp.Cells().UpdateSpec(ctx, cellID, SpecPatch{
    Quotas:     &newQuotas,
    Governance: &newGov,
})

SpecPatch 只包含 mutable/restricted 字段。


安全默认值

场景默认行为
未声明 GovernanceDefaultGovernance() = ModeOpen
未声明 ProviderStrategy单侧非空自动推导
未声明 Quotas合理默认配额
未声明 CycleDetect默认阈值

相关文档