oh-my-muse/design-docs/架构-04-状态机与约束清单.md
zizi 8f04dc3f0c docs(设计): 蒸馏测试倒逼剩余缺口G2/G3/G8/G9/G10
- G8 安全时长钉死:handoff token 15min(架构-04 §10.1)/下载凭证 5min(§12.2)/高危安全操作冷却 24h(§3.2)
- G9 风险/冲突分级三级枚举 none/soft/hard,hard 禁静默一键确认(产品-02 §10.4)
- G3 改写洗白判据:外部 lineage 限制不可经改写解除,原创确认非洗白通道(产品-02 §6.4)
- G10 灰度通过/回退/证据不足准则,照对照实验范式(流程-02A §5.1)
- G2 计费分阶段:本阶段以额度调整 ledger 为可测合同,完整四态列后续阶段(产品-02 §10.8)
- 同步 专题-08 §7.3 与缺口跟踪文档:10 项缺口已全部拍死,G5/G6/G7 留回放基线(待执行)
2026-07-31 00:26:40 +08:00

760 lines
43 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 架构-04状态机与约束清单
- 版本v7
- 更新日期2026-07-20
- 目标读者:架构 / 后端 / 前端 / 测试 / 产品
- 阅读时间45-60 分钟
- 边界说明:本文件是 Muse 生命周期、状态流转和不可绕过约束的架构层单一来源;状态值是概念层合同,具体字段名、表结构和接口路径由后端阶段承接。系统边界见 `架构-01-系统全貌与边界上下文.md`,核心模型见 `架构-02-核心数据结构与双轨模型.md`
- 变更记录v72026-07-20§5.2.1 登记正文实验候选与生产候选隔离、编辑版本重检、detector 绿证据、`accept_preflight` 和 CAS 状态约束;实验阶段不改 API/DB。v62026-05-24收束 Muse 生命周期、来源传播和不可绕过约束。
## 1. 状态机总原则
本文件回答三个问题:
1. 每类核心对象允许如何流转。
2. 哪些前置条件、后置条件和失败路径不能被实现绕过。
3. 授权、来源、配置、任务、导出和审计如何在状态变化中保持可追溯。
全局原则:
- 状态机按 owner BC 写入,不能由页面、聚合视图或外部服务直接改写。
- 状态变化必须保留 actor、owner、object、action、version、source、authorization snapshot 和审计上下文。
- AI、市场资产、外部知识、用户智能体和系统任务不能直接写作品事实。
- 已确认 Canonical 不因撤权、下架、召回或外部失败自动回滚;但受限来源不得继续用于新生成、新绑定、新导出许可范围或新的来源型知识确认。
- 高影响操作必须支持影响预览、二次确认、分权复核、幂等、取消、失败恢复和审计。
## 2. 通用状态语义
### 2.1 通用任务状态
| 状态 | 含义 | 允许离开方式 | 约束 |
|---|---|---|---|
| queued | 已创建,等待执行 | running / canceled | 必须有 owner、任务类型、幂等键或去重上下文 |
| running | 执行中 | succeeded / failed / canceled | 必须记录配置快照和授权快照 |
| partial_completed | 批量任务部分子任务完成 | running / succeeded / failed / canceled | 只允许作为父任务聚合视图;子任务仍必须有各自终态 |
| succeeded | 成功完成 | 终态 | 必须满足对应后置条件 |
| failed | 失败 | 终态或新任务重试 | 失败不得静默写 Canonical |
| canceled | 用户或系统取消 | 终态 | 取消不得保留可继续消费的待审写入 |
### 2.2 通用版本状态
| 状态 | 含义 | 允许离开方式 | 约束 |
|---|---|---|---|
| draft | 草稿 | review / active / archived | 可编辑但不可被正式运行链路使用 |
| review | 待复核 | active / rejected / draft | 高风险版本必须进入此状态 |
| active | 当前可用 | disabled / archived / superseded | 运行任务读取 active 快照后不得中途混用新版本 |
| disabled | 已停用 | active / archived | 停用后不得进入新任务 |
| superseded | 被新版本替代 | archived | 历史任务仍可追溯 |
| archived | 归档 | 终态 | 不能再被新任务引用 |
### 2.3 通用来源状态
| 状态 | 含义 | 对后续动作的影响 |
|---|---|---|
| active | 来源有效 | 可按许可参与检索、生成、绑定或确认 |
| stale | 来源快照与当前来源不匹配 | 待审确认禁用,需重新提取或重验 |
| revoked | 授权撤销 | 禁止新生成、新绑定、新来源型确认和受限导出 |
| delisted | 市场下架 | 禁止新获取和新安装;已授权使用按治理策略限制 |
| recalled | 召回 | 影响已安装、已绑定、运行中任务、导出和未确认对象 |
| owner_missing | 源 owner 缺失或权限转移不明 | 禁止模板化、参考写入、AI 上下文绑定和高风险使用 |
| disabled | 来源变化后直接停用 | 禁止继续使用,等待恢复或终态 |
| blocked | 合规、安全、侵权或隐私阻断 | 禁止继续使用,保留审计和申诉路径 |
来源变化时直接决策 active 或 disabled不使用中间 needs_recheck 状态。
### 2.4 MetaSchema 与配置版本写入约束
MetaSchema 是 MetaSchema BC独立模块的治理版本不是 Content 普通内容状态。
硬约束:
- MetaSchema 发布、回滚、停用和影响预览只能由 MetaSchema facade-api 写入并进入高危审计。admin 写入全局定义,用户可在作品级覆盖扩展字段,业务模块通过 facade-api 只读消费。
- 如果物理表因 yudao-cloud fork 或旧模块兼容暂落 ContentContent 也只能承载/消费投影,不能绕过 MetaSchema facade-api 修改字段结构、可见性、AI 上下文或导出语义。
- MetaSchema 版本变化只能让投影、任务、上下文组装、导出和知识确认进入 stale 或 disabled不能自动改写正文、知识、规划或 Narrative State Canonical。
## 3. 账号、权限和安全状态
### 3.1 用户状态
| 状态 | 含义 | 允许进入方式 | 允许离开方式 |
|---|---|---|---|
| active | 正常可用 | 注册完成、撤销删除 | pending_deletion / suspended |
| pending_deletion | 用户申请删除,处于缓冲期 | 用户本人确认删除 | active / deleted |
| suspended | 安全或合规限制 | 管理员治理动作 | active / deleted |
| deleted | 已删除或匿名化完成 | 删除任务完成 | 终态 |
硬约束:
- 删除、封禁、恢复都必须写审计。
- 删除不得破坏法务、审计、交易、授权和安全留存例外。
- 管理员不能通过用户状态绕过作品事实确认。
### 3.2 安全事件状态
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| detected | 发现风险 | pending_user_confirm / resolved / dismissed |
| pending_user_confirm | 等待用户本人确认 | resolved / expired |
| resolved | 已处理 | 终态 |
| expired | 确认过期 | 终态或重新发起 |
| dismissed | 被有权角色关闭 | 终态 |
硬约束:
- 敏感导出、下载、二次验证、异常登录和凭证失效必须进入安全事件或下载审计。
- 安全事件只能限制权限或提示用户,不能直接改写作品正文、知识或市场资产事实。
- 高危安全操作(会话撤销 `session_revoked`、敏感导出确认等)设 **24 小时撤销/冷却窗口**`pending_user_confirm` 超过 24 小时未确认即转入 expired。该窗口由质量/安全策略登记,可调但必须显式登记。
### 3.3 个人中心聚合状态
个人中心不是事实 owner但它聚合多个 owner 的账户视图。
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| fresh | 聚合结果与 owner 数据一致 | stale / hidden |
| stale | owner 数据、授权、用量或安全状态变化,等待刷新 | fresh / hidden |
| hidden | 权限或隐私限制导致不可展示 | fresh / stale |
硬约束:
- Account Profile 和会话安全归 Identity/AuthUsage Record、Entitlement Snapshot、Personal Center Account Summary、下载审计归 Account/Usage/Audit。
- License Record、Purchase Record、Publish Record、Asset Summary 必须从 Marketplace/Asset、Agent、Knowledge 或 Work owner 聚合,个人中心不能反写这些 owner 事实。
- Security Event Export 只能导出用户本人有权访问的安全事件摘要,导出任务和下载凭证仍受导出状态机约束。
## 4. 作品、正文和导入解析状态
### 4.1 作品生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| active | 正常创作中 | read_only / archived / pending_deletion |
| read_only | 权限、来源、封禁、召回或安全原因导致只读 | active / archived / pending_deletion |
| archived | 用户归档 | active / pending_deletion |
| pending_deletion | 用户请求删除,等待影响预览或缓冲期结束 | active / deleted |
| deleted | 已删除或按策略匿名化 | 终态 |
硬约束:
- 作品删除、归档、恢复必须先做影响预览覆盖章节、正文、规划、Local KB、导出任务、市场发布状态、知识来源绑定、智能体槽位和运行中任务。
- 已发布为市场作品资产或存在授权记录的作品,删除不能直接破坏市场审计、授权记录、发布快照和法务留存例外。
- read_only 只能限制新写入、新生成、新导出或新绑定,不能静默改写已确认 Canonical。
### 4.2 章节生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| active | 正常可编辑 | archived / pending_deletion |
| archived | 章节归档或隐藏 | active / pending_deletion |
| pending_deletion | 等待删除影响预览或确认 | active / deleted |
| deleted | 已删除或按策略移除 | 终态 |
硬约束:
- 删除章节必须处理 Block、候选、知识草稿、章节解析结果、规划项、叙事状态和投影影响。
- 已确认知识不自动回滚;如果来源章节被删除,相关来源快照进入 stale 或 disabled后续来源型确认和导出按来源状态限制。
### 4.3 正式规划项与叙事状态生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| active | 当前正式可用 | superseded / invalidated / archived |
| superseded | 被新规划或新叙事状态替代 | archived |
| invalidated | 来源、章节、角色、事件或权限变化导致需重验 | active / archived |
| archived | 历史记录 | 终态 |
硬约束:
- 正式规划项只能来自用户确认、用户手动保存或明确 owner 写入规则。
- Narrative State 必须有真实持久化载体,不能只靠 MetaSchema。
- 规划项和 Narrative State 进入 AI 上下文前必须校验来源、版本、可见性和 `aiContext` 语义。
### 4.4 作品导入状态
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| not_imported | 未导入旧稿 | importing |
| importing | 导入中 | imported / import_failed / canceled |
| imported | 导入完成,正文已初始化 | parsing / archived |
| import_failed | 导入失败 | importing / archived |
| canceled | 用户取消导入 | 终态或重新导入 |
硬约束:
- 导入正文可以初始化 Canonical 正文。
- 导入失败不得留下半写入正文;若支持分批导入,必须能解释已写范围和回退范围。
- 导入后的解析结果仍进入 Shadow不直接写 Local KB。
### 4.5 全书解析任务状态
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| not_parsed | 未开始解析 | queued |
| queued | 已排队 | parsing / canceled |
| parsing | 解析中 | parsed / parse_failed / canceled |
| parsed | 已完成一次解析结果生成 | 终态或新版本重新解析任务 |
| parse_failed | 解析失败 | queued / canceled |
| canceled | 已取消 | 终态 |
硬约束:
- Import task/context 归 Work/ContentParse Job 和 Chapter Parse Result 归 AI OrchestrationChapter Review 是解析结果审阅态Knowledge BC 只在章节审阅确认后创建或更新 Knowledge Draft。
- 解析任务只生成章节解析结果,不写 Canonical 知识,也不直接创建正式 Knowledge。
- 拆分切块、静态检查、入 RAG 和解析保护链路是系统保护节点,用户智能体不可替换。
- 重新解析必须形成新解析批次或版本,不得混用旧章节确认状态。
### 4.6 文本块写入状态
文本块(Block)本身不需要复杂生命周期,但每次写入必须满足:
- 必须带 expectedRevision。
- expectedRevision 必须等于当前 revision。
- 成功后 revision 单调递增。
- 写入后可触发异步提取或投影,但异步失败不得回滚正文。
- 如果正文来自 AI、市场智能体/知识库、外部知识、授权知识来源或未来已开启的作品资产参考,当前正文 revision 必须写 Block Source Attribution后续知识草稿、生成上下文、导出和来源传播都必须从当前正文追溯该来源。
## 5. AI 任务、候选和规划状态
### 5.1 AI 生成任务状态
```text
queued -> running -> succeeded -> terminal
queued -> canceled -> terminal
running -> failed / canceled
```
硬约束:
- 任务启动时必须固化配置快照、系统功能链路版本、智能体槽位快照、知识来源授权快照和上下文摘要。
- 任务启动时必须生成 Agent Runtime Permission Envelope所有工具调用、上下文读取和外发请求都由服务端执行边界校验。
- 输入合规、权限过滤、来源状态校验、质量门控和输出合规不可绕过。
- 任务成功只能生成候选、草稿、风险、质量结果或记录,不能直接写正文、规划正式项或 Local KB。
### 5.2 AI 候选生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| pending_review | 待用户处理 | accepted_as_is / merged_after_edit / discarded / expired / invalidated |
| accepted_as_is | 原样接受,正文写入成功 | archived |
| merged_after_edit | 修改后合并,正文写入成功 | archived |
| discarded | 用户丢弃 | archived |
| expired | 超时过期 | archived |
| invalidated | 来源、权限、文本 revision、合规或质量状态变化导致不可接受 | archived 或重新生成 |
| archived | 终态历史 | 终态 |
硬约束:
- 候选接受前不改正文。
- 原样接受或修改后合并只写正文 Canonical 和候选 Archive。
- 如果候选包含 AI、市场智能体/知识库、外部知识、授权知识来源或未来已开启的作品资产参考,接受或合并后写入的正文 revision 必须同步写 Block Source Attribution。
- 接受候选不自动确认知识草稿;关联草稿保持待确认或因修改后合并失效。
- 修改后合并必须让旧知识草稿失效,并基于最终正文重新提取。
- 候选来源撤权、下架、召回、owner 缺失、文本 revision 冲突或合规阻断时,接受和合并禁用。
### 5.2.1 正文候选的实验隔离与接受子状态
正文实验候选和生产候选共享检测规则,但不共享接受资格。
| 对象 | 允许流转 | 不可绕过约束 |
|---|---|---|
| 诊断/评测正文候选 | `draft -> checking -> passed / rejected / failed / invalid_unstable` | `acceptanceEligible=false` 为不变量passed 只表示本次检测或评测完成,候选永远不能进入 `accept_preflight` 或 Canonical |
| 生产正文候选版本 | `draft -> checking -> shadow_ready -> accept_preflight -> accepted_as_is / merged_after_edit / revision_conflict / authorization_stale / source_stale / quality_stale` | 只有 detector 绿且报告绑定当前 candidateVersion、candidateSha256、contextSnapshotSha256 和 qualityPolicyVersion才能进入 shadow_ready |
| 用户编辑版本 | `shadow_ready -> edited_candidate -> checking` | 编辑必须创建严格递增的新 candidateVersion旧版本和旧 detector 报告立即失去接受资格,不允许“改完直接合并” |
`accept_preflight` 只允许 `mode=production``acceptanceEligible=true` 的当前版本进入并实时校验候选未过期、detector 绿证据、上下文快照、授权、来源状态、策略版本和 `expectedRevision`。写入 Canonical 必须采用 compare-and-setCAS服务端记录同时匹配 `runId + attempt + candidateVersion + candidateSha256 + currentState + expectedRevision` 才能原子递增 Block revision并按用户决策迁入 `accepted_as_is``merged_after_edit` 后归档。旧 attempt、旧 candidateVersion、迟到结果和重复事件只能返回冲突或幂等旧结果不能覆盖当前候选或正文。
实验台只验证上述状态合同,不写正式正文库,不修改产品 API、Flyway 或业务数据库结构。产品化必须在正文 Gate B 通过后另立计划Gate B 通过前不得启动细纲智能体真实能力验收。接受命令的具体前置与事务边界只引用 [专题-01 §6](专题-01-正文建议接受(Accept%20Suggestion)实现规范.md),本文件不重复定义。
### 5.3 规划候选生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| pending_review | 待用户选择 | confirmed / edited_and_confirmed / discarded / invalidated / expired |
| confirmed | 用户确认进入正式规划 | archived |
| edited_and_confirmed | 用户修改后进入正式规划 | archived |
| discarded | 用户忽略 | archived |
| invalidated | 来源、版本或权限变化 | 重新生成或 archived |
| expired | 超时 | archived |
硬约束:
- 规划候选确认前不得进入后续生成上下文。
- 规划候选来源失效、授权撤销、下架或召回时,确认禁用。
- 确认后的规划项必须保留来源和用户取舍。
## 6. 知识草稿、知识确认和全书解析章节确认
### 6.1 知识草稿生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| pending_review | 待用户处理 | confirmed_from_source / confirmed_after_edit / rewritten_as_user_fact / ignored / stale / blocked / expired |
| confirmed_from_source | 来源事实确认,写入 Local KB | archived |
| confirmed_after_edit | 修改来源事实后确认,写入 Local KB | archived |
| rewritten_as_user_fact | 用户走独立原创/自有事实确认路径 | archived 或 pending_review |
| ignored | 用户忽略 | archived |
| stale | 来源快照失效 | 重新提取 / archived |
| blocked | 授权、召回、合规、隐私或冲突阻断 | archived 或待用户处理 |
| expired | 超时 | archived |
| archived | 终态历史 | 终态 |
硬约束:
- 知识草稿必须携带来源快照、上游 lineage、授权快照、风险标记和来源状态。
- 来源型确认必须要求来源 active、授权有效、未下架、未召回、无阻断冲突。
- “改写为用户自有事实”不能删除 prior lineage、授权快照、召回状态和风险标记撤权、召回或权利不清来源不能只靠改写解除限制。
- 知识确认成功必须写 Local KB 正式知识、属性变更历史、审计和投影事件。
- 忽略、过期、阻断、stale 不得写 Local KB。
### 6.2 全书解析章节审阅生命周期
全书解析章节确认是“解析审阅确认”,不是“知识入库确认”。
```text
parse_job:succeeded
-> chapter_review(pending_review, parse_job_id + chapter_id)
-> confirm_review -> review_confirmed + create_or_update knowledge_drafts
-> reject_review -> review_rejected
-> stale / blocked / expired
```
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| pending_review | 章节解析结果待审阅 | review_confirmed / review_rejected / stale / blocked / expired |
| review_confirmed | 用户确认该章节解析审阅结果 | 终态;对应知识草稿进入 pending_review |
| review_rejected | 用户驳回该章节解析结果 | 终态 |
| stale | 导入正文、章节内容、来源快照或解析版本变化 | 重新解析或终态 |
| blocked | 冲突、授权、来源或校验失败 | 重试 / 驳回 |
| expired | 超时未处理 | 终态或重新解析 |
硬约束:
- Parse Job 和 Chapter Parse Result 归 AI Orchestration BCChapter Review 是该解析结果的审阅状态Knowledge BC 只在审阅确认后创建或更新 Knowledge Draft。
- 批量边界固定为 parse_job_id + chapter_id。
- 同一章节内审阅确认 all-or-nothing。
- 任一条来源失效、冲突、校验失败或导入失败,整章确认失败。
- 章节确认不写 Canonical 知识,不写 Narrative State Canonical。
- 章节确认成功只标记解析审阅结果已确认,并产生或更新待确认知识草稿。
- 正式知识仍由知识草稿确认链路写入 Local KB。
## 7. 知识库状态
### 7.1 知识库版本状态
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| draft | 创建中 | processing / archived |
| processing | 资料处理、校验、切块、索引中 | active / processing_failed / disabled |
| active | 可按授权使用 | disabled / archived / processing |
| processing_failed | 处理失败 | processing / disabled / archived |
| disabled | 停用 | active / archived |
| archived | 归档 | 终态 |
硬约束:
- 全局知识库 authority 由管理员治理;普通用户只能看到授权范围。
- 用户知识库 owner 是普通用户;已授权或已安装市场知识库不能被当作用户自有资产再发布。
- 资料处理失败不得进入生成上下文。
- 知识库删除、停用、撤权、下架或召回必须触发来源状态传播。
### 7.2 知识来源绑定状态
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| prechecking | 绑定前校验 | active / rejected / canceled |
| active | 可作为作品知识来源 | disabled / revoked |
| disabled | 用户停用或系统停用(来源变化时直接决策) | active / revoked |
| revoked | 授权撤销、下架或召回 | 终态或重新授权新绑定 |
| rejected | 预检失败 | 终态 |
| canceled | 用户取消 | 终态 |
硬约束:
- 绑定只授予检索或生成来源可用性。
- 绑定不写正文、不写规划、不写 Local KB。
- 每个作品绑定必须固化知识库版本、授权快照、用途范围和来源状态。
## 8. 智能体和槽位状态
### 8.1 智能体版本生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| draft | 编辑中 | testing / review / active / archived |
| testing | 试用隔离执行 | draft / review / active |
| review | 高风险或市场发布复核 | active / rejected / draft |
| active | 可被使用 | disabled / superseded / archived |
| disabled | 停用 | active / archived |
| rejected | 复核驳回 | draft / archived |
| superseded | 被新版本替代 | archived |
| archived | 归档 | 终态 |
硬约束:
- 扩大工具授权、扩大真实上下文外发、改变输出合同、改变默认系统智能体必须进入高风险复核或灰度。
- 用户智能体和市场智能体默认不可信,试用必须隔离。
- 智能体版本不能修改保护节点分类。
- 智能体版本只能声明需要的工具和上下文范围;实际运行权限以服务端生成的 Agent Runtime Permission Envelope 为准。
### 8.2 槽位绑定生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| using_default | 使用系统默认子智能体 | prechecking_override |
| prechecking_override | 校验用户智能体或市场智能体是否兼容槽位 | active_override / rejected / canceled |
| active_override | 使用用户选择的子智能体 | using_default / disabled |
| rejected | 预检失败 | using_default |
| disabled | 撤权、越权、输出不合约或安全阻断(来源变化时直接决策) | using_default |
| canceled | 用户取消替换 | using_default |
硬约束:
- 只能替换开放槽位中的子智能体。
- 输入输出合规、权限过滤、拆分切块、入 RAG、语义围栏、静态检查、Shadow -> Canonical、质量门控等保护节点不可替换。
- 替换失败、撤权、越权、空输出或输出不合约时,只能回退默认子智能体或阻断当前链路,不能扩大权限。
- active_override 进入运行前必须生成运行时权限包,绑定 actor、work、slot、agentVersion、allowedTools、allowedContextScopes、egressPolicy、budget、sourceSnapshot 和审计要求。
### 8.3 工具授权与运行时权限包约束
工具授权(Tool Grant)和 Agent Runtime Permission Envelope 是智能体安全边界,不是 AI runtime 自管理状态。
硬约束:
- Agent 版本只能声明需要的工具、上下文和外发范围Tool Grant 由 Agent authority 与 Security facade 计算权限上限。
- 运行任务启动时Security facade 必须结合 actor、owner、slot、agentVersion、来源状态、授权快照、预算和风险状态签发不可变 Agent Runtime Permission Envelope。
- AI Orchestration、Integration 和 tool broker 只能校验并消费运行时权限包,不能自行新增工具、扩大上下文、改变外发策略或复用旧权限包。
- Tool Grant、授权快照、来源状态、槽位版本或保护节点规则变化后相关运行任务和槽位绑定必须进入 disabled、回退默认或阻断。
## 9. 市场资产、授权、安装和治理状态
### 9.1 市场发布状态
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| draft | 发布草稿 | checking / canceled |
| checking | 发布检查中 | submitted / needs_changes / rejected / canceled |
| submitted | 已提交审核 | under_review / withdrawn |
| under_review | 审核中 | approved / rejected / needs_changes |
| needs_changes | 需补材料 | submitted / withdrawn |
| approved | 审核通过,可上架 | listed / suspended |
| listed | 已上架 | delisted / recalled / suspended / version_superseded |
| rejected | 审核驳回 | draft / terminal |
| withdrawn | 发布者撤回 | terminal |
| delisted | 下架 | appeal_pending / restored / recalled |
| recalled | 召回 | appeal_pending / restored / terminal |
| suspended | 临时限制展示或安装 | listed / delisted / recalled |
| restored | 恢复展示或使用 | listed 或受限 listed |
| version_superseded | 被新版本替代 | archived |
| archived | 归档 | 终态 |
硬约束:
- 发布必须检查资产类型、权利声明、许可范围、公开范围、来源追踪摘要和安全风险。
- submitted 必须原子消费未过期且匹配当前资产版本、发布草稿版本、材料 hash、权利声明和安全检查结果的 Publish Check Snapshot。
- 发布材料、资产版本、公开范围、许可或来源摘要变化后,旧 Publish Check Snapshot 立即失效,必须重新检查。
- 作品资产必须区分 sourceWorkOwner、marketplaceAssetRecord、publishSnapshot 和 targetWorkOwner。作品资产只有在作品发布准备能力、作品资产 owner 角色、使用预检和来源承接能力闭合后,才允许进入可提交和可审核状态;否则只能保留阅读、收藏和授权记录。
- 恢复、部分恢复或撤销召回不是反向按钮,必须重跑权利、隐私、工具授权、来源状态和版本检查,并重新传播状态。
- 市场审核、合规处置、安全审计和系统配置必须分权,不能自批自审。
### 9.2 授权状态
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| available | 可获取 | authorized / unavailable |
| authorized | 用户已获得许可 | installed仅智能体和知识库/ revoked / expired |
| installed | 智能体或知识库已加入账户可用资产 | linked_or_bound / disabled / revoked |
| linked_or_bound | 已关联作品槽位或绑定知识来源 | disabled / revoked |
| disabled | 用户停用或系统停用(来源变化时直接决策) | installed / revoked |
| revoked | 授权撤销、下架或召回限制 | 终态或重新授权 |
| expired | 授权到期 | 重新授权或终态 |
| unavailable | 不可获取 | available |
硬约束:
- License 不等于 Install。
- Install 不等于作品关联或知识绑定。
- 关联智能体必须通过 Agent Slot Binding 预检。
- 绑定知识库必须通过 Knowledge Source Binding 预检。
- 作品资产授权当前不进入安装、绑定、模板化、参考来源或 AI 上下文链路。
- 作品资产模板化、参考来源写入和 AI 上下文绑定受显式 Feature Gate 控制,默认全部关闭;开启前必须完成 ADR、`产品-02C` owner、Schema/API、使用预检、来源 lineage、授权快照、导出限制和状态机承接。
产品可见状态到架构状态的映射:
| 产品可见状态 | 架构状态 | 后续 API 枚举 |
|---|---|---|
| 可发现 | available | 后端阶段定义 |
| 已授权 | authorized | 后端阶段定义 |
| 已安装到账户 | installed | 后端阶段定义 |
| 已绑定到作品 / 已关联槽位 | linked_or_bound | 后端阶段定义 |
| 已用于生成 / 检索 | 不单独成授权状态,记录在 Usage Record 和 Source Lineage | 后端阶段定义 |
| 已撤权 / 已召回 / 已下架限制 | revoked / recalled / delisted 来源状态 | 后端阶段定义 |
### 9.3 申诉状态
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| not_open | 未申诉 | appeal_submitted |
| appeal_submitted | 已提交 | under_review / withdrawn |
| under_review | 申诉审核中 | upheld / overturned / needs_more_info |
| needs_more_info | 需补材料 | under_review / withdrawn |
| upheld | 维持治理动作 | 终态 |
| overturned | 撤销或调整治理动作 | restored 或部分恢复 |
| withdrawn | 申诉撤回 | 终态 |
硬约束:
- 申诉不自动恢复资产。
- 申诉通过后的恢复仍要走重检、影响预览、复核和来源传播。
- 申诉处理人不能是发布者、直接受益人或原治理动作的利益冲突角色。
## 10. Handoff 状态
### 10.1 Handoff Token 生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| issued | 来源空间已生成 | consumed / expired / canceled |
| consumed | 目标空间已消费并生成 session | 终态 |
| expired | 超时 | 终态 |
| canceled | 用户取消或来源状态变化 | 终态 |
### 10.2 Handoff Session 生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| active | 目标空间落地 | prechecked / canceled / expired |
| prechecked | 目标 owner 完成预检 | confirmed / rejected / canceled |
| confirmed | 用户确认,准备原子消费 | consumed / failed |
| consumed | 写入目标 owner 事实成功 | 终态 |
| rejected | 预检失败或权限/授权/对象/版本/来源变化导致不可继续 | 终态 |
| failed | 写入失败 | 终态或重新发起 |
| canceled | 用户取消 | 终态 |
| expired | 超时 | 终态 |
硬约束:
- Handoff 是应用层协议:来源 BC 只签发一次性 token目标 owner BC 创建 session 和 precheckAccount/Usage/Audit 只记录跳转和消费审计。
- Market 作为来源空间时,只能记录来源侧 handoff、listing/license/install/source status 和返回点;目标 owner 的 target precheck 由目标 BC 创建和消费。
- Handoff 必须绑定 actor、目标 owner、对象、动作、版本、授权快照、返回点和取消状态。
- Handoff Token 有效期为 **15 分钟**issued 后 15 分钟内未被消费即转入 expired终态该时长由质量/安全策略登记,可调但必须显式登记。
- 来源空间不能替目标 owner 写最终事实。
- 重复消费只有在同 actor、同 owner、同对象、同动作、同版本、同授权快照且未取消时才允许幂等返回旧结果。
- 目标空间落地后必须重新校验权限、授权快照、对象状态、版本和来源状态。
- token 缺失、上下文为空、目标 owner 不存在、precheck 过期、目标写入失败或返回点失效时,必须拒绝写入并返回来源空间刷新状态。
## 11. 来源状态传播
### 11.1 触发事件
来源传播由以下事件触发:
- 市场资产下架、召回、撤权、恢复、部分恢复。
- 全局知识库停用、授权撤销、版本变化。
- 用户知识库删除、停用、资料处理失败、发布许可变化。
- 智能体撤权、版本停用、工具授权变化、输出合同变化。
- 作品资产 owner 缺失、发布快照失效、权限转移不明。
- 合规、安全、侵权、隐私或权利风险阻断。
### 11.2 传播任务状态
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| queued | 已创建传播任务 | running / canceled |
| running | 正在按目标处理 | succeeded / partial_completed / failed / canceled |
| partial_completed | 部分目标处理完成,存在失败或跳过目标 | running / succeeded / failed |
| succeeded | 所有必须目标已处理 | 终态 |
| failed | 传播失败 | retry / terminal |
| canceled | 任务取消 | 终态 |
硬约束:
- Source Status Event 必须有来源 owner、source id、source version、事件类型、原因、幂等键和影响范围。
- Authorization Snapshot 必须在使用时固化 actor、owner、source version、license/policy、allowed purpose、forbidden purpose、status、checkedAt、expiresAt 或重验条件;消费方只能引用快照 id 或不可变指纹。
- Source Propagation Job 必须按目标对象记录处理状态;失败目标默认禁止新使用,直到重试成功或人工关闭。
- 传播任务不得修改已确认 Canonical只能限制后续使用、标记需重验、作废未确认对象或失效下载凭证。
### 11.3 传播目标
| 目标 | 处理方式 | 不允许 |
|---|---|---|
| AI 候选 / 规划候选 | 标记来源不可用,禁用接受或确认 | 自动删除正文 |
| 知识草稿 | 禁用来源型确认,保留只读摘要和 lineage | 删除 prior lineage |
| 章节解析结果 | 标记需重验或阻断章节确认 | 部分确认 |
| 作品知识来源绑定 | disabled / revoked | 继续用于新生成 |
| Agent Slot Binding | 回退默认 / disabled | 扩大权限继续运行 |
| 已安装智能体 / 知识库 | 停用、只读或 disabled | 自动迁移为用户自有资产 |
| 运行中任务 | 取消或阻断 | 继续消费旧授权快照 |
| 导出任务 / 下载凭证 | 失败、过滤、重验或失效 | 下载受限内容 |
| 个人中心记录 | 展示异常、治理结果和 owner 跳转 | 替 owner 空间写事实 |
| 市场记录和发布者记录 | 更新治理结果、申诉入口和影响摘要 | 隐藏审计 |
硬约束:
- 来源传播不得改写已确认 Canonical。
- 来源传播必须可观察、可重试、可审计。
- 传播失败时,系统宁可禁用新使用,也不能继续使用受限来源。
## 12. 导出和下载状态
### 12.1 导出任务生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| draft | 用户选择导出范围 | prechecking / canceled |
| prechecking | 权限、owner、来源、许可、导出范围校验 | queued / rejected / canceled |
| queued | 已创建导出任务 | running / canceled |
| running | 生成导出包 | ready / failed / canceled |
| ready | 导出包生成,等待下载 | downloaded / expired / revoked |
| downloaded | 用户已下载 | 终态 |
| rejected | 预检失败 | 终态或重新选择范围 |
| failed | 生成失败 | 终态或重新导出 |
| canceled | 取消 | 终态 |
| expired | 下载窗口过期 | 终态 |
| revoked | 来源或权限变化导致不可下载 | 终态 |
硬约束:
- Work Export Job 归 Work/ContentKnowledge Export Job 归 KnowledgeAccount Export Job 归 Account/Usage/AuditAccount/Usage/Audit 可以统一下载凭证和下载审计,但不能替 owner BC 通过预检或生成导出内容。
- 创建、生成完成前和下载时都必须重验用户权限、对象 owner、来源授权、市场召回状态和导出许可。
- 来源撤权、下架、召回、合规阻断或权限变化时,导出任务必须失败、过滤受限内容或要求用户重新选择范围。
- 导出任务不得把受限来源洗成普通正文或普通知识。
- 导出包必须加密存储、按 owner / tenant 隔离、只允许服务端代理下载,不暴露永久对象地址。
- canceled、expired、revoked 或权限变化后,导出包本体必须按销毁或保留策略失效;管理员只能查看脱敏摘要,不能直接获取用户导出包。
### 12.2 下载凭证生命周期
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| issued | 已签发短期凭证 | used / expired / revoked |
| used | 已使用 | 终态 |
| expired | 过期 | 终态 |
| revoked | 权限、来源或任务状态变化 | 终态 |
硬约束:
- 下载凭证必须绑定 actor、导出任务、导出范围、对象版本和授权快照。
- 下载凭证有效期为 **5 分钟**issued 后 5 分钟内未使用即转入 expired终态该时长由质量/安全策略登记,可调但必须显式登记。
- 下载凭证过期、重复使用、actor 不匹配、任务作废或授权快照不匹配时,必须拒绝下载并写安全审计。
## 13. New-API 与外部调用状态
### 13.1 New-API 绑定和调用归属
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| unbound | Muse 用户未绑定网关用户 | binding_requested |
| binding_requested | 绑定请求已发起 | bound / binding_failed |
| bound | 绑定有效 | disabled |
| disabled | 停用(网关状态、权益、配额或归属异常时直接停用) | bound |
| binding_failed | 绑定失败 | binding_requested |
调用归属状态:
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| pending_attribution | 等待归属 | attributed / attribution_failed / needs_manual_review |
| attributed | 已归属到用户、作品、任务、智能体、知识来源或市场授权 | 终态 |
| attribution_failed | 自动归属失败 | pending_attribution / needs_manual_review |
| needs_manual_review | 需人工处理 | attributed / closed_unattributed |
| closed_unattributed | 无法归属,保留异常记录 | 终态 |
硬约束:
- New-API 是外部网关权威,模型供应商路由、底层成本日志和网关调用权威记录以 New-API 为准。
- 执行链是 AI Orchestration -> Integration Execution Facade -> New-API -> AI Task Result归属链是 Integration Call Log -> Account/Usage/Audit attribution。
- Muse 只保存本地绑定、配置请求、调用归属、correlationId、idempotencyKey、重试组和异常状态。
- New-API 服务凭据必须只保存在密钥管理系统中Muse 只持有凭据引用凭据按环境隔离、最小权限、可轮换、可吊销不得进入日志、Prompt、候选、导出包或用户可见错误。
- New-API 服务账号不得拥有供应商路由、供应商密钥或网关底层成本策略的管理权限,除非后续单独立项并更新架构边界。
- 同一外部调用不得重复归属、重复扣减或重复补偿。
- 用户取消、系统重试、合规阻断、资产撤权或下架导致的调用结果必须能区分待归属、已归属、异常、补偿待处理或关闭。
## 14. 任务治理和审计状态
### 14.1 管理员可治理任务
可治理任务包括:
- 全局知识资料处理。
- 用户知识库资料处理。
- 市场发布检查。
- 来源状态传播和召回传播。
- 质量评估。
- 导出审计摘要。
- New-API 调用归属。
管理员治理状态:
| 状态 | 含义 | 允许离开方式 |
|---|---|---|
| observable | 可观察 | retry_requested / canceled / escalated / closed |
| retry_requested | 请求重试 | running / failed / closed |
| escalated | 升级人工处理 | closed / retry_requested |
| closed | 已关闭 | 终态 |
硬约束:
- 管理员任务详情只能显示脱敏摘要、状态、错误类型、对象编号、来源状态和治理动作。
- 不展示用户正文全文、完整 Prompt、完整模型响应、Token、密钥或正文级上下文。
- 任务治理不能绕过用户确认、owner 边界或来源授权。
- 本阶段无管理员 break-glass 正文访问能力。确需后续设计时必须单独定义合规访问申请、双人复核、step-up 验证、时间盒、字段级范围、只读水印、用户通知或延迟通知和全量审计。
### 14.2 审计约束
必须进入 append-only 审计的动作:
- 发布 MetaSchema、系统智能体、系统功能编排、保护节点、开放槽位、质量策略。
- 管理员授权、权限组变更、用户封禁、恢复和高危数据导出。
- 全局知识授权、撤权、停用和版本回滚。
- 市场审核、下架、召回、恢复、部分恢复、申诉终裁。
- 知识确认、来源型改写为自有事实、敏感导出、下载拒绝。
- New-API 权益配置请求、调用归属异常人工处理。
审计不得记录正文全文、完整密钥、完整外部凭证或不必要的敏感内容。
审计治理约束:
- 审计写入、读取、导出和保留策略必须分权。
- 普通管理员不得删除、改写或覆盖高危审计。
- 高危审计应采用 WORM、哈希链或等价防篡改机制。
- 审计导出必须脱敏、限范围、限时效,并记录审计访问审计。
- 留存期、删除例外、法务保留和用户删除请求的冲突处理由后端/合规阶段细化,但不能破坏高危审计可追溯性。
## 15. 非谈判项
以下规则不能被实现绕过:
1. AI 不得直接写 Canonical。
2. 用户智能体、市场智能体和工作流智能体不得替换系统保护节点。
3. 输入合规、输出合规、权限过滤、拆分切块、入 RAG、语义围栏、静态检查、Shadow -> Canonical、质量门控不可开放为普通槽位。
4. 正文 Block 写入必须有 revision 并发保护。
5. 接受 AI 候选只写正文和候选归档,不自动确认知识草稿。
6. 修改后合并必须让旧知识草稿失效,并基于最终正文重新提取。
7. 知识草稿确认前必须校验来源快照、授权快照、召回/下架/撤权状态和冲突状态。
8. 全书解析章节确认不写 Canonical 知识,只产生或更新待确认知识草稿。
9. 知识库绑定只授予检索或生成来源可用性,不写 Local KB。
10. 市场授权、购买、安装、收藏或绑定不等于所有权转移,也不等于写作品事实。
11. 作品资产当前只允许阅读、收藏和授权记录;模板化、参考来源写入和 AI 上下文绑定受显式 Feature Gate 控制,默认关闭。
12. Handoff 不能成为绕过权限、预检、确认、审计和 owner 写入边界的通道。
13. 来源撤权、下架、召回、owner 缺失或合规阻断必须传播到候选、草稿、绑定、安装、运行任务、导出和个人中心记录。
14. 已确认 Canonical 不自动回滚,但受限来源不得继续用于新生成、新绑定、新导出许可范围或新的来源型知识确认。
15. New-API 是外部网关权威Muse 不复制其供应商路由、底层成本日志和网关调用权威记录。
16. 用量记录、权益快照和个人中心聚合不能替代业务事实 owner也不能替代 New-API 权威成本。
17. 管理员默认不能查看或修改用户私有正文、用户智能体内容或用户知识库内容;合规处置必须最小权限和审计。
18. 个人中心是聚合和跳转入口,不是作品、智能体、知识库或市场事实 owner。
19. 用户可见投影和检索投影是读模型,不得反向覆盖 Canonical。
20. 所有高危治理动作必须支持影响预览、分权复核、审计和可回滚或可恢复策略。
21. 正文 revision 如果包含 AI、市场智能体/知识库、外部知识、授权知识来源或未来已开启的作品资产参考,必须保留 Block Source Attribution。
22. 智能体工具调用和上下文访问必须由服务端运行时权限包校验,不能由前端、智能体或 AI runtime 自报。
23. 导出包必须加密、owner 隔离、短期可取、可失效或可销毁,不能暴露永久对象地址。
24. New-API 服务凭据必须最小权限、密钥管理、环境隔离、可轮换且不得进入日志或导出。
25. 高危审计必须防篡改,审计读取和导出本身也必须被审计。
## 16. 关联阅读
- 系统全貌与 BC`架构-01-系统全貌与边界上下文.md`
- 核心模型与双轨边界:`架构-02-核心数据结构与双轨模型.md`
- 管理员操作流程:`流程-01A-管理员操作流程(操作视角).md`
- 普通用户操作流程:`流程-01B-普通用户操作流程(操作视角).md`
- 管理员系统处理流程:`流程-02A-管理员系统处理流程(系统视角).md`
- 普通用户系统处理流程:`流程-02B-普通用户系统处理流程(系统视角).md`
- 功能与交互边界:`产品-02-核心功能与交互边界.md`