diff --git a/design-docs/临时-产品形态阶段化重设计计划.md b/design-docs/临时-产品形态阶段化重设计计划.md index 86646195..6e9bf838 100644 --- a/design-docs/临时-产品形态阶段化重设计计划.md +++ b/design-docs/临时-产品形态阶段化重设计计划.md @@ -39,9 +39,9 @@ | 阶段 2.6 | `design-docs/产品-02F-市场功能规格.md` | 明确作品、智能体、知识库市场资产的发现、授权、安装、绑定、发布和治理规格 | 已完成并提交 | | 阶段 2.7 | `design-docs/产品-02G-个人中心功能规格.md` | 明确个人资料、偏好、用量、权益、授权记录和发布记录总览规格 | 已完成并提交 | | 阶段 3 | `design-docs/产品-03-用户旅程与操作流程.md` | 承接产品空间和功能边界,重写管理员、普通用户、智能体、市场等旅程 | 已完成并提交 | -| 阶段 4 | `design-docs/流程-01A-管理员操作流程(操作视角).md` / `design-docs/流程-01B-普通用户操作流程(操作视角).md` / `design-docs/流程-02A-管理员系统处理流程(系统视角).md` / `design-docs/流程-02B-普通用户系统处理流程(系统视角).md` | 按角色拆分操作流程和系统处理流程 | 四分册作为唯一流程入口,待确认 | -| 阶段 5 | `design-docs/架构-01-系统全貌与边界上下文.md` / `design-docs/架构-02-核心数据结构与双轨模型.md` / `design-docs/架构-04-状态机与约束清单.md` | 承接产品与流程,调整有界上下文、核心模型、状态机和约束清单 | 待开始 | -| 阶段 6 | `design-docs/专题-*` | 按需要调整 AI 编排、质量门控、竞品取舍、正文建议接受等专题合同 | 待开始 | +| 阶段 4 | `design-docs/流程-01A-管理员操作流程(操作视角).md` / `design-docs/流程-01B-普通用户操作流程(操作视角).md` / `design-docs/流程-02A-管理员系统处理流程(系统视角).md` / `design-docs/流程-02B-普通用户系统处理流程(系统视角).md` | 按角色拆分操作流程和系统处理流程 | 已完成并提交 | +| 阶段 5 | `design-docs/架构-01-系统全貌与边界上下文.md` / `design-docs/架构-02-核心数据结构与双轨模型.md` / `design-docs/架构-04-状态机与约束清单.md` | 承接产品与流程,调整有界上下文、核心模型、状态机和约束清单 | 已完成并提交 | +| 阶段 6 | `design-docs/专题-*` | 按需要调整 AI 编排、质量门控、竞品取舍、正文建议接受等专题合同 | 进行中 | | 阶段 7 | `design-docs/前端-*` / `design-docs/后端-*` | 承接产品、流程、架构结论,更新工程结构、Schema、API 和实现约束 | 待开始 | | 阶段 8 | `design-docs/00-文档大纲.md` / `design-docs/内容映射表.md` | 最后统一索引、文档 owner 和内容映射,清理过期引用 | 待开始 | @@ -99,7 +99,7 @@ | C-001 | 阶段 1 准备 | 新版 `产品-01` 与旧 `产品-02/03` | 新版引入智能体工作台、知识库工作台和市场空间,旧后续文档尚未承接 | 阶段 2 已由 `产品-02` 承接;阶段 3 继续由 `产品-03` 承接,不在阶段 2 跨文档修改 | 部分承接 | | C-002 | 阶段 2.5~2.7 二轮复核 | `产品-02C` 局部冻结基线与 02F/02G 作品资产发布/使用需求 | 02F/02G 需要作品资产发布准备包和作品资产使用 owner,但当前不能跨阶段修改已冻结的 02C | 在 02F/02G 中标为后续阻断:02C 后续补齐 `work-publish-prep` 和作品资产使用预检前,作品资产不得提交发布、模板化、参考写入或进入 AI 上下文 | 待后续阶段承接 | | C-003 | 阶段 3 review | `产品-03` 初稿与前序安全/资产边界 | 子代理 review 发现外部知识 lineage、保护节点不可开放、handoff 生命周期、知识库类型、市场授权/安装/绑定状态、管理员分权等边界需要补强 | 阶段 3 只修 `产品-03`,不反改 02 系列;将确认为流程/架构必须承接的不变式 | 已修复并确认 | -| C-004 | 阶段 4 review | `产品-03` 个别旧口径与阶段 4 四分册 | review 发现 `产品-03` 中存在“已确认作品事实自动回滚”的旧口径残留,与后文“不自动回滚”和阶段 4 四分册口径冲突 | 阶段 4 不跨阶段修改 `产品-03`;四分册统一按“不自动回滚,但限制新生成、新绑定、新导出和新知识确认”处理,后续统一索引或回扫阶段再清理 `产品-03` 残留 | 待后续阶段承接 | +| C-004 | 阶段 4 review / 阶段 5 复核 | `产品-03` 与阶段 4 四分册 | 初次 review 认为 `产品-03` 中存在“已确认作品事实自动回滚”的旧口径残留;阶段 5 复核确认该短语位于“不能被解释为”列,不是旧口径 | 不需要跨阶段修改 `产品-03`;阶段 4 和阶段 5 均继续按“已确认事实不自动回滚,但受限来源不得继续进入新生成、新绑定、新导出许可范围或新的知识确认”处理 | 已复核,无需修改 | ## 6. 决策记录 @@ -136,6 +136,11 @@ | D-029 | 2026-05-23 | 阶段 4 review | 启动新子代理 review 四个分册,发现必须修复的问题:全书解析章节确认不能写正式知识、作品资产模板化/参考来源/AI 上下文当前必须阻断、外部来源不能通过“改写自有事实”洗白、handoff 绑定条件不足、来源传播目标不全、导出/下载和账户安全链路缺失、系统智能体发布与市场恢复缺高危门禁、New-API 和任务治理流程过粗 | 进入阶段 4 定点修复;只改四个流程分册和本计划,不修改产品、架构、专题、前端或后端文档 | | D-030 | 2026-05-23 | 阶段 4 修复 | 按 review 结果修复四个分册:章节解析确认只产生待确认知识草稿;作品资产当前只允许阅读、收藏和授权记录;改写自有事实保留 lineage、授权快照和召回状态;补 handoff 绑定字段、导出安全链路、账户安全链路、来源传播对象全集、管理员脱敏边界、系统智能体影响预览/灰度/复核、市场恢复重检、New-API 最小权限与幂等补偿、任务类型治理矩阵 | 修复完成后进入校验和用户确认;确认前不进入阶段 5 架构文档 | | D-031 | 2026-05-23 | 阶段 4 引用迁移 | 用户确认删除旧流程导航页,活跃文档引用全部迁移到 `流程-01A/01B/02A/02B` 四个分册 | 删除旧导航页;四个分册成为唯一流程入口;本次只做引用迁移和导航归属调整,不重写产品、架构、专题、前端或后端设计内容 | +| D-032 | 2026-05-23 | 阶段 5 启动 | 用户确认进入架构阶段;阶段 5 只修改 `架构-01`、`架构-02`、`架构-04` 和本计划,承接阶段 1~4 已确认的六产品空间、系统保护节点、用户知识库、市场授权、handoff、来源 lineage、全书解析章节确认和 New-API 边界 | `架构-01/02/04` 进入重写;产品、流程、专题、前端和后端文档不在本阶段顺手修改 | +| D-033 | 2026-05-23 | 阶段 5 初稿 | 重写 `架构-01/02/04`:`架构-01` 改为六产品空间与 BC owner 的架构边界,`架构-02` 补齐用户知识库、市场资产、智能体槽位、handoff、来源 lineage、授权快照、导出和账户用量模型,`架构-04` 重写候选、知识草稿、全书解析章节审阅、知识库、智能体、市场授权、handoff、来源传播、导出下载、New-API 和审计状态机 | 阶段 5 初稿已完成并进入校验;待 review 和用户确认后再提交,不修改专题、前端或后端文档 | +| D-034 | 2026-05-23 | 阶段 5 review | 子代理 review 未发现 P0,但发现需要修复的 P1/P2:正文 Canonical 来源承载、New-API 凭据安全、智能体运行时权限包、导出包安全、个人中心模型、作品/章节/规划正式态生命周期、市场发布检查快照、BC 落地矩阵、handoff owner/precheck、授权快照与来源状态事件合同、导出 owner 拆分、New-API 执行链与归属链拆分、状态命名一致性 | 进入阶段 5 定点修复;只改 `架构-01/02/04` 和本计划,不修改产品、流程、专题、前端或后端文档 | +| D-035 | 2026-05-23 | 阶段 5 修复 | 按 review 结果修复 `架构-01/02/04`:补 BC 落地矩阵、关键 authority 表、Handoff owner 合同、导出 owner 拆分、New-API 凭据和执行/归属链边界、文件导出安全;补 Block Source Attribution、Parse/Chapter Review、Source Status Event、Authorization Snapshot、Agent Runtime Permission Envelope、发布检查快照、个人中心与导出模型;补 Work/Chapter/Planning 生命周期、章节审阅状态、发布检查状态、来源传播任务、导出下载和审计约束 | 阶段 5 review 修复完成,进入校验和用户确认;确认前不进入专题、前端或后端阶段 | +| D-036 | 2026-05-23 | 阶段 5 -> 6 | 用户确认提交阶段 5 并进入下一个阶段;阶段 5 架构文档纳入已确认基线,阶段 6 开始处理 `专题-*` 文档 | 阶段 6 只能承接阶段 1~5 已确认的产品、流程和架构结论;本次提交不修改专题、前端或后端文档 | ## 7. 阶段交付格式 @@ -150,8 +155,8 @@ ## 8. 当前下一步 -当前处于阶段 4:`产品-03` 已纳入已确认基线,流程文档已按角色和视角拆成四个分册,并完成 review 修复和引用迁移。 +当前处于阶段 6:`产品-01`、`产品-02`、`产品-02A~02G`、`产品-03`、四个流程分册和 `架构-01/02/04` 已纳入输入基线。旧流程文档已删除,`流程-01A/01B/02A/02B` 是唯一流程入口。 -本阶段输入基线为 `产品-01`、`产品-02`、`产品-02A~02G` 和 `产品-03`。旧流程导航页已删除,不再作为引用目标。四个新分册分别承接管理员操作、普通用户操作、管理员系统处理、普通用户系统处理。 +阶段 5 已完成架构承接层重写:`架构-01` 负责系统全貌和有界上下文,`架构-02` 负责核心数据结构和双轨模型,`架构-04` 负责状态机与约束清单。三份架构文档已完成初稿、review、定点修复并提交。 -下一步复核阶段 4 四个分册,重点检查全书解析双确认、市场作品资产阻断、来源 lineage、防洗白、handoff 状态、导出下载、账户安全、来源传播对象、管理员分权和 New-API 最小权限是否闭合。架构、专题、前端和后端文档仍作为后续阶段,不在阶段 4 顺手修改。 +下一步进入阶段 6,只处理 `专题-*` 文档。重点检查正文建议接受、AI 编排上下文、质量门控和竞品取舍等专题是否承接阶段 1~5 的双轨模型、保护节点、来源 lineage、授权快照、handoff、市场资产 feature gate、New-API 外部网关边界和审计约束。前端和后端文档仍作为后续阶段,不在阶段 6 顺手修改。 diff --git a/design-docs/架构-01-系统全貌与边界上下文.md b/design-docs/架构-01-系统全貌与边界上下文.md index c43d7361..def98c59 100644 --- a/design-docs/架构-01-系统全貌与边界上下文.md +++ b/design-docs/架构-01-系统全貌与边界上下文.md @@ -1,148 +1,271 @@ # 架构-01:系统全貌与边界上下文 -- 版本:v6 -- 更新日期:2026-05-13 -- 目标读者:架构/后端/前端/产品 -- 阅读时间:20-30 分钟 -- 边界说明:这里只定义系统边界、有界上下文(BC)和跨上下文协作规则;本文件描述目标架构,不代表当前代码都已实现。精确表结构以 `后端-04-统一数据库Schema-v1.md` 为准,精确接口(API)以 `后端-05-统一API契约-v1.md` 为准,精确状态机以 `架构-04-状态机与约束清单.md` 为准,模块职责以 `后端-02-工程结构与模块职责.md` 为准。 +- 版本:v7 +- 更新日期:2026-05-23 +- 目标读者:架构 / 后端 / 前端 / 产品 / 测试 +- 阅读时间:25-35 分钟 +- 边界说明:本文件只定义系统边界、有界上下文(Bounded Context, BC)、权威归属和跨上下文协作规则;不定义页面字段、数据库表结构、后端接口或完整状态机。精确模型约束见 `架构-02-核心数据结构与双轨模型.md`,精确生命周期见 `架构-04-状态机与约束清单.md`,产品功能见 `产品-02-核心功能与交互边界.md` 和 `产品-02A~02G`,流程链路见 `流程-01A/01B/02A/02B`。 ## 1. 系统边界(一句话) -Muse 是面向长篇小说创作的双角色人工智能(AI)创作系统:管理员(Admin)通过管理员控制台(Admin Console)治理系统能力,普通用户(User)通过用户工作区(User Workspace)管理自己的作品、写作、规划、确认知识和查看用量。 +Muse 是面向长篇小说创作的多角色 AI 创作与资产流通系统。系统必须同时保证三件事: -这条边界里有两个不变式: +1. 管理员(Admin)治理系统能力、系统级配置、系统级智能体、全局知识、市场秩序、权限和运行质量。 +2. 普通用户(User)在作品工作台(Work Workspace)里决定自己的正文、规划、作品知识和知识来源取舍。 +3. 智能体、知识库和市场资产只能按授权、来源、版本、槽位和用途进入候选、检索、绑定或记录链路,不能绕过用户确认写入作品事实。 -- 管理员决定“系统能做什么、怎么做、谁能用”,不进入普通用户的单个作品替用户做创作取舍。 -- 普通用户决定“我的作品写什么、哪些内容进入作品事实”,不直接操作系统 Prompt、Agent、底层元数据配置、全局知识库授权和系统审计。 -- 系统任务(System Job)只能以明确服务身份执行后台任务,不复用普通用户权限绕过正文、候选或作品知识确认。 +核心不变式: -### 1.1 上层入口 +- 管理员控制“系统能做什么、怎么做、谁能用”,不替普通用户做单个作品的创作取舍。 +- 普通用户控制“我的作品是什么、哪些内容进入我的作品事实”,不直接操作系统后台和保护节点。 +- AI、用户智能体、市场智能体、外部知识和市场资产默认不可信,只能先进入待审层(Shadow)、试用层、授权来源或绑定快照。 +- 系统任务(System Job)必须使用明确服务身份和受限权限,不能复用普通用户或管理员权限绕过 Shadow -> Canonical、来源校验、审计和授权边界。 -| 入口 | 使用角色 | 负责什么 | 禁止混入什么 | +## 2. 产品空间与架构边界 + +产品空间是前端信息架构,不等于有界上下文。架构按权威数据、写入边界和安全责任划分 BC;一个产品空间可以调用多个 BC,一个 BC 也可以服务多个产品空间。 + +### 2.1 六个产品空间 + +| 产品空间 | 使用角色 | 架构定位 | 禁止承担的职责 | |---|---|---|---| -| 管理员控制台(Admin Console) | 管理员(Admin) | 元数据与创作模板、Prompt、Agent、全局知识库(Global Knowledge Base)、访问策略、模型网关(New-API)同步、上下文组装策略、任务治理、质量评估与评测集、用户与审计 | 单个作品的正文写作、候选确认、知识取舍 | -| 用户工作区(User Workspace) | 普通用户(User) | 我的作品、作品工作台、个人中心;在单个作品内完成写作台、作品规划台、知识与一致性、导入解析、导出交付、记录与用量 | 系统后台配置、全局资料授权、Prompt/Agent/Pipeline 操作 | +| 管理员控制台(Admin Console) | 管理员 | 系统治理入口,调用 Admin/Governance、Identity/Auth、Marketplace/Asset、Account/Usage/Audit、Integration 等能力 | 替用户修改私有作品、用户智能体、用户知识库或确认作品事实 | +| 用户工作区(User Workspace) | 普通用户 | 我的作品和作品工作台入口,调用 Work/Content、Knowledge、AI Orchestration、Agent、Account/Usage/Audit | 系统后台配置、全局授权治理、市场审核、保护节点配置 | +| 智能体工作台(Agent Workspace) | 管理员 / 普通用户 | 智能体资产和槽位配置入口,调用 Agent BC、Marketplace BC、Admin/Governance 的保护节点注册表 | 替换系统保护节点、扩大工具权限、绕过输出合同 | +| 知识库工作台(Knowledge Workspace) | 管理员 / 普通用户 | 全局知识、用户知识库、已安装知识库、处理状态和作品绑定入口,调用 Knowledge BC 和 Marketplace BC | 把绑定知识自动写入局域知识库;让普通用户治理全局知识 authority | +| 市场(Marketplace) | 管理员 / 普通用户 | 作品、智能体、知识库资产的发现、授权、安装、绑定 handoff、发布和治理结果入口 | 成为资产事实 owner;绕过目标空间预检直接写作品、槽位或知识来源 | +| 个人中心(Personal Center) | 普通用户 | 账户资料、偏好、用量、授权、安装、发布记录和安全事件的只读/跳转入口 | 替代作品工作台、智能体工作台、知识库工作台、市场或管理员控制台 | -用户工作区(User Workspace)不是单一页面。它包含我的作品(My Works)、作品工作台(Work Workspace)和个人中心(Profile)。其中作品工作台只围绕单个作品工作,默认落在写作台(Writing Desk),作品规划台(Planning Desk)和知识与一致性按需打开。 +### 2.2 产品空间到 BC 的调用关系 -### 1.2 系统输入 - -| 来源 | 输入 | 进入的边界 | +| 产品空间 | 主要调用 BC | 关键协作点 | |---|---|---| -| 管理员(Admin) | 元结构定义(MetaSchema)、字段可见性、Prompt 版本、Agent 配置、全局知识库、访问策略、New-API 同步配置、评测集 | Admin BC 和 Usage/Audit BC | -| 普通用户(User) | 正文编辑、作品规划、导入文稿、AI 辅助请求、候选处理、知识确认、导出请求 | Content BC、Knowledge BC、AI BC | -| 系统任务(System Job) | 投影消费、索引重建、同步重试、评测执行、清理任务 | 明确服务身份、任务审计上下文和受限后台能力 | -| 外部服务 | 模型调用结果、检索结果、同步结果、投影消费结果 | AI BC、Knowledge BC、Usage/Audit BC | +| 管理员控制台 | Identity/Auth、Admin/Governance、Knowledge、Agent、Marketplace/Asset、Account/Usage/Audit、Integration | 分权校验、配置版本、影响预览、高危复核、审计 | +| 用户工作区 | Identity/Auth、Work/Content、Knowledge、AI Orchestration、Agent、Marketplace/Asset、Account/Usage/Audit | 作品 owner、来源状态、候选决策、知识确认、导出预检 | +| 智能体工作台 | Identity/Auth、Agent、Marketplace/Asset、Admin/Governance、Account/Usage/Audit | 智能体版本、工具授权、槽位合同、安装授权、运行记录 | +| 知识库工作台 | Identity/Auth、Knowledge、Marketplace/Asset、Work/Content、Account/Usage/Audit | 用户知识库、资料处理、安装授权、作品绑定、来源传播 | +| 市场 | Identity/Auth、Marketplace/Asset、Agent、Knowledge、Work/Content、Account/Usage/Audit | Listing、License、Install、Bind Handoff、治理、召回传播 | +| 个人中心 | Identity/Auth、Account/Usage/Audit、Marketplace/Asset、Agent、Knowledge、Work/Content | 用量归属、授权记录、发布记录、owner 跳转、安全事件 | -### 1.3 系统输出 +## 3. 有界上下文划分 -- 规范数据(Canonical):用户确认后的正文、作品知识、规划项和叙事状态。 -- 待审层(Shadow):AI 生成的候选文本、知识草稿、解析结果和风险标记。 -- 归档层(Archive):已接受、已拒绝、已过期或失败的候选与提案历史。 -- 配置快照:管理员配置在一次生成、提取、校验或评测中使用的可追溯版本。 -- 用户可见投影(User-visible Projection):从局域知识库(Local Knowledge Base)生成、只展示元数据允许展示的实体、关系、字段和摘要。 -- 使用与审计记录:普通用户可理解的生成/任务/用量记录,以及管理员可见的系统审计和同步失败记录。 - -### 1.4 系统组件与外部依赖 - -Muse 后端以模块化单体为编排层。外部模型、检索和图查询能力可以参与链路,但不能成为业务事实源。 - -| 组件 | 角色 | 边界 | -|---|---|---| -| Muse Backend | 权限、配置快照、上下文组装、任务编排、Shadow 写入、Canonical 写入、投影事件 | 业务编排与事实写入归属 Muse | -| Sa-Token | 登录认证(Authentication)、角色权限(RBAC)、接口鉴权、会话与 Token 生命周期、当前用户上下文 | 只作为认证授权基座;作品级权限、全局知识库授权和 Shadow -> Canonical 仍由 Muse 业务规则判断 | -| Admin Console | 管理员配置系统能力和授权边界 | 不承载单作品创作取舍 | -| User Workspace | 普通用户创作、规划、确认、检索、导出和查看用量 | 不暴露后台配置 | -| Agent 服务 | 生成、提取、校验、规划、检索等 AI 能力执行 | 受信任后端;不得绕过 Muse 写 Canonical | -| 模型网关(New-API) | 模型供应商、模型路由、用户分组限流、成本策略和消耗日志 | Muse 只做用户、分组、配额、套餐和绑定状态同步 | -| RAGFlow | 语义检索与 GraphRAG 基座 | 读取 PostgreSQL 投影,不是事实源 | -| Neo4j | 实体演变、关系网络、事件因果的条件能力 | 是否引入以 ADR 和后续 benchmark 为准 | -| PostgreSQL | 唯一事实源 | Canonical、Shadow、Archive、配置、审计的权威存储 | - -## 2. 有界上下文(BC)划分 - -有界上下文(BC)按数据所有权和写入边界划分,不按 UI 面板划分。界面入口可以变多,但不能因此给每个面板新造孤立模型。 +### 3.1 BC 总览 | BC | 核心职责 | 主写入边界 | 对外输出 | |---|---|---|---| -| Admin BC | 系统模板、元数据、Prompt、Agent、用户、权限、New-API 同步、全局知识库、访问策略、评测集 | 系统级配置、授权策略、配置版本与启停状态 | 配置快照、权限结果、授权范围 | -| Content BC | 作品、章节、文本块和正文版本 | Work / Chapter / Block 的 Canonical 正文 | 正文、章节结构、版本信息、导入状态 | -| Knowledge BC | 全局知识库、局域知识库、正式作品知识、用户可见投影、来源追溯 | 全局资料授权边界、作品级知识事实、投影事件 | 作品知识、授权资料、投影读模型、一致性检查输入 | -| AI BC | 生成、提取、校验、规划、检索编排、任务和候选 | Generation Job、Extraction Job、Suggestion、Knowledge Draft、风险标记 | 待审对象、任务状态、候选解释 | -| Usage/Audit BC | Token 使用、生成记录、任务记录、系统日志、审计、同步失败 | 使用记录、业务审计、失败记录、配置变更记录 | 普通用户用量反馈、管理员审计视图、可重试失败 | +| Identity/Auth BC | 登录认证、角色权限、权限组、菜单/页面/操作/数据范围、会话、安全事件 | 账户、角色、权限组、会话、安全状态 | 鉴权结果、数据范围、风险状态 | +| Admin/Governance BC | MetaSchema、模板、系统功能编排、保护节点注册表、系统级 Prompt、系统级智能体默认链路、质量策略、全局治理规则 | 系统级配置版本、保护节点 allowlist、开放槽位合同、质量策略版本 | 配置快照、影响预览、可回滚版本、治理决策 | +| Work/Content BC | 作品、章节、文本块、正文版本、正文来源归因、导入正文、作品级正式规划、作品导出任务 | Work / Chapter / Block 的 Canonical 正文、Block Source Attribution、规划正式项、作品导出任务 | 正文事实、章节结构、修订号、来源归因、导入状态 | +| Knowledge BC | 局域知识库、用户知识库、全局知识资料处理、知识草稿、知识来源绑定、投影和索引状态 | Local KB、User KB、Knowledge Draft、Knowledge Source Binding、投影事件 | 已确认作品知识、授权知识来源、用户知识资产、检索输入 | +| Agent BC | 系统智能体版本、用户智能体版本、智能体资产、安装智能体、作品智能体组合、开放槽位绑定 | Agent、Agent Version、Agent Set、Agent Slot Binding、Installed Agent | 可运行智能体快照、槽位兼容结果、运行记录输入 | +| AI Orchestration BC | 系统功能链路编排、上下文组装、生成/分析/检测任务、全书解析任务、章节解析结果、质量门控、候选、风险标记 | AI Task、Parse Job、Chapter Parse Result、Suggestion、Planning Candidate、Risk Marker、Quality Result | 待审对象、候选解释、章节解析结果、任务状态、质量结果 | +| Marketplace/Asset BC | 市场资产、发布草稿、发布检查快照、审核提交、许可、购买/获取、安装、绑定 handoff、下架、召回、申诉、治理结果 | Marketplace Asset、Publish Draft、Publish Check Snapshot、Review Submission、Listing、License、Purchase、Install、Governance Action | 授权快照、安装记录、治理状态、来源状态事件 | +| Account/Usage/Audit BC | 用量归属、调用归属、账户权益快照、个人中心聚合、业务审计、接口调用日志、下载凭证和下载审计 | Usage Record、Entitlement Snapshot、Personal Center Summary、Audit Log、Download Credential、Download Audit | 用量视图、权益视图、审计视图、异常归属、个人中心聚合 | +| Integration BC | New-API、模型网关、RAG / 向量检索、文件存储、通知等外部服务执行适配 | 外部绑定、凭据引用、correlationId、idempotencyKey、重试组、外部调用摘要 | 外部调用结果、归属待处理状态、失败原因、可重试信号 | -### 2.1 认证授权边界 +### 3.2 BC 划分原则 -Sa-Token 负责 Muse 的登录认证(Authentication)、角色权限(RBAC)、接口鉴权、会话与 Token 生命周期、管理员接口保护、当前用户上下文和基础审计上下文。 +- BC 按写入权威划分,不按页面或导航划分。 +- 产品空间可以组合多个 BC,但不能改变 BC 的写入 owner。 +- 读模型可以跨 BC 聚合,写入必须回到 owner BC。 +- Handoff 只能传递受限上下文、预检结果和返回点,不能把来源空间变成目标 owner。 +- 外部系统不是 Muse 的业务事实源;外部结果进入 Muse 前必须落到授权、快照、任务、候选或审计边界。 -Sa-Token 不决定作品事实: +### 3.3 BC 落地矩阵 -- 管理员(Admin)有管理员权限,不代表可以替普通用户确认正文、规划项、知识草稿或 AI 候选。 -- 普通用户(User)有登录态,不代表可以访问其他用户作品或未授权全局知识库。 -- 系统任务(System Job)有服务身份,不代表可以绕过 Shadow -> Canonical 确认规则。 -- 前端隐藏按钮只是体验优化,后端接口和 Muse 业务权限必须强制校验。 +本矩阵定义阶段 7 后端文档必须承接的目标 owner,不表示当前后端模块已经存在。若阶段 7 需要过渡性折叠到旧模块,必须在后端文档显式说明过渡映射和迁移路径,不能让多个模块同时写同一 owner 对象。 -### 2.2 知识库边界 +| BC | 目标后端 owner | 聚合 / 模型 owner | Facade / API 分组 | 异步 worker | 审计 owner | +|---|---|---|---|---|---| +| Identity/Auth | `muse-auth` | 用户、角色、权限组、会话、安全事件 | Auth / Admin Permission / Personal Security | 会话清理、安全事件通知 | Account/Usage/Audit | +| Admin/Governance | `muse-admin` | MetaSchema、保护节点、系统功能链路、质量策略、全局治理配置 | Admin Console | 配置影响预览、质量评估 | Account/Usage/Audit | +| Work/Content | `muse-content` | Work、Chapter、Block、Block Source Attribution、Planning Item、Narrative State、Work Export Job | User Workspace / Work Workspace | 导入、作品导出、正文投影 | Account/Usage/Audit | +| Knowledge | `muse-knowledge` | Local KB、User KB、Knowledge Draft、Knowledge Source Binding、Knowledge Export Job、投影和索引任务 | Knowledge Workspace / Work Knowledge | 资料处理、入 RAG、投影、知识导出 | Account/Usage/Audit | +| Agent | `muse-agent` | Agent、Agent Version、Agent Runtime Permission Envelope、Agent Slot Binding、Installed Agent | Agent Workspace | 试用、槽位重验、运行记录归属 | Account/Usage/Audit | +| AI Orchestration | `muse-ai` | AI Task、Suggestion、Planning Candidate、Parse Job、Chapter Parse Result、Quality Result | AI / Work Workspace | 生成、分析、检测、全书解析、质量门控 | Account/Usage/Audit | +| Marketplace/Asset | `muse-marketplace` | Marketplace Asset、Publish Draft、Publish Check Snapshot、Review Submission、Listing、License、Purchase、Install、Governance Action | Marketplace / Admin Marketplace | 发布检查、召回传播、申诉通知 | Account/Usage/Audit | +| Account/Usage/Audit | `muse-account` | Usage Record、Entitlement Snapshot、Personal Center Summary、Audit Log、Download Credential、Download Audit | Personal Center / Audit | 用量归属、审计导出、下载凭证失效 | Account/Usage/Audit | +| Integration | `muse-integration` | External Binding、Credential Reference、Integration Call Log、correlationId、idempotencyKey | Internal Integration Facade | New-API 归属、外部重试、通知回执 | Account/Usage/Audit | -全局知识库(Global Knowledge Base)和局域知识库(Local Knowledge Base)不能混成一个概念: +## 4. 关键权威归属 -- 全局知识库(Global Knowledge Base):管理员(Admin)维护和授权的系统级资料集,用于写作方法、体裁规则、平台规范和公共资料。它可以被授权为可见、可检索或可用于生成,但不会自动变成某个作品的正式知识。 -- 局域知识库(Local Knowledge Base):单个作品自动维护的作品级知识空间,来自正文、导入解析、作品规划和用户确认。它只归属当前作品,不跨作品共享正式事实。 -- 用户可见投影(User-visible Projection):局域知识库面向普通用户的读模型,只展示元数据允许展示、允许编辑、允许检索或允许导出的内容。系统内部完整知识可以参与生成、检查和审计,但不等于全部对用户可见。 +| 对象 / 能力 | 权威 BC | 允许写入入口 | 不能发生什么 | +|---|---|---|---| +| MetaSchema / 字段可见性 | Admin/Governance | 管理员控制台 | 普通用户或市场资产不能修改系统元结构 | +| 保护节点注册表 | Admin/Governance | 管理员控制台高危发布 | 不能把输入输出合规、权限过滤、拆分切块、入 RAG、语义围栏、静态检查、Shadow -> Canonical、质量门控开放为用户槽位 | +| 正文 Canonical | Work/Content | 用户保存正文、接受候选、导入正文初始化 | AI 或市场资产不能直接写正文事实 | +| 规划 Canonical | Work/Content | 用户确认规划、手动保存规划 | 规划候选不能自动进入后续生成上下文 | +| 局域知识库(Local KB) | Knowledge | 用户确认知识草稿或手动知识修正 | 全书解析章节确认、知识库绑定、市场授权不能直接写 Local KB | +| 用户知识库(User KB) | Knowledge | 用户自建、导入、维护、删除、发布准备 | 已授权或已安装市场知识库不能被当作用户自有资产再发布 | +| 全局知识库(Global KB) | Admin/Governance + Knowledge | 管理员维护和授权;Knowledge 处理索引和投影 | 全局知识不能自动成为作品事实 | +| 正文来源归因(Block Source Attribution) | Work/Content | 正文保存、候选接受、导入、市场参考或外部知识派生时写入 | 不能只依赖候选 Archive 追踪当前正文来源 | +| 全书解析结果 | AI Orchestration | 解析任务生成章节解析结果;用户审阅只标记结果状态 | 不能写 Local KB;不能绕过知识草稿确认 | +| 用户智能体 | Agent | 用户创建、导入、安装、版本管理 | 不能扩大权限、工具、上下文或替换保护节点 | +| 智能体运行时权限包 | Agent | 槽位预检、试用、运行任务启动时生成 | 工具调用和上下文访问不能由前端或智能体自报 | +| 系统智能体和默认链路 | Admin/Governance + Agent | 管理员发布版本和默认配置 | 普通用户不能接管整条系统功能链路 | +| 市场资产 | Marketplace/Asset | 发布、审核、上架、下架、召回、申诉 | 市场不能成为源作品、源智能体或源知识库的事实 owner | +| 市场发布检查快照 | Marketplace/Asset | 发布前检查、材料 hash、资产版本和草稿版本匹配后生成 | 提交审核不能绕过检查快照或消费过期快照 | +| 授权 / 安装 / 绑定 | Marketplace/Asset + 目标 owner BC | 市场授权,目标空间安装、关联或绑定 | 购买或安装不能自动关联作品,也不能自动写作品事实 | +| 导出任务 | 发起对象 owner BC | Work/Content 写作品导出任务;Knowledge 写知识库导出任务;Account/Usage/Audit 写账户与安全导出任务 | Account 不能绕过 owner facade 统一写所有导出事实 | +| 下载凭证 / 下载审计 | Account/Usage/Audit | owner 导出任务 ready 后申请短期凭证 | 不能暴露永久对象地址或跳过下载时重验 | +| 用量归属 / 审计 | Account/Usage/Audit | 任务、调用、治理、用户动作和下载事件 | 不能替业务 BC 修改事实 | +| New-API 调用权威 | Integration + New-API 外部系统 | Muse 绑定、配置请求、调用归属和日志查询 | Muse 不复制 New-API 的供应商路由、底层成本日志和网关权威记录 | -### 2.3 写入边界 +## 5. 系统输入与输出 -- Content BC 只能写规范数据(Canonical)正文;AI BC 禁止直接写 Canonical。 -- Knowledge BC 的正式知识写入必须来自用户确认、章节级确认或用户手动修正,并保留来源追溯。 -- Admin BC 变更影响生成与校验时,运行链路必须读取可追溯的配置快照。 -- Usage/Audit BC 可以记录行为和失败,但不能替业务上下文做事实写入。 +### 5.1 系统输入 -## 3. 跨上下文协作规则 +| 来源 | 输入 | 进入边界 | +|---|---|---| +| 管理员 | MetaSchema、系统功能编排、保护节点、系统智能体、全局知识、质量策略、市场治理、权限、New-API 权益配置请求 | Admin/Governance、Knowledge、Agent、Marketplace/Asset、Account/Usage/Audit、Integration | +| 普通用户 | 正文编辑、作品规划、导入文稿、AI 请求、候选决策、知识确认、智能体配置、知识库绑定、市场获取、导出请求 | Work/Content、Knowledge、AI Orchestration、Agent、Marketplace/Asset、Account/Usage/Audit | +| 系统任务 | 资料处理、索引、质量评估、来源传播、召回传播、导出、用量归属、重试和补偿 | 对应 owner BC + Account/Usage/Audit | +| 外部服务 | 模型结果、网关日志、检索结果、文件处理结果、通知结果 | Integration、AI Orchestration、Knowledge、Account/Usage/Audit | -### 3.1 依赖方向 +### 5.2 系统输出 -`Admin` 提供配置与授权;`Content` 提供正文事实;`Knowledge` 依赖 `Content` 的来源与作品边界;`AI` 依赖 `Admin + Content + Knowledge` 组装上下文;`Usage/Audit` 订阅各上下文的事件和结果。 +- 规范数据(Canonical):用户确认或用户保存后的正文、规划正式项、作品知识和叙事状态。 +- 待审层(Shadow):AI 候选、规划候选、知识草稿、解析结果、风险标记和质量结果。 +- 归档层(Archive):已接受、已丢弃、已过期、已取消、失败或被替代的历史对象。 +- 授权快照(Authorization Snapshot):市场资产、知识来源、智能体、工具、导出范围在某次使用时的许可和状态。 +- 配置快照(Config Snapshot):系统功能链路、Prompt、模型绑定、系统智能体、保护节点和质量策略在任务启动时的版本。 +- 正文来源归因(Block Source Attribution):正文 revision 中涉及 AI、市场、外部知识或授权知识来源时,保留来源链路、授权快照、许可限制和召回状态。 +- 智能体运行时权限包(Agent Runtime Permission Envelope):智能体在某次试用或运行中可读上下文、可调用工具、外发策略、预算和审计边界的服务端合同。 +- 来源状态事件(Source Status Event):撤权、下架、召回、owner 缺失、版本变化、处理失败、需重验等事件。 +- 用量与审计记录:用户可见用量、账户权益、调用归属、下载审计、管理员审计和接口调用日志。 -反向依赖禁止: +## 6. 外部依赖边界 -- 普通用户工作区不能直接写 Admin BC 的系统配置。 -- AI BC 不能绕过 Content BC 或 Knowledge BC 写正式事实。 -- 投影层不能反向覆盖 PostgreSQL 中的事实源。 +| 外部依赖 | 角色 | Muse 边界 | +|---|---|---| +| Sa-Token | 登录认证、会话、RBAC 基座 | 负责认证授权基座;作品 owner、知识来源、市场授权、Shadow -> Canonical 仍由 Muse 业务规则强制校验 | +| New-API | 外部 LLM Gateway | 权威负责模型供应商路由、网关调用和底层成本日志;Muse 只保存绑定、配置请求、调用归属、correlationId、幂等和异常状态。New-API 服务凭据必须只保存为密钥管理引用,按环境隔离和最小权限配置,禁止进入日志、Prompt、候选、导出包或用户可见错误 | +| RAG / 向量检索服务 | 检索增强生成基础设施 | 消费 Muse 授权后的投影或索引任务;不是 Canonical 事实源 | +| 图查询 / GraphRAG 服务 | 关系查询和一致性检查基础设施 | 只能读取授权投影和快照;不得反向覆盖作品事实 | +| 文件存储 | 导入文件、资料文件、导出包和临时下载凭证 | 必须受 owner、来源授权、导出许可、短期凭证和下载审计约束;导出包必须加密、按 owner 隔离、通过服务端代理下载,并在过期、撤权、取消或销毁策略触发时失效或删除 | +| 通知服务 | 任务结果、市场治理、来源异常和安全事件通知 | 只发送状态和摘要;不承载事实写入或权限判断 | -### 3.2 协作方式 +## 7. 跨上下文协作规则 -- 同步路径:权限校验、配置快照、正文写入、候选处理和知识确认走明确 API;接口细节只在 `后端-05` 定义。 -- 异步路径:正式写入后通过投影事件盒(outbox)或等价机制分发投影事件,RAGFlow、图查询 provider 和用户可见投影异步消费。 -- 一致性路径:投影未追平时,上下文组装使用水位标记(watermark)和覆盖层(overlay)或等价策略保证写后读;具体实现不在本文件展开。 +### 7.1 依赖方向 -## 4. 核心链路(系统视角) +标准依赖方向分为执行链和归属链。 -### 4.1 管理员配置链路 +执行链: -管理员(Admin)在管理员控制台(Admin Console)修改系统模板、Prompt、Agent、全局知识库、访问策略、New-API 同步配置、上下文策略或评测集。系统写入配置版本和变更记录,普通用户运行链路读取配置快照。 +`Identity/Auth -> Owner BC 权限校验 -> Marketplace/Knowledge/Agent 授权快照 -> AI Orchestration -> Integration Execution Facade -> 外部模型 / 检索 / 通知 -> AI Task Result` -### 4.2 普通用户写作链路 +归属链: -普通用户(User)在用户工作区(User Workspace)保存文本块(Block)时,Content BC 以修订号保护写入规范数据(Canonical)。后续提取、校验和投影可以异步发生,但失败不得回滚已保存正文。 +`Integration Call Log -> Account/Usage/Audit 调用归属 -> Usage Record / Entitlement Snapshot / Personal Center Summary` -### 4.3 AI 生成链路 +禁止反向依赖: -普通用户触发续写、改写、描写、规划或检查时,AI BC 读取权限、配置快照、当前正文、正式作品知识、规划项和授权全局知识,生成候选文本、知识草稿与风险标记,并写入待审层(Shadow)。 +- AI Orchestration 不能绕过 Work/Content 或 Knowledge 写 Canonical。 +- Marketplace 不能绕过 Agent、Knowledge 或 Work/Content 完成安装、绑定、槽位替换、作品使用。 +- Personal Center 不能从聚合视图反写作品、智能体、知识库或市场事实。 +- Integration 不能把外部日志、模型结果或检索结果当 Muse 业务事实源。 +- Account/Usage/Audit 不能为了统一导出、下载或用量视图,绕过 Work/Content、Knowledge 或 Marketplace/Asset 的 owner 预检。 -### 4.4 审核合并链路 +### 7.2 同步与异步边界 -普通用户确认候选或知识草稿后,系统按规范数据(Canonical)写入规则合并正文或作品知识,待审对象迁入归档层(Archive)。修改后合并必须让旧知识草稿失效,并基于最终正文重新提取。 +同步路径负责: -### 4.5 知识与投影链路 +- 登录和权限校验。 +- owner 和授权快照校验。 +- 用户确认、正文保存、知识确认、槽位替换、知识来源绑定等事实写入。 +- 高影响 handoff 的 token / session / precheck 原子消费。 -正式作品知识进入局域知识库(Local Knowledge Base)后,Knowledge BC 生成投影事件。用户可见投影(User-visible Projection)只暴露元数据允许展示的实体、关系、字段和摘要;正式检索只接收 Canonical 正文、已确认作品知识和被授权的全局资料。 +异步路径负责: -## 5. 关联阅读 +- AI 生成、分析、检测。 +- 资料处理、拆分切块、向量化、入 RAG、投影重建。 +- 来源状态传播、召回传播、市场发布检查、质量评估。 +- owner 导出任务、导出包生成、下载凭证生成、New-API 调用归属和异常补偿。 -- 数据结构与模型规则:`架构-02-核心数据结构与双轨模型.md` -- 生命周期与约束:`架构-04-状态机与约束清单.md` -- ADR:`架构-03-关键决策与原则(ADR).md` +异步失败不得回滚已确认 Canonical;失败只能进入可重试、需重验、受限、取消或失败状态,并在用户侧给出可继续动作。 + +### 7.3 Handoff 边界 + +跨空间 handoff 是产品空间之间的受限移交,不是权限继承。 + +必须满足: + +- 来源空间只能创建一次性 handoff token,不能替目标 owner 写事实。 +- Handoff 是应用层协议。来源 BC 只签发一次性 token;目标 owner BC 消费 token 后创建 session 和 precheck;Account/Usage/Audit 只记录跳转、消费和失败审计。 +- 目标空间消费 token 后生成更窄 handoff session,并重新校验 actor、owner、对象、动作、版本、授权快照、来源状态、返回点和取消状态。 +- 目标 owner 完成预检、用户确认和原子消费后,才能写安装、绑定、槽位替换或其它 owner 事实。precheck 归目标 owner BC,过期或任一状态变化后必须重验。 +- 重复消费只有在同 actor、同 owner、同对象、同动作、同版本、同授权快照且未取消时,才允许幂等返回旧结果。 +- token 缺失、上下文为空、目标 owner 不存在、precheck 过期、目标写入失败或返回点失效时,目标空间必须拒绝写入并返回来源空间刷新状态。 + +## 8. 核心链路(系统视角) + +### 8.1 管理员系统能力链路 + +`配置草稿 -> 校验保护节点和开放槽位 -> 影响预览 -> 高危复核或灰度 -> 发布版本 -> 运行任务读取配置快照 -> 审计和回滚` + +系统功能编排可以开放子智能体槽位,但保护节点不可替换。高风险变更包括扩大工具授权、扩大真实作品上下文外发、改变输出合同、改变默认系统智能体、改变质量门控或改变 Shadow -> Canonical 规则。 + +### 8.2 普通用户写作链路 + +`打开作品 -> owner 校验 -> 保存正文或发起 AI -> 生成候选 -> 用户接受/修改/丢弃 -> 正文 Canonical 或 Archive -> 知识草稿保持待确认 -> 投影和用量记录` + +接受候选只改变正文和候选归档状态,不自动确认知识草稿。修改后合并必须让旧草稿失效,并基于最终正文重新提取且继承上游 lineage。 + +### 8.3 知识确认链路 + +`知识草稿 -> 来源快照校验 -> 授权和召回状态校验 -> 冲突校验 -> 用户确认 / 修改后确认 / 忽略 / 重新提取 -> Local KB Canonical 或 Archive` + +外部知识、市场资产或授权知识来源派生的正文,再次提取知识时必须保留上游 lineage、许可、版本、授权快照和召回状态,不能简单洗成“用户自有事实”。 + +### 8.4 全书解析链路 + +`导入正文 -> 解析任务 -> 章节解析结果 -> 用户按章节审阅 -> 章节确认只标记解析结果已确认 -> 产生或更新待确认知识草稿` + +全书解析章节确认不写 Canonical 知识。正式作品知识仍必须走知识草稿确认链路。 + +### 8.5 智能体替换链路 + +`创建或安装智能体 -> 试用和合同校验 -> 槽位兼容预检 -> 用户确认替换 -> 写作品 Agent Slot Binding -> 后续任务读取槽位快照` + +用户替换的是系统功能编排中开放槽位的子智能体。槽位失败、撤权、越权、空输出或输出不合约时,只能回退系统默认子智能体或阻断当前链路。 + +### 8.6 知识库绑定链路 + +`创建/安装知识库 -> 资料处理完成 -> 作品绑定预检 -> 用户确认 -> 写知识来源绑定快照 -> 后续检索或生成按用途引用` + +知识库绑定只增加授权知识来源,不把内容写入正文、规划正式项或局域知识库。 + +### 8.7 市场资产链路 + +`资产发布准备 -> 发布检查 -> 审核上架 -> 用户获取许可 -> 安装或目标空间 handoff -> 目标 owner 预检和确认 -> 使用记录 -> 下架/召回/申诉传播` + +作品资产当前只能阅读、收藏和保留授权记录;模板化、参考来源写入和 AI 上下文绑定必须等待作品资产 owner、使用预检和用户工作区承接能力闭合。 + +### 8.8 导出和下载链路 + +`用户发起导出 -> 目标 owner BC 创建导出任务 -> owner / 权限 / 来源 / 许可预检 -> 异步生成导出包 -> 完成前重验 -> Account/Usage/Audit 生成短期下载凭证 -> 下载时再次重验 -> 写下载审计` + +作品导出归 Work/Content,知识库导出归 Knowledge,账户资料和安全事件导出归 Account/Usage/Audit。Account/Usage/Audit 可以统一下载凭证和下载审计,但不能替 owner BC 通过预检或生成导出内容。来源撤权、下架、召回、权限变化或导出许可变化必须让导出任务失败、过滤受限内容或要求用户缩小范围。 + +## 9. 架构非目标 + +- 不把六个产品空间机械拆成六套独立领域模型。 +- 不把市场做成完整电商、支付、结算、收益分成或内容社区。 +- 不让用户智能体、市场智能体或工作流智能体成为通用自动化平台。 +- 不让知识库绑定、市场授权、章节解析确认或导入解析自动污染作品事实。 +- 不复制 New-API 的模型路由、供应商成本和网关权威调用日志。 +- 不把个人中心聚合记录升级为事实写入 owner。 +- 本阶段不提供管理员 break-glass 正文访问能力;若后续因法务或合规需要引入,必须单独设计合规访问申请、双人复核、时间盒、字段范围、用户通知和审计状态机。 + +## 10. 关联阅读 + +- 产品定位与核心价值:`产品-01-产品定位与核心价值.md` +- 功能与交互边界:`产品-02-核心功能与交互边界.md` +- 用户旅程:`产品-03-用户旅程与操作流程.md` +- 管理员操作流程:`流程-01A-管理员操作流程(操作视角).md` +- 普通用户操作流程:`流程-01B-普通用户操作流程(操作视角).md` - 管理员系统处理流程:`流程-02A-管理员系统处理流程(系统视角).md` - 普通用户系统处理流程:`流程-02B-普通用户系统处理流程(系统视角).md` -- 统一数据库 Schema:`后端-04-统一数据库Schema-v1.md` -- 统一 API 契约:`后端-05-统一API契约-v1.md` +- 核心模型:`架构-02-核心数据结构与双轨模型.md` +- 状态机与约束:`架构-04-状态机与约束清单.md` diff --git a/design-docs/架构-02-核心数据结构与双轨模型.md b/design-docs/架构-02-核心数据结构与双轨模型.md index 0f9ff8d5..25a24b8f 100644 --- a/design-docs/架构-02-核心数据结构与双轨模型.md +++ b/design-docs/架构-02-核心数据结构与双轨模型.md @@ -1,178 +1,299 @@ # 架构-02:核心数据结构与双轨模型 -- 版本:v5 -- 更新日期:2026-05-10 -- 目标读者:架构/后端/前端/产品 -- 阅读时间:30-45 分钟 -- 边界说明:这里只定义模型层概念、不变式和归属边界;本文件描述目标模型,不代表当前代码都已实现。精确表结构以 `后端-04-统一数据库Schema-v1.md` 为准,精确接口(API)以 `后端-05-统一API契约-v1.md` 为准,精确状态机以 `架构-04-状态机与约束清单.md` 为准。 +- 版本:v6 +- 更新日期:2026-05-23 +- 目标读者:架构 / 后端 / 前端 / 产品 / 测试 +- 阅读时间:35-50 分钟 +- 边界说明:本文件定义核心模型、模型归属、双轨边界和跨模型不变式;不定义数据库字段、索引、接口路径或完整状态机。BC 边界见 `架构-01-系统全貌与边界上下文.md`,生命周期见 `架构-04-状态机与约束清单.md`,精确表结构和 API 由后端阶段承接。 -## 1. 双轨模型:规范数据(Canonical) / 待审层(Shadow) / 归档层(Archive) +## 1. 双轨模型 -### 1.1 定义 +### 1.1 三层定义 -- 规范数据(Canonical):用户认可的真实数据。正文、已确认作品知识、已确认规划项和叙事状态都必须能追溯来源。 -- 待审层(Shadow):系统或人工智能(AI)产出的候选、知识草稿、解析结果和风险标记。它是临时层,默认不可信。 -- 归档层(Archive):已接受、已拒绝、已过期、被替代或失败的历史对象。它用于审计和回看,不再作为当前待审对象。 - -一句话:**AI 只能写待审层(Shadow);只有用户确认、用户保存正文或章节级确认,才能让内容进入规范数据(Canonical)。** - -### 1.2 必须保留的硬边界 - -- 所有 AI 生成、提取、规划、检查结果都先进待审层(Shadow)。 -- 待审对象不能进入正式检索、正式图查询或下一次生成事实。 -- 修改后合并必须让旧知识草稿失效,并基于最终正文重新提取。 -- 全书解析(Full Parse)的批量确认边界固定为 `parse_job_id + chapter_id`,同章节内 all-or-nothing,不做跨章节一次性写入。 -- 待审层(Shadow)活跃区只保存待审对象;终态对象进入归档层(Archive)或审计记录。 - -## 2. 模型层分区 - -产品入口增加后,模型层不能按 UI 面板膨胀。Muse 的核心模型分为五类: - -| 模型分区 | 归属 | 负责什么 | 不负责什么 | +| 层 | 英文 | 含义 | 典型对象 | |---|---|---|---| -| 系统级模板与配置 | 管理员(Admin) / Admin BC | 元结构定义(MetaSchema)、字段定义、Prompt 版本、Agent 配置、上下文策略、全局知识库访问策略、评测集和 New-API 同步配置 | 不保存某个普通用户作品的正文或创作取舍 | -| 用户级作品数据 | 普通用户(User) / Content BC | 作品(Work)、章节(Chapter)、文本块(Block)、导入状态、正文版本、作品级绑定 | 不保存系统级 Prompt、Agent 和全局授权规则 | -| 作品级知识数据 | 单个作品 / Knowledge BC | 世界状态(World State)、叙事状态(Narrative State)、实体、关系、事件、属性变化、来源追溯 | 不跨作品共享正式事实,不直接替代全局知识库 | -| 全局知识库与访问策略 | 管理员(Admin) / Admin BC + Knowledge BC | 全局知识库(Global Knowledge Base)、资料集版本、启停、用户或用户组授权、可见/可检索/可生成策略 | 不自动写入任何作品的局域知识库 | -| 局域知识库与用户可见投影 | 单个作品 / Knowledge BC | 局域知识库(Local Knowledge Base)的内部完整知识、用户可见投影(User-visible Projection)、投影水位和来源解释 | 不把系统内部全部事实默认展示给普通用户 | +| 规范数据 | Canonical | 用户确认、用户保存或 owner 规则明确写入后的正式事实 | 正文、正式规划项、局域知识库事实、用户知识库资料、智能体版本、市场授权记录 | +| 待审层 | Shadow | AI、解析、检测、外部资产或系统处理产生的待确认对象,默认不可信 | AI 候选、规划候选、知识草稿、解析结果、风险标记、质量结果 | +| 归档层 | Archive | 待审对象或版本对象进入终态后的历史记录 | 已接受候选、已丢弃候选、已过期草稿、已停用版本、失败任务摘要 | -### 2.1 用户级作品数据 +一句话:AI 和外部资产只能产生候选、草稿、风险、快照或任务结果;正式作品事实必须由用户确认、用户保存或目标 owner 的显式规则写入。 -作品(Work)、章节(Chapter)、文本块(Block)是普通用户创作的内容骨架: +### 1.2 进入 Canonical 的入口 -- 作品(Work):单个作品的根对象,绑定作品级模板、导入状态、解析状态和授权上下文边界。 -- 章节(Chapter):作品内的顺序结构,承载章节摘要、章节目标和文本块集合。 -- 文本块(Block):正文的最小编辑、保存、候选合并和冲突处理单元。 +| 入口 | 可写 Canonical | 不允许写什么 | +|---|---|---| +| 用户保存正文 | 文本块(Block)正文 | 不自动确认知识草稿;不清除上游来源 lineage | +| 用户接受 AI 候选 | 正文 Canonical 和候选 Archive | 不自动确认知识草稿;不绕过来源撤权和合规阻断 | +| 用户确认规划候选 | 正式规划项或叙事状态 | 不把未确认候选送入后续生成上下文 | +| 用户确认知识草稿 | 局域知识库(Local KB)正式知识 | 来源失效、撤权、下架、召回或冲突未解决时不能来源型确认 | +| 用户维护用户知识库 | 用户知识库(User KB)资料和版本 | 不自动绑定作品,不自动进入任何作品事实 | +| 管理员发布系统配置 | 系统配置版本 | 不修改用户私有正文、用户智能体或用户知识库内容 | +| 市场授权或安装 | License、Install、授权快照 | 不自动写作品事实、不自动关联作品、不转移所有权 | -不变式: +### 1.3 不能进入 Canonical 的入口 -- 文本块(Block)级修订号(revision)是强制并发保护。 -- 用户保存正文后,正文就是规范数据(Canonical),后续提取失败不得回滚正文。 -- 导入正文可以初始化 Canonical 正文;导入后的解析结果仍必须进入 Shadow 等待章节级确认。 +- 全书解析章节确认只确认章节解析审阅结果,并产生或更新待确认知识草稿;它不写 Canonical 知识。 +- 知识库绑定只生成作品授权知识来源,不写正文、规划正式项或局域知识库。 +- 市场资产获取、购买、授权、安装或收藏不写作品事实。 +- 用户智能体、市场智能体和工作流智能体不直接写 Canonical;输出只能进入候选、草稿、试用结果或任务记录。 +- 来源撤权、下架、召回、owner 缺失或授权变化不自动回滚已确认 Canonical,但会限制后续生成、绑定、导出和新的知识确认。 -### 2.2 作品级知识数据 +## 2. 模型分区总览 -作品级知识数据不是一个泛泛的“知识库表单”,而是当前作品的正式事实和叙事运行态: +产品空间增加后,模型层仍按 owner 和写入边界分区,不按页面面板膨胀。 -- 世界状态(World State):人物、地点、物品、组织、规则、事件、时间线、因果链和实体关系。 -- 叙事状态(Narrative State):作品、章节或实体维度上的弧线进度、章节意图、角色目标、悬念、张力、节奏和叙事策略。 -- 来源追溯:正式知识必须能追溯到文本块(Block)、章节确认、规划项或用户手动操作。 - -世界状态(World State)和叙事状态(Narrative State)可以被用户通过作品规划台和知识与一致性工作区理解和修正,但底层状态载体仍以 `后端-04` 和 `架构-04` 为准。 - -### 2.3 全局知识库与局域知识库 - -全局知识库(Global Knowledge Base)和局域知识库(Local Knowledge Base)的边界如下: - -| 类型 | 写入归属 | 进入生成上下文的条件 | 普通用户看到什么 | +| 模型分区 | 归属 BC | 负责什么 | 不负责什么 | |---|---|---|---| -| 全局知识库(Global Knowledge Base) | 管理员维护和授权 | 管理员授权为可用于生成,且当前用户/用户组/作品满足访问策略 | 被授权全局资料的摘要、来源和可用范围 | -| 局域知识库(Local Knowledge Base) | 当前作品自动维护,来自正文、导入解析、规划和用户确认 | 内容已经进入规范数据(Canonical),且元数据允许进入 AI 上下文 | 作品知识、角色设定、世界设定、来源追溯和允许展示的摘要 | -| 用户可见投影(User-visible Projection) | Knowledge BC 从局域知识生成 | 仅作为读模型,不反向成为事实源 | 元数据允许展示、编辑、检索、导出的实体、关系、字段和摘要 | +| 账号、权限与安全 | Identity/Auth | 用户、管理员、角色、权限组、菜单、操作、数据范围、会话、安全事件 | 作品事实、市场授权事实、外部网关权威日志 | +| 系统治理配置 | Admin/Governance | MetaSchema、系统功能链路、保护节点、开放槽位、系统 Prompt、系统智能体默认链路、质量策略 | 用户私有作品内容和用户私有资产内容 | +| 作品内容 | Work/Content | 作品、章节、文本块、正文版本、正文来源归因、导入正文、正式规划项、叙事状态和作品导出任务 | 系统配置、市场资产记录、用户知识库资料 | +| 知识体系 | Knowledge | 局域知识库、用户知识库、全局知识资料处理、知识草稿、知识来源绑定、索引和投影 | 市场授权交易、智能体槽位、正文编辑事实 | +| 智能体体系 | Agent | 智能体、版本、工具授权、试用、安装、作品槽位绑定、运行快照 | 系统保护节点的最终 authority、作品正文写入 | +| AI 编排与待审对象 | AI Orchestration | 生成、分析、检测、上下文组装、质量门控、候选、风险标记 | Canonical 事实写入、市场治理、账户安全 | +| 市场资产 | Marketplace/Asset | 市场对象、发布、审核、许可、获取、安装、治理、申诉、来源状态事件 | 源作品、源智能体、源知识库的事实 owner | +| 账户用量与审计 | Account/Usage/Audit | 用量归属、权益快照、个人中心聚合、业务审计、接口调用日志、下载凭证和下载审计 | 业务事实写入、owner 导出内容和外部网关权威成本 | +| 外部集成 | Integration | New-API、文件、检索、通知等外部绑定、幂等、重试、correlation | Muse 内部事实 owner | -全局知识库不会因为参与生成就成为作品事实。局域知识库也不会因为用户能看见某些字段,就把系统内部完整知识全部暴露出来。 +## 3. 作品内容模型 -## 3. 元结构定义(MetaSchema)边界 +| 模型 | 说明 | 关键不变式 | +|---|---|---| +| Work | 单个创作项目,也是可能发布为市场作品资产的源对象 | owner 明确;作品资产发布快照不能替代源作品 owner | +| Chapter | 作品内顺序结构,承载章节正文、目标、摘要和解析审阅边界 | 同一作品内顺序稳定;全书解析按章节确认 | +| Block | 正文最小编辑、候选合并和冲突处理单元 | 写入必须带 expectedRevision;revision 单调递增 | +| Block Source Attribution | 正文 revision 的来源归因 | 如果正文包含 AI、市场、外部知识或授权知识来源,必须绑定 source lineage、authorization snapshot、许可限制和召回状态 | +| Import Batch | 导入旧稿的批次记录 | 导入正文可以初始化 Canonical 正文;解析结果仍进 Shadow | +| Parse Job | 全书解析批次 | 由 AI Orchestration 生成章节解析结果,不写 Local KB | +| Chapter Parse Result | 单章节解析结果 | Shadow 对象;按 parseJob + chapter 边界审阅 | +| Chapter Review | 用户对章节解析结果的审阅状态 | 审阅确认只产生或更新知识草稿,不写 Canonical 知识 | +| Planning Item | 用户确认后的正式规划项 | 候选未确认前不得进入生成事实上下文 | +| Narrative State | 作品、章节、实体维度的叙事运行态 | 需要真实持久化载体;不能只靠 MetaSchema 表达 | -### 3.1 MetaSchema 的角色 +正文保存、候选接受和导入正文初始化都只解决正文事实。它们产生的新知识必须通过提取、草稿、用户确认后才进入局域知识库。正文来源归因是当前正文 revision 的一部分,不能只依赖历史候选 Archive;导出、后续生成、知识提取和来源撤权重验都必须能从当前正文追溯到相关来源。 -元结构定义(MetaSchema)是模板、字段、校验规则、表单渲染和上下文注入的模型边界。普通用户界面里的“创作规则 / 作品模板 / 字段模板”,在底层都映射到 MetaSchema 或其字段定义。 +## 4. 知识体系模型 + +### 4.1 三类知识库 + +| 类型 | 归属 | 主要用途 | 进入作品的方式 | +|---|---|---|---| +| 全局知识库(Global KB) | 管理员 / 系统 | 写作方法、平台规范、公共资料、系统授权知识 | 管理员授权后作为可见、可检索或可生成来源;不写 Local KB | +| 用户知识库(User KB) | 普通用户 | 跨作品复用的个人知识资产,可维护、版本化、绑定、发布 | 用户显式绑定到作品后作为授权知识来源;不写 Local KB | +| 局域知识库(Local KB) | 单个作品 | 当前作品正式知识、世界状态和叙事状态 | 只能由用户确认知识草稿或手动知识修正写入 | + +用户知识库必须区分: + +- 用户自有知识库:用户可维护、导出、绑定和在符合权利条件时发布到市场。 +- 账户可用知识库:用户通过授权获得使用权,可见于账户资产。 +- 已安装知识库:用户把账户可用知识库加入知识库工作台或可选来源。 +- 已绑定知识库:知识库被绑定到某个作品,成为授权知识来源。 + +已授权、已安装或已绑定都不等于所有权转移,也不等于内容进入局域知识库。 + +### 4.2 知识对象 + +| 模型 | 说明 | 关键不变式 | +|---|---|---| +| Knowledge Draft | 待确认知识草稿 | 必须携带来源快照、上游 lineage、授权快照、风险标记和过期状态 | +| Local Knowledge Entity | 当前作品正式实体 | 只属于一个作品;必须可追溯来源 | +| Local Knowledge Relation | 当前作品正式关系 | 关系变更必须能追溯来源或人工操作 | +| Knowledge Attribute Change | 属性变更历史 | 正式知识修改必须留 change log | +| Knowledge Source Binding | 作品绑定的授权知识来源 | 只授予检索或生成来源可用性,不写作品事实 | +| Knowledge Projection | 用户可见投影和检索投影 | 是读模型,不是事实源 | +| Knowledge Processing Job | 资料处理、切块、索引、入 RAG 和投影重建任务 | 失败不得让未通过处理的资料进入生成上下文 | + +### 4.3 来源和 lineage + +所有可能影响正文、知识、规划或生成上下文的外部来源都必须保留 lineage: + +| 模型 | 说明 | +|---|---| +| Source Lineage | 原始来源、派生路径、用户动作、AI 候选、市场资产、知识库、版本和许可链路 | +| Source Snapshot | 生成候选或草稿时的正文、规划、资料、授权和版本快照 | +| Authorization Snapshot | 某次生成、绑定、导出或确认时的许可、用途、权限、状态和限制 | +| Source Status | active、stale、revoked、delisted、recalled、owner_missing、needs_recheck、blocked 等来源状态 | +| Source Status Event | 来源状态变化事件 | 由来源 owner 或 Marketplace/Asset 发起,带幂等键、来源版本、影响范围和传播原因 | +| Source Propagation Job | 来源状态传播任务 | 按目标对象记录 pending / applied / failed / skipped,失败时默认禁用新使用 | +| Risk Marker | 冲突、重复、低置信、权利不清、隐私、安全、合规或来源不可用风险 | + +如果正文来自 AI 候选、市场作品参考、外部知识或授权知识来源派生内容,后续提取出的知识草稿必须继承上游 lineage,不能只标记为“用户正文”。 + +Authorization Snapshot 是跨 BC value object,不是某个页面字段。最小语义包括:actor、owner、source object、source version、license or policy、allowed purpose、forbidden purpose、status、checkedAt、expiresAt 或需重验条件。快照可以由 owner 表内联、独立快照表或事件载荷承载,具体形态由后端阶段决定,但引用对象必须保存快照 id 或等价不可变指纹,不能只保存“当前授权通过”布尔值。 + +Source Status Event 由来源 owner 发出,Source Propagation Job 负责传播到候选、草稿、绑定、安装、运行任务、导出任务、下载凭证、个人中心和市场记录。传播失败时,系统必须先阻止新使用,再暴露可重试治理入口。 + +## 5. 智能体体系模型 + +### 5.1 智能体基本模型 + +| 模型 | 说明 | 权威归属 | +|---|---|---| +| Agent | 智能体根对象 | Agent BC | +| Agent Version | Prompt、模型绑定、参数、工具授权、输出合同的版本快照 | Agent BC | +| System Agent | 管理员发布的系统级智能体 | Admin/Governance + Agent | +| User Agent | 用户创建、导入、购买或安装后可管理的智能体 | Agent BC | +| Configured Agent | Prompt 模板、模型绑定和参数配置组合 | Agent BC | +| Workflow Agent | 多步骤、多工具或多智能体编排能力 | Agent BC;受 Admin/Governance 保护节点约束 | +| Installed Agent | 市场智能体安装到账户后的授权状态 | Marketplace/Asset + Agent | +| Agent Asset | 智能体进入市场后的资产形态 | Marketplace/Asset | + +### 5.2 系统功能编排与槽位 + +| 模型 | 说明 | 不变式 | +|---|---|---| +| System Function Chain | 生成、分析、检测、导入解析、知识处理等系统预编排链路 | 由系统治理配置发布版本 | +| Protected Node | 输入合规、输出合规、权限过滤、拆分切块、入 RAG、语义围栏、静态检查、Shadow -> Canonical、质量门控等节点 | 不可被用户、市场智能体或 MetaSchema 重分类为可替换 | +| Override Slot | 系统 allowlist 中允许用户替换子智能体的位置 | 必须有用途、输入、输出、资源、工具、失败策略和下游消费合同 | +| Agent Set | 某个作品当前关联的一组智能体和槽位绑定 | 按作品隔离 | +| Agent Slot Binding | 用户为作品开放槽位绑定的智能体版本和授权快照 | 撤权、越权、输出不合约时回退默认或阻断 | +| Agent Runtime Permission Envelope | 某次试用或运行的服务端权限包 | 绑定 actor、work、slot、agentVersion、allowedTools、allowedContextScopes、egressPolicy、budget、sourceSnapshot 和审计要求 | + +用户配置的是开放槽位中的子智能体,不是整条系统功能链路。用户智能体输出默认不可信,只能进入候选、草稿、试用结果或风险标记。 + +所有工具调用、上下文读取和外部请求必须经服务端 tool broker 或等价执行边界校验 Agent Runtime Permission Envelope。前端、智能体 Prompt 或模型输出自报的权限无效。 + +## 6. 市场资产模型 + +### 6.1 资产类型 + +| 市场资产 | owner 角色 | 授权后当前可以做什么 | 授权后不能做什么 | +|---|---|---|---| +| Work Asset | sourceWorkOwner、marketplaceAssetRecord、publishSnapshot、targetWorkOwner 分离 | 阅读、收藏、授权记录 | 自动写用户作品事实、绕过来源追踪、直接进 AI 上下文;当前也不能模板化、参考来源写入或 AI 上下文绑定 | +| Agent Asset | 源智能体 owner / 版本快照 | 获取、安装、试用、关联作品、替换开放槽位 | 读取未授权作品、调用未授权工具、替换保护节点 | +| Knowledge Base Asset | 源知识库 owner / 版本快照 | 获取、安装、绑定作品、参与检索或生成候选 | 自动写 Local KB、再上架或超许可复用 | + +### 6.2 市场对象 + +| 模型 | 说明 | 不变式 | +|---|---|---| +| Marketplace Asset | 市场对象统一根 | 不替代源对象 owner | +| Publish Draft | 发布者准备中的发布草稿 | 草稿版本、资产版本、材料摘要和公开范围变化会使旧检查快照失效 | +| Publish Check Snapshot | 发布检查快照 | 必须匹配资产版本、草稿版本、材料 hash、权利声明和安全检查结果,且只能原子消费一次 | +| Review Submission | 审核提交记录 | 只能由未过期且匹配当前草稿的发布检查快照创建 | +| Listing | 发布记录、展示状态、审核状态和版本 | 上架不转移所有权 | +| License | 可见、可用、可复制、可商用、可导出、可绑定、可再发布等规则 | 每次使用必须固化授权快照 | +| Purchase / Authorization | 用户获得许可的记录 | 可以来自免费获取、管理员授权或外部订单引用;不等于安装 | +| Install | 智能体或知识库加入账户可用资产 | 不等于关联作品或绑定知识来源 | +| Link / Bind | 目标 owner 空间完成的关联或绑定 | 必须由目标空间预检和用户确认 | +| Governance Action | 下架、召回、恢复、部分恢复、申诉、终裁 | 必须产生影响预览、审计和来源传播 | + +作品资产当前受限:`work_asset_template_enabled=false`、`work_asset_reference_enabled=false`、`work_asset_ai_context_enabled=false`。开启任一能力前,必须先完成 ADR、`产品-02C` owner、Schema/API、使用预检、来源 lineage、授权快照、导出限制和状态机承接。 + +## 7. Handoff 模型 + +跨空间 handoff 的模型边界如下: + +| 模型 | 说明 | 不变式 | +|---|---|---| +| Handoff Token | 来源空间创建的一次性跳转凭据 | 由 source BC 签发;短期有效,只能落地一次 | +| Handoff Session | 目标空间消费 token 后生成的更窄会话 | 由 target owner BC 创建;绑定 actor、target owner、object、action、version、authorization snapshot、return point、cancel state | +| Precheck Result | 目标 owner 对权限、状态、来源、版本、许可、工具授权的预检结果 | 归 target owner BC;原子消费;过期或状态变化后必须重验 | +| Return Context | 成功、失败、取消后回到来源空间的上下文 | 只能刷新状态,不能补写目标事实 | + +Handoff 不能成为绕过权限、预检、确认、审计和 owner 写入边界的通道。 + +## 8. 账户、用量、导出和审计模型 + +| 模型 | 说明 | 不变式 | +|---|---|---| +| Account Profile | 个人资料、展示名、基础偏好入口 | 身份和安全字段归 Identity/Auth;个人中心只能展示和编辑允许字段 | +| User Preference | 用户偏好、通知偏好、创作辅助偏好 | 不能改变作品 owner、授权或系统保护节点 | +| Entitlement Snapshot | 套餐、配额、权益、余额或外部网关权益的本地快照 | 不替代 New-API 或交易 owner 的权威记录 | +| Usage Record | 生成、检索、质量评估、导出等任务的用量归属 | 需能归属到用户、作品、任务、智能体、知识来源或市场授权 | +| Personal Center Account Summary | 个人中心账户总览读模型 | 聚合 Profile、Preference、Entitlement、Usage、License、Purchase、Publish 和 Security Event;不能反写 owner 事实 | +| Asset Summary | 个人中心资产摘要 | 来自 Marketplace/Asset、Agent、Knowledge 和 Work owner 的聚合,只提供跳转和状态摘要 | +| License Record / Purchase Record | 授权和购买记录读模型 | 权威来源仍是 Marketplace/Asset 或后续交易 owner | +| Publish Record | 发布记录读模型 | 权威来源仍是 Marketplace/Asset 的 Listing / Review Submission / Governance Action | +| Integration Call Log | Muse 调用 New-API、文件、检索、通知等外部接口的轻量日志 | 记录 correlationId、idempotencyKey、重试组和摘要,不保存敏感全文 | +| Audit Log | 高危业务动作的 append-only 审计 | 记录操作者、动作、目标、理由、范围、时间、前后状态和结果 | +| Work Export Job | 作品正文、设定、规划和作品知识导出任务 | 归 Work/Content;创建、完成前、下载时都要重验权限和来源许可 | +| Knowledge Export Job | 用户知识库或知识资料导出任务 | 归 Knowledge;不能导出未授权或处理受限资料 | +| Account Export Job | 个人资料、安全事件或账户记录导出任务 | 归 Account/Usage/Audit;只能导出个人中心 owner 范围内数据 | +| Download Credential | 短期下载凭证 | 绑定 actor、任务、范围、对象版本和授权快照;过期或不匹配必须拒绝 | +| Export Package | 导出包本体 | 必须加密、按 owner 隔离、服务端代理下载、TTL 或销毁策略明确;凭证撤销不等于包体可永久保留 | +| Security Event | 登录、二次验证、敏感导出、凭证失效、异常访问等安全事件 | 个人中心可见,管理员只看合规需要的脱敏摘要 | + +审计日志必须写入与读取分权。普通管理员不得删除或改写高危审计;高危审计应采用 WORM、哈希链或等价防篡改机制。审计导出必须脱敏并记录访问审计,留存、删除例外和法务保留由后端/合规阶段细化。 + +## 9. MetaSchema 与配置模型 + +MetaSchema 是管理员治理的结构定义,不是作品事实,也不是 UI 面板模型。 MetaSchema 负责: -- 定义字段类型、必填、枚举、引用和校验规则。 -- 定义字段所属领域、作用范围和目标类型。 -- 决定哪些字段能进入 UI、AI 上下文、检索、导出或用户编辑。 -- 给作品规划、提取、校验和投影提供结构约束。 +- 定义字段类型、校验、枚举、引用、领域、范围和目标类型。 +- 控制字段是否可见、可编辑、可检索、可导出、可进入 AI 上下文。 +- 约束提取、规划、检查、投影和上下文组装。 MetaSchema 不负责: -- 保存 Narrative State 的运行态值。 -- 替代作品正文、实体关系、事件时间线或用户确认记录。 -- 直接表达每个 UI 面板。 +- 保存正文、知识、叙事运行态或用户确认记录。 +- 把系统保护节点重新分类为可替换槽位。 +- 替代作品规划、局域知识库或用户知识库的事实载体。 -### 3.2 领域、范围和目标类型 - -模型层继续使用三维分类: - -- 领域(domain):内容(content)、世界(world)、叙事(narrative)。 -- 范围(scope):作品(work)、章节(chapter)、实体(entity)、关系(relation)、事件(event)。 -- 目标类型(targetType):具体实体、事件、章节或模板类型。 - -叙事领域(narrative)的字段可以定义“角色弧光、章节意图、悬念、张力、节奏、叙事视角”等结构,但运行态值必须落到叙事状态(Narrative State)等真实载体中,不能只靠 MetaSchema 自身承载。 - -### 3.3 元数据可见性字段边界 - -元数据对象需要表达普通用户可见性和系统使用边界。模型层至少保留这些语义: +以下是语义控制项,不是后端字段名。后端阶段可以决定字段命名,但不能合并这些语义。 | 控制项 | 含义 | |---|---| -| `uiVisible` | 是否在普通用户界面展示 | -| `aiContext` | 是否允许进入 AI 上下文 | -| `userEditable` | 普通用户是否可以编辑 | -| `userSearchable` | 普通用户是否可以检索 | -| `exportable` | 是否允许随作品导出 | +| uiVisible | 是否在用户界面展示 | +| aiContext | 是否允许进入 AI 上下文 | +| userEditable | 用户是否可编辑 | +| userSearchable | 用户是否可检索 | +| exportable | 是否允许随范围导出 | -这些控制项的精确字段名、表结构和接口参数不在本文件定义。这里的模型约束是: +`uiVisible=false` 不等于不能参与 AI;`aiContext=true` 不等于用户可见;`exportable=true` 仍必须受 owner、授权、来源状态和导出许可约束。 -- `uiVisible=false` 不等于不能参与 AI 生成;是否进入上下文由 `aiContext` 决定。 -- `aiContext=true` 不等于普通用户可见;是否展示由 `uiVisible` 决定。 -- `userEditable=true` 不等于越过待审层(Shadow);用户编辑正式知识仍需记录来源和变更。 -- `exportable=true` 只能在用户拥有导出权限且对象属于可导出范围时生效。 +## 10. 规划维度到模型边界 -## 4. 作品规划台到模型边界的映射 +作品规划台(Planning Desk)是产品入口,不是新的模型集合。 -作品规划台(Planning Desk)是产品入口,不是新的一级模型集合。规划项需要映射到已有的世界状态(World State)、叙事状态(Narrative State)、元结构定义(MetaSchema)、作品(Work)、章节(Chapter)或文本块(Block)边界。 +| 规划维度 | 模型落点 | 说明 | +|---|---|---| +| 作品方向 | Work + Planning Item + Narrative State(work) + MetaSchema | 题材、主题、基调、禁区、结局方向 | +| 章节大纲 | Chapter + Planning Item + Narrative State(chapter) | 章节目标、摘要、主线和支线 | +| 世界设定 | Local KB + Knowledge Entity / Relation + MetaSchema(world) | 角色、地点、组织、规则、事件 | +| 角色关系 | Local KB + Narrative State(entity) | 角色档案、动机、弱点、弧光、关系变化 | +| 事件时间线 | Local KB(event/relation) + Narrative State(chapter/entity) | 因果链和长期影响 | +| 情节节拍 | Planning Item + Narrative State(chapter) + Risk Marker | 章节内推进和张力控制 | +| 文风检查 | Risk Marker + Quality Result + MetaSchema(content/narrative) | 风格漂移、句式、节奏、角色声音 | -| 规划维度 | 用户语言 | 模型落点 | 说明 | -|---|---|---|---| -| 作品方向 | 题材、类型、主题、读者承诺、基调、禁区、结局方向 | Work + MetaSchema + Narrative State(work) | 作为作品级方向和后续生成约束 | -| 作品结构 | 章节顺序、章节摘要、当前字数、完成状态、近期目标 | Work + Chapter + Narrative State(work/chapter) | 章节骨架归 Content,推进状态归 Narrative State | -| 世界实体 | 角色、地点、物品、组织、规则、关系 | World State + MetaSchema(world/entity/relation) | 正式事实进入局域知识库 | -| 事件时间线 | 重大事件、发生章节、参与角色、因果效果、长期影响 | World State(event/relation) + Narrative State(chapter/entity) | 连接世界事实和剧情推进 | -| 角色弧光 | 目标、动机、弱点、秘密、变化阶段、关系变化 | Narrative State(entity) + World State(entity/relation) | 角色档案事实和弧线进度分层保存 | -| 剧情结构 | 卷、幕、章节、主线、支线、伏笔与回收 | Narrative State(work/chapter) + MetaSchema(narrative) | 约束长期推进,不单独建剧情表单模型 | -| 章节叙事规划 | 章节目标、情节节拍、冲突、结果、下一步钩子 | Chapter + Narrative State(chapter) + Block 上下文 | 近程控制面,承接产品语言里的“情节节拍 / 场景推进” | -| 张力节奏 | 利害关系、阻力、反转、悬念问题、信息释放、高潮密度 | Narrative State(work/chapter) + 风险标记 | 作为检查和生成约束,不做重表单 | -| 叙事策略 | 叙事视角、时态、叙事距离、多视角切换、信息遮蔽 | MetaSchema(narrative) + Narrative State(chapter/work) | 约束章节生成和风格一致性 | -| 文风与质量检查 | 作者声音、句式、节奏、描写密度、风格漂移、一致性风险 | MetaSchema(content/narrative) + 风险标记 + Usage/Audit 评估结果 | 检查结果提示和定位,不自动写正式事实 | +当前不把小说场景(Scene)升为独立一级模型。产品可以使用“情节节拍 / 场景推进”这类作者语言,模型仍归入 Chapter、Planning Item 和 Narrative State。未来如需独立 Scene,必须先补 ADR,并同步检查表结构、接口、前端状态和章节确认边界。 -### 4.1 小说场景(Scene)边界 +## 11. 数据流转规则 -当前阶段不把小说场景(Scene)升成独立一级模型,也不采用 `Outline / Scene` 作为两个并列一级模型。产品可以使用“情节节拍 / 场景推进”这类作者语言,但模型归入章节叙事规划,并通过 Chapter、Block 上下文和 Narrative State(chapter)承载。 +### 11.1 Shadow -> Canonical -如果未来需要让 Scene 成为独立模型,必须先补 架构决策记录(ADR),并同步检查表结构、接口、前端状态和章节级确认边界;不能在产品或前端文档里先行假定已经存在。 +待审对象进入 Canonical 的共同条件: -## 5. 数据流转规则(模型视角) +1. 对象存在、未过期、未被替代、未撤权、未召回。 +2. actor、owner、对象、动作、版本和授权快照匹配。 +3. 来源快照仍匹配当前来源,或用户选择了允许的独立确认路径。 +4. 写入目标 owner BC 的前置条件满足。 +5. 成功后待审对象迁出活跃区,进入 Archive 或保留为已处理历史。 -### 5.1 Shadow -> Canonical +### 11.2 绑定、安装和授权 -待审层(Shadow)进入规范数据(Canonical)的最小条件: +- License 表示许可,不表示安装。 +- Install 表示加入账户可用资产,不表示关联作品。 +- Agent Slot Binding 表示作品槽位使用某个智能体版本,不表示可替换保护节点。 +- Knowledge Source Binding 表示作品可以把某个知识库作为检索或生成来源,不表示写 Local KB。 +- Work Asset 授权表示可以按许可阅读、收藏或记录;当前不表示可模板化、可参考写入或进 AI 上下文。 -- 待审对象存在、未过期、未被替代。 -- 正文合并必须通过文本块(Block)修订号保护。 -- 知识草稿必须通过来源快照(Source Snapshot)校验。 -- 需要用户确认的对象必须有明确用户决策。 -- 成功后待审对象必须迁出活跃区,进入归档层(Archive)或审计历史。 +### 11.3 来源状态变化 -### 5.2 外部内容 -> Canonical 与 Shadow +来源撤权、下架、召回、owner 缺失、版本变化或处理失败必须传播到: -- 导入正文是用户动作,可以初始化 Canonical 正文。 -- 导入后的全书解析结果仍是待确认知识草稿,必须先进 Shadow。 -- 章节确认成功后,该章节范围内可确认对象一次性进入 Canonical;失败时不得部分写入。 +- AI 候选、规划候选、知识草稿和解析待确认结果。 +- 作品知识来源绑定、智能体槽位绑定、已安装智能体和已安装知识库。 +- 运行中任务、导出任务、下载凭证、用量记录和个人中心记录。 +- 市场详情、发布者记录、授权记录、管理员治理记录。 -### 5.3 冲突与一致性 +已确认 Canonical 不自动回滚;但受限来源不得继续用于新生成、新绑定、新导出许可范围或新的来源型知识确认。 -- 内容冲突:文本块(Block)修订号不匹配,交给前端冲突处理和重试。 -- 知识冲突:新提取事实和已确认事实不一致,只能生成待确认知识或风险标记,由用户取舍。 -- 投影不一致:外部检索或图查询投影未追平时,不得把投影结果当事实源;需要通过 PostgreSQL 事实源和覆盖层补齐。 - -## 6. 关联阅读 +## 12. 关联阅读 - 系统边界与 BC:`架构-01-系统全貌与边界上下文.md` -- ADR:`架构-03-关键决策与原则(ADR).md` -- 生命周期与状态机:`架构-04-状态机与约束清单.md` +- 状态机与约束:`架构-04-状态机与约束清单.md` - 管理员系统处理流程:`流程-02A-管理员系统处理流程(系统视角).md` - 普通用户系统处理流程:`流程-02B-普通用户系统处理流程(系统视角).md` -- 统一数据库表结构:`后端-04-统一数据库Schema-v1.md` -- 统一 API 契约:`后端-05-统一API契约-v1.md` +- 功能与交互边界:`产品-02-核心功能与交互边界.md` diff --git a/design-docs/架构-04-状态机与约束清单.md b/design-docs/架构-04-状态机与约束清单.md index 28dad03c..90049dde 100644 --- a/design-docs/架构-04-状态机与约束清单.md +++ b/design-docs/架构-04-状态机与约束清单.md @@ -1,563 +1,723 @@ # 架构-04:状态机与约束清单 -- 版本:v3 -- 更新日期:2026-05-10 -- 目标读者:架构/后端/前端/测试/产品 -- 阅读时间:30–45 分钟 -- 边界说明:本文件是 Muse 生命周期、状态流转与不变式的单一来源;本文件描述目标约束,不代表当前代码都已实现。表结构细节看 `后端-04-统一数据库Schema-v1.md`,接口(API) 契约看 `后端-05-统一API契约-v1.md`。 +- 版本:v4 +- 更新日期:2026-05-23 +- 目标读者:架构 / 后端 / 前端 / 测试 / 产品 +- 阅读时间:45-60 分钟 +- 边界说明:本文件是 Muse 生命周期、状态流转和不可绕过约束的架构层单一来源;状态值是概念层合同,具体字段名、表结构和接口路径由后端阶段承接。系统边界见 `架构-01-系统全貌与边界上下文.md`,核心模型见 `架构-02-核心数据结构与双轨模型.md`。 -## 1. 目标 +## 1. 状态机总原则 -这份清单只回答两个问题: +本文件回答三个问题: -1. 每个状态对象允许怎么流转? -2. 哪些约束是不能被“实现方便”拿掉的? -3. 系统配置、知识库授权、投影和元数据可见性变更必须遵守哪些版本边界? +1. 每类核心对象允许如何流转。 +2. 哪些前置条件、后置条件和失败路径不能被实现绕过。 +3. 授权、来源、配置、任务、导出和审计如何在状态变化中保持可追溯。 -如果某次实现需要绕开这里的规则,那不是规则错了,通常是设计边界已经歪了。 +全局原则: -## 2. 状态机 +- 状态机按 owner BC 写入,不能由页面、聚合视图或外部服务直接改写。 +- 状态变化必须保留 actor、owner、object、action、version、source、authorization snapshot 和审计上下文。 +- AI、市场资产、外部知识、用户智能体和系统任务不能直接写作品事实。 +- 已确认 Canonical 不因撤权、下架、召回或外部失败自动回滚;但受限来源不得继续用于新生成、新绑定、新导出许可范围或新的来源型知识确认。 +- 高影响操作必须支持影响预览、二次确认、分权复核、幂等、取消、失败恢复和审计。 -### 2.1 `users.status` +## 2. 通用状态语义 -| 状态 | 含义 | 允许进入方式 | 允许离开方式 | +### 2.1 通用任务状态 + +| 状态 | 含义 | 允许离开方式 | 约束 | |---|---|---|---| -| `active` | 正常可用 | 注册完成;撤销删除申请 | 发起删除申请 | -| `pending_deletion` | 30 天缓冲期 | 用户发起删除申请 | 撤销删除申请;后台到期物理删除 | +| queued | 已创建,等待执行 | running / canceled | 必须有 owner、任务类型、幂等键或去重上下文 | +| running | 执行中 | succeeded / failed / canceled / needs_recheck | 必须记录配置快照和授权快照 | +| needs_recheck | 权限、授权、来源、版本或 owner 状态变化,需重验 | running / failed / canceled | 重验前不得继续写事实或生成可下载结果 | +| partial_completed | 批量任务部分子任务完成 | running / succeeded / failed / canceled | 只允许作为父任务聚合视图;子任务仍必须有各自终态 | +| succeeded | 成功完成 | 终态 | 必须满足对应后置条件 | +| failed | 失败 | 终态或新任务重试 | 失败不得静默写 Canonical | +| canceled | 用户或系统取消 | 终态 | 取消不得保留可继续消费的待审写入 | -硬约束: +### 2.2 通用版本状态 -- `pending_deletion` 时必须写 `deletion_requested_at` -- 物理删除前可选写 `deleted_at`,删除完成后行不再存在 - -### 2.2 `works.parse_status` - -| 状态 | 含义 | 允许进入方式 | 允许离开方式 | +| 状态 | 含义 | 允许离开方式 | 约束 | |---|---|---|---| -| `not_parsed` | 未开始解析 | 新建作品;导入完成 | 开始解析 | -| `parsing` | 解析中 | 调用 `POST /works/{workId}/parse` | 解析成功;解析失败 | -| `parsed` | 已成功完成一次全书解析 | 解析任务成功结束 | 不允许再次解析 | -| `parse_failed` | 最近一次解析失败 | 解析任务失败 | 重试解析 | +| draft | 草稿 | review / active / archived | 可编辑但不可被正式运行链路使用 | +| review | 待复核 | active / rejected / draft | 高风险版本必须进入此状态 | +| active | 当前可用 | disabled / archived / superseded | 运行任务读取 active 快照后不得中途混用新版本 | +| disabled | 已停用 | active / archived | 停用后不得进入新任务 | +| superseded | 被新版本替代 | archived | 历史任务仍可追溯 | +| archived | 归档 | 终态 | 不能再被新任务引用 | -硬约束: +### 2.3 通用来源状态 -- `imported_at` 为空时,禁止进入 `parsing` -- `parsed_at` 只能在进入 `parsed` 时写入 -- 一旦进入 `parsed`,不允许再次进入 `parsing` - -### 2.3 `generation_jobs.status` - -| 状态 | 含义 | 允许进入方式 | 允许离开方式 | -|---|---|---|---| -| `queued` | 已创建,未执行 | `POST /ai/generate` | worker 拉起执行;取消 | -| `running` | 生成中 | worker 开始执行 | 成功;失败;取消 | -| `succeeded` | 生成成功 | 写出建议(Suggestion) 后 | 终态 | -| `failed` | 生成失败 | 外部模型/网关/业务校验失败 | 终态 | -| `canceled` | 作业取消 | 用户或系统取消 | 终态 | - -硬约束: - -- `succeeded` 时,必须存在 1 条对应的 `suggestions` 活跃层(Active) 行 -- `failed` / `canceled` 不得生成 `suggestions` - -### 2.4 `extraction_jobs.status` - -| 状态 | 含义 | 允许进入方式 | 允许离开方式 | -|---|---|---|---| -| `queued` | 已排队 | 建议(Suggestion)接受后;导入解析开始;手动提取 | 开始执行;取消 | -| `running` | 提取中 | worker 开始执行 | 成功;失败;取消 | -| `succeeded` | 提取完成 | 提案(Proposal)已批量写入活跃层(Active) | 终态 | -| `failed` | 提取失败 | 模型/解析/去重环节失败 | 终态 | -| `canceled` | 作业取消 | 用户/系统取消 | 终态 | - -硬约束: - -- `succeeded` 时允许 `createdProposalCount = 0` -- `failed` 不影响已存在规范数据(Canonical) 数据 - -### 2.5 建议(Suggestion) 生命周期 - -建议(Suggestion) 不再持久保留终态状态。活跃层(Active) 表存在即 `pending_review`。 - -```text -generation_job:succeeded - -> suggestions(active, pending_review) - -> accepted -> suggestion_archive(disposition=accepted) - -> rejected -> suggestion_archive(disposition=rejected) - -> expired -> suggestion_archive(disposition=expired) -``` - -硬约束: - -- 活跃层(Active) 表中的建议(Suggestion) 必须未过期 -- 同一条建议(Suggestion) 只能归档一次 -- 接受后必须从活跃层(Active) 表删除 -- 接受时若用户改写内容,`final_content` 写归档;原内容保留在 `original_content` - -### 2.6 提案(Proposal) 生命周期 - -提案(Proposal) 同样只在活跃层(Active) 表保存待审对象。这里描述的是**增量提取/单条审核**路径;全书解析的章节批量确认见 `2.7`。 - -```text -extraction_job:succeeded - -> proposals(active, pending_review) - -> accept -> proposal_archive(disposition=accepted) - -> reject -> proposal_archive(disposition=rejected) - -> expire -> proposal_archive(disposition=expired) -``` - -额外阶段: - -| 字段 | 取值 | 说明 | +| 状态 | 含义 | 对后续动作的影响 | |---|---|---| -| `stage` | `raw` | 刚提取,尚未完成自动校验 | -| `stage` | `validated` | 已完成去重/消歧/冲突标注 | +| active | 来源有效 | 可按许可参与检索、生成、绑定或确认 | +| stale | 来源快照与当前来源不匹配 | 待审确认禁用,需重新提取或重验 | +| revoked | 授权撤销 | 禁止新生成、新绑定、新来源型确认和受限导出 | +| delisted | 市场下架 | 禁止新获取和新安装;已授权使用按治理策略限制 | +| recalled | 召回 | 影响已安装、已绑定、运行中任务、导出和未确认对象 | +| owner_missing | 源 owner 缺失或权限转移不明 | 禁止模板化、参考写入、AI 上下文绑定和高风险使用 | +| needs_recheck | 版本、许可或权利状态变化 | 进入重验,不得继续消费旧快照 | +| blocked | 合规、安全、侵权或隐私阻断 | 禁止继续使用,保留审计和申诉路径 | + +## 3. 账号、权限和安全状态 + +### 3.1 用户状态 + +| 状态 | 含义 | 允许进入方式 | 允许离开方式 | +|---|---|---|---| +| active | 正常可用 | 注册完成、撤销删除 | pending_deletion / suspended | +| pending_deletion | 用户申请删除,处于缓冲期 | 用户本人确认删除 | active / deleted | +| suspended | 安全或合规限制 | 管理员治理动作 | active / deleted | +| deleted | 已删除或匿名化完成 | 删除任务完成 | 终态 | 硬约束: -- 只有 `stage='validated'` 的提案(Proposal) 才允许进入人工审核界面(UI) -- `accepted` 后必须记录 `applied_entity_id` 或 `applied_snapshot` +- 删除、封禁、恢复都必须写审计。 +- 删除不得破坏法务、审计、交易、授权和安全留存例外。 +- 管理员不能通过用户状态绕过作品事实确认。 -### 2.7 全书解析(Full Parse) 章节批量确认生命周期 +### 3.2 安全事件状态 -全书解析(Full Parse) 不是“逐条 Proposal 点 Accept”,而是按章节收口。 +| 状态 | 含义 | 允许离开方式 | +|---|---|---| +| detected | 发现风险 | pending_user_confirm / resolved / dismissed | +| pending_user_confirm | 等待用户本人确认 | resolved / expired | +| resolved | 已处理 | 终态 | +| expired | 确认过期 | 终态或重新发起 | +| dismissed | 被有权角色关闭 | 终态 | + +硬约束: + +- 敏感导出、下载、二次验证、异常登录和凭证失效必须进入安全事件或下载审计。 +- 安全事件只能限制权限或提示用户,不能直接改写作品正文、知识或市场资产事实。 + +### 3.3 个人中心聚合状态 + +个人中心不是事实 owner,但它聚合多个 owner 的账户视图。 + +| 状态 | 含义 | 允许离开方式 | +|---|---|---| +| fresh | 聚合结果与 owner 数据一致 | stale / hidden | +| stale | owner 数据、授权、用量或安全状态变化,等待刷新 | fresh / hidden | +| hidden | 权限或隐私限制导致不可展示 | fresh / stale | + +硬约束: + +- Account Profile 和会话安全归 Identity/Auth;Usage 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 或 needs_recheck,后续来源型确认和导出按来源状态限制。 + +### 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 | 已取消 | 终态 | + +硬约束: + +- 解析任务生成章节解析结果和知识草稿候选,不写 Canonical 知识。 +- 拆分切块、静态检查、入 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 / needs_recheck +needs_recheck -> 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.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 - -> proposals(active, pending_review, parse_job_id + chapter_id) - -> chapter_confirm(success) -> proposal_archive(disposition=accepted) - -> chapter_reject -> proposal_archive(disposition=rejected) - -> expire -> proposal_archive(disposition=expired) + -> 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 ``` -硬约束: - -- 批量确认边界固定为 `parse_job_id + chapter_id` -- 同一章节内事务语义是 **all-or-nothing** -- 任一 Proposal 出现 `stale` / `conflict` / `validation failure` / `import failure`,整章确认失败 -- 章节确认成功前,Shadow draft 不得进入正式检索,也不得部分写入规范数据(Canonical) - -### 2.8 系统配置类对象版本约束 - -系统配置类对象不一定共用同一张表;这里定义的是生命周期语义,不定义具体表结构。管理员(Admin)通过管理员控制台(Admin Console)修改这些对象,普通用户(User)只能在用户工作区(User Workspace)消费配置快照,不能直接修改配置。 - -| 对象 | 必须具备的版本/状态语义 | 允许进入方式 | 允许离开方式 | -|---|---|---|---| -| 指令模板(Prompt)版本 | `draft` / `active` / `disabled` / `archived` | 管理员创建草稿;通过校验后激活 | 停用;归档;回滚到旧 active 版本 | -| 智能体(Agent)配置版本 | `draft` / `active` / `disabled` / `archived` | 管理员创建或复制版本;通过连通性和降级校验后激活 | 停用;归档;回滚 | -| 全局知识库(Global Knowledge Base)版本 | `preparing` / `active` / `disabled` / `archived` | 管理员导入或重建索引后激活 | 停用;归档;重新导入生成新版本 | -| 全局知识库访问策略版本 | `draft` / `active` / `disabled` / `archived` | 管理员配置用户、用户组、可见、可检索、可生成和解绑策略后激活 | 停用;归档;回滚 | -| 模型网关(New-API)用户同步配置版本 | `draft` / `active` / `disabled` / `archived` | 管理员配置分组、配额、套餐、绑定策略后激活 | 停用;归档;回滚 | -| 评测集(Evaluation Dataset)版本 | `draft` / `active` / `locked` / `archived` | 管理员创建固定场景、固定数据集和固定评分标准后激活 | 首次用于正式评测后锁定;归档 | +| 状态 | 含义 | 允许离开方式 | +|---|---|---| +| pending_review | 章节解析结果待审阅 | review_confirmed / review_rejected / stale / blocked / expired | +| review_confirmed | 用户确认该章节解析审阅结果 | 终态;对应知识草稿进入 pending_review | +| review_rejected | 用户驳回该章节解析结果 | 终态 | +| stale | 导入正文、章节内容、来源快照或解析版本变化 | 重新解析或终态 | +| blocked | 冲突、授权、来源或校验失败 | 重试 / 驳回 | +| expired | 超时未处理 | 终态或重新解析 | 硬约束: -- `active` 配置必须可追溯版本号、操作者、激活时间和变更摘要。 -- 已开始的生成、提取、校验、规划、检索或评测任务必须使用启动时读取到的配置快照,中途不能切换到混合配置。 -- 回滚不是修改旧版本内容,而是把 active 指针切回旧版本或创建新版本;已锁定评测集不得原地改数据。 -- Prompt、Agent、全局知识库、访问策略和评测集的启停不得绕过审计记录。 -- New-API 同步配置变更只影响后续同步任务;已发起的同步必须按原快照完成、失败或重试。 +- Parse Job 和 Chapter Parse Result 归 AI Orchestration BC;Chapter Review 是该解析结果的审阅状态;Knowledge BC 只在审阅确认后创建或更新 Knowledge Draft。 +- 批量边界固定为 parse_job_id + chapter_id。 +- 同一章节内审阅确认 all-or-nothing。 +- 任一条来源失效、冲突、校验失败或导入失败,整章确认失败。 +- 章节确认不写 Canonical 知识,不写 Narrative State Canonical。 +- 章节确认成功只标记解析审阅结果已确认,并产生或更新待确认知识草稿。 +- 正式知识仍由知识草稿确认链路写入 Local KB。 -### 2.9 全局知识库授权生命周期 +## 7. 知识库状态 -全局知识库(Global Knowledge Base)授权不是“用户能看到资料”一个布尔值,而是可见、可检索、可用于生成、可绑定/解绑等多个边界的组合。 +### 7.1 知识库版本状态 -```text -global_kb_version:active - -> access_policy:active - -> authorization(active) - -> disabled_by_kb # 知识库停用 - -> disabled_by_policy # 访问策略停用或回滚 - -> revoked # 管理员撤销用户或用户组授权 -``` +| 状态 | 含义 | 允许离开方式 | +|---|---|---| +| draft | 创建中 | processing / archived | +| processing | 资料处理、校验、切块、索引中 | active / processing_failed / disabled | +| active | 可按授权使用 | disabled / archived / processing | +| processing_failed | 处理失败 | processing / disabled / archived | +| disabled | 停用 | active / archived | +| archived | 归档 | 终态 | 硬约束: -- 默认不可越权使用:没有 active 授权时,全局知识库不得展示、检索或进入生成上下文。 -- 全局知识库停用后,后续生成和检索不得再使用它;已经完成的历史记录保留引用来源。 -- 授权策略必须明确 `uiVisible`、`userSearchable`、`aiContext`、用户是否可绑定/解绑或只读使用。 -- 全局知识库不自动写入任何作品的局域知识库(Local Knowledge Base),也不因为被引用而成为作品规范数据(Canonical)。 -- 普通用户界面必须区分“当前作品知识”和“被授权全局资料”。 +- 全局知识库 authority 由管理员治理;普通用户只能看到授权范围。 +- 用户知识库 owner 是普通用户;已授权或已安装市场知识库不能被当作用户自有资产再发布。 +- 资料处理失败不得进入生成上下文。 +- 知识库删除、停用、撤权、下架或召回必须触发来源状态传播。 + +### 7.2 知识来源绑定状态 + +| 状态 | 含义 | 允许离开方式 | +|---|---|---| +| prechecking | 绑定前校验 | active / rejected / canceled | +| active | 可作为作品知识来源 | disabled / needs_recheck / revoked | +| needs_recheck | 来源版本、许可、处理状态或 owner 变化 | 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 | 使用用户选择的子智能体 | needs_recheck / using_default / disabled | +| needs_recheck | 授权、版本、工具、输出合同或来源状态变化 | 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 和审计要求。 + +## 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 / needs_recheck | +| linked_or_bound | 已关联作品槽位或绑定知识来源 | disabled / revoked / needs_recheck | +| disabled | 用户停用或系统停用 | installed / revoked | +| needs_recheck | 许可、版本、来源或 owner 变化 | installed / linked_or_bound / 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 / needs_recheck / canceled | +| confirmed | 用户确认,准备原子消费 | consumed / failed | +| consumed | 写入目标 owner 事实成功 | 终态 | +| needs_recheck | 权限、授权、对象、版本或来源变化 | prechecked / rejected / canceled | +| rejected | 预检失败 | 终态 | +| failed | 写入失败 | 终态或重新发起 | +| canceled | 用户取消 | 终态 | +| expired | 超时 | 终态 | + +硬约束: + +- Handoff 是应用层协议:来源 BC 只签发一次性 token,目标 owner BC 创建 session 和 precheck,Account/Usage/Audit 只记录跳转和消费审计。 +- Handoff 必须绑定 actor、目标 owner、对象、动作、版本、授权快照、返回点和取消状态。 +- 来源空间不能替目标 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、事件类型、原因、幂等键和影响范围。 +- Source Propagation Job 必须按目标对象记录处理状态;失败目标默认禁止新使用,直到重试成功或人工关闭。 +- 传播任务不得修改已确认 Canonical,只能限制后续使用、标记需重验、作废未确认对象或失效下载凭证。 + +### 11.3 传播目标 + +| 目标 | 处理方式 | 不允许 | +|---|---|---| +| AI 候选 / 规划候选 | 标记来源不可用,禁用接受或确认 | 自动删除正文 | +| 知识草稿 | 禁用来源型确认,保留只读摘要和 lineage | 删除 prior lineage | +| 章节解析结果 | 标记需重验或阻断章节确认 | 部分确认 | +| 作品知识来源绑定 | needs_recheck / disabled / revoked | 继续用于新生成 | +| Agent Slot Binding | needs_recheck / 回退默认 / disabled | 扩大权限继续运行 | +| 已安装智能体 / 知识库 | 停用、只读或需重验 | 自动迁移为用户自有资产 | +| 运行中任务 | 取消、阻断或 needs_recheck | 继续消费旧授权快照 | +| 导出任务 / 下载凭证 | 失败、过滤、重验或失效 | 下载受限内容 | +| 个人中心记录 | 展示异常、治理结果和 owner 跳转 | 替 owner 空间写事实 | +| 市场记录和发布者记录 | 更新治理结果、申诉入口和影响摘要 | 隐藏审计 | + +硬约束: + +- 来源传播不得改写已确认 Canonical。 +- 来源传播必须可观察、可重试、可审计。 +- 传播失败时,系统宁可禁用新使用,也不能继续使用受限来源。 + +## 12. 导出和下载状态 + +### 12.1 导出任务生命周期 + +| 状态 | 含义 | 允许离开方式 | +|---|---|---| +| draft | 用户选择导出范围 | prechecking / canceled | +| prechecking | 权限、owner、来源、许可、导出范围校验 | queued / rejected / canceled | +| queued | 已创建导出任务 | running / canceled | +| running | 生成导出包 | ready / failed / canceled / needs_recheck | +| needs_recheck | 完成前状态变化 | running / failed / canceled | +| ready | 导出包生成,等待下载 | downloaded / expired / revoked | +| downloaded | 用户已下载 | 终态 | +| rejected | 预检失败 | 终态或重新选择范围 | +| failed | 生成失败 | 终态或重新导出 | +| canceled | 取消 | 终态 | +| expired | 下载窗口过期 | 终态 | +| revoked | 来源或权限变化导致不可下载 | 终态 | + +硬约束: + +- Work Export Job 归 Work/Content,Knowledge Export Job 归 Knowledge,Account Export Job 归 Account/Usage/Audit;Account/Usage/Audit 可以统一下载凭证和下载审计,但不能替 owner BC 通过预检或生成导出内容。 +- 创建、生成完成前和下载时都必须重验用户权限、对象 owner、来源授权、市场召回状态和导出许可。 +- 来源撤权、下架、召回、合规阻断或权限变化时,导出任务必须失败、过滤受限内容或要求用户重新选择范围。 +- 导出任务不得把受限来源洗成普通正文或普通知识。 +- 导出包必须加密存储、按 owner / tenant 隔离、只允许服务端代理下载,不暴露永久对象地址。 +- canceled、expired、revoked 或权限变化后,导出包本体必须按销毁或保留策略失效;管理员只能查看脱敏摘要,不能直接获取用户导出包。 + +### 12.2 下载凭证生命周期 + +| 状态 | 含义 | 允许离开方式 | +|---|---|---| +| issued | 已签发短期凭证 | used / expired / revoked | +| used | 已使用 | 终态 | +| expired | 过期 | 终态 | +| revoked | 权限、来源或任务状态变化 | 终态 | + +硬约束: + +- 下载凭证必须绑定 actor、导出任务、导出范围、对象版本和授权快照。 +- 下载凭证过期、重复使用、actor 不匹配、任务作废或授权快照不匹配时,必须拒绝下载并写安全审计。 + +## 13. New-API 与外部调用状态 + +### 13.1 New-API 绑定和调用归属 + +| 状态 | 含义 | 允许离开方式 | +|---|---|---| +| unbound | Muse 用户未绑定网关用户 | binding_requested | +| binding_requested | 绑定请求已发起 | bound / binding_failed | +| bound | 绑定有效 | disabled / needs_recheck | +| needs_recheck | 网关状态、权益、配额或归属异常 | bound / disabled / binding_failed | +| 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 权益配置请求、调用归属异常人工处理。 -## 3. 表级约束清单 +审计不得记录正文全文、完整密钥、完整外部凭证或不必要的敏感内容。 -### 3.1 `users` +审计治理约束: -- `email` 全局唯一 -- `status='pending_deletion'` 时 `deletion_requested_at IS NOT NULL` -- 登录、刷新、登出都不得直接改写 `status` +- 审计写入、读取、导出和保留策略必须分权。 +- 普通管理员不得删除、改写或覆盖高危审计。 +- 高危审计应采用 WORM、哈希链或等价防篡改机制。 +- 审计导出必须脱敏、限范围、限时效,并记录审计访问审计。 +- 留存期、删除例外、法务保留和用户删除请求的冲突处理由后端/合规阶段细化,但不能破坏高危审计可追溯性。 -### 3.2 `works` - -- `imported_at` 只能从 null 写一次 -- `parse_status` 必须遵循状态机,不允许随意跳跃 -- `word_count` 与 `chapter_count` 是聚合值,允许异步更新,但不得为负数 -- `work_schema_id` 只能引用 `scope='work'` 的 `meta_schema` - -### 3.3 `chapters` - -- 同一 `work_id` 内 `order_index` 唯一 -- 删除 章节(Chapter) 级联删除 `blocks` - -### 3.4 `blocks` - -- 同一 `chapter_id` 内 `order_index` 唯一 -- `revision` 单调递增 -- 任何写入都必须走 `expectedRevision` -- `content` 必须是结构化 结构化 JSON(JSON) 文档,不接受自由文本兜底 - -### 3.5 `generation_jobs` - -- 成功时必须产生建议(Suggestion) -- 失败时不得触碰规范数据(Canonical) -- 同一个 `target_block_id` 可并发多个生成任务,但每个任务只对应一条最终建议(Suggestion) - -### 3.6 `suggestions` - -- 活跃层(Active) 表只允许待审对象,禁止保存 `accepted` / `rejected` / `expired` -- `base_block_revision` 必须记录生成时的 revision -- `anchor_type + anchor_payload` 必须能唯一解释“建议作用在哪里” -- `expires_at > created_at` - -### 3.7 `suggestion_archive` - -- 一条建议(Suggestion) 只能归档一次 -- `disposition` 只能是 `accepted` / `rejected` / `expired` -- `accepted` 时允许 `final_content` 与 `original_content` 不同 - -### 3.8 `extraction_jobs` - -- `accept_suggestion` / `import_parse` / `manual_extract` 只描述触发来源,不改变双轨边界 -- 修改文本块(Block) 后合并时,旧 Draft 必须先失效;重新提取只能在正文提交成功后进入异步链路 -- `import_parse` 触发的提取只能作用于已导入作品 - -### 3.9 `proposals` - -- 活跃层(Active) 表只保留待审对象 -- `expires_at > created_at` -- `entity_id` 可为空,仅用于 `create_entity` -- `proposal_type='update_attribute'` 时,`entity_id` 必须非空 -- `parse_job_id IS NOT NULL` 时,`chapter_id` 与 `source_content_hash` 必须非空 -- `parse_job_id + chapter_id` 下的提案(Proposal) 不允许走单条接受(Accept) - -### 3.10 `proposal_archive` - -- `accepted` 时必须记录结果快照 -- `rejected` / `expired` 不得写规范数据(Canonical) - -### 3.11 `knowledge_entities` - -- 同一 `work_id` 内,`(name, entity_type)` 唯一 -- `entity_schema_id` 只能引用 `scope='entity'` 的 `meta_schema` -- `attributes` 是当前快照,不是历史系统 - -### 3.12 `knowledge_attribute_changes` - -- 每次接受提案(Proposal) 或手动改属性,都必须写至少一条 change log -- `source_type='proposal_accept'` 时,`source_proposal_archive_id` 必须非空 - -### 3.13 `knowledge_relations` - -- `source_entity_id <> target_entity_id` -- 同一作品内 `(source_entity_id, target_entity_id, relation_type)` 唯一 -- 关系变更必须能追溯来源文本块(Block) 或人工操作 - -### 3.14 `meta_schemas` - -- `domain` 只能是 `content` / `world` / `narrative` -- `scope` 只能是 `work` / `chapter` / `entity` / `relation` / `event` -- `parent_schema_id` 删除后子 结构定义(Schema) 允许继续存在 -- 内置 结构定义(Schema) 不允许通过公开写接口直接修改 -- `meta_schemas` 只定义字段和校验规则;`domain='narrative'` 的运行态值不得直接存回 Schema 本身,必须落到 Narrative State carrier - -### 3.15 `narrative_states` - -- 只允许 `work` / `chapter` / `entity` 三个运行态 scope -- `scope='work'` 时不得绑定 `chapter_id` 或 `entity_id` -- `scope='chapter'` 时必须绑定 `chapter_id` -- `scope='entity'` 时必须绑定 `entity_id` -- 写入来源只能是人工编辑、单条提案(Proposal) 接受、章节批量确认 -- `invalidated_at` 非空时,Context Assembly 不得把该状态当作新鲜状态注入 prompt - -### 3.16 `meta_fields` - -- 同一 `schema_id` 下 `field_key` 唯一 -- 同一 `schema_id` 下 `order_index` 唯一 -- `field_type='enum'` 时 `enum_options` 应非空 -- `field_type='reference'` 时 `reference_target_type` 应非空 - -### 3.17 `audit_logs` - -- 不记录正文全文 -- 必须记录操作者、动作、目标、时间 - -### 3.18 配置类对象(概念层,非表结构定义) - -- Prompt 版本、Agent 配置版本、全局知识库版本、全局知识库访问策略版本、New-API 用户同步配置版本和评测集版本都必须有唯一版本标识。 -- `active` 版本只能通过管理员权限激活,激活必须写审计记录。 -- 已激活版本不得原地静默修改;需要变更时创建新版本或执行显式回滚。 -- 运行中的任务必须记录使用的配置版本,避免事后无法解释某次生成、提取、校验或评测的输入。 - -### 3.19 全局知识库与访问策略(概念层,非表结构定义) - -- 全局知识库(Global Knowledge Base)必须有启用/停用边界;停用后不得被新请求检索或注入生成上下文。 -- 访问策略必须至少区分:用户或用户组、是否默认绑定、是否 UI 可见、是否可检索、是否可用于生成、用户是否可解绑。 -- 授权策略变更不得改写作品的局域知识库(Local Knowledge Base)事实。 -- 全局知识库版本与访问策略版本必须能独立回滚;知识库内容回滚不等于授权策略回滚。 - -### 3.20 局域知识库自动维护(概念层,非表结构定义) - -- 局域知识库(Local Knowledge Base)只归属单个作品,不能跨作品共享正式事实。 -- 自动维护触发源只能是正文保存、候选确认、作品规划确认、导入解析章节确认、手动知识修正或后台重建投影。 -- 自动提取结果仍是待审层(Shadow)对象,普通用户作品知识确认继续沿用 Shadow -> Canonical 生命周期。 -- 已确认的世界状态(World State)、叙事状态(Narrative State)、实体、关系、事件和属性变化必须保留来源追溯。 -- 修改后合并、来源快照(Source Snapshot)失效或章节确认失败时,不得把旧知识草稿写入局域知识库。 - -### 3.21 用户可见投影(概念层,非表结构定义) - -- 用户可见投影(User-visible Projection)是读模型,不是事实源。 -- 投影只展示元数据允许展示的实体类型、关系、字段和摘要。 -- 投影落后于规范数据(Canonical)时,生成上下文和读路径不得把旧投影当成最新事实;需要使用水位标记(watermark)、覆盖层(overlay)或等价策略。 -- 投影重建不得改变 Canonical、Shadow 或 Archive。 -- 普通用户导出只能读取自己有权访问且 `exportable` 允许的投影或正式数据。 - -### 3.22 元数据可见性变更(概念层,非表结构定义) - -- 元结构定义(MetaSchema)或字段可见性变更必须形成新配置版本或至少写入可追溯变更记录。 -- `uiVisible`、`aiContext`、`userEditable`、`userSearchable`、`exportable` 分别控制展示、上下文注入、编辑、检索和导出,不能互相替代。 -- `uiVisible=false` 不得被解释为禁止 AI 使用;是否进入 AI 上下文只看 `aiContext` 和权限策略。 -- `aiContext=true` 不得被解释为普通用户可见;普通用户展示必须受 `uiVisible` 和资源权限共同约束。 -- 可见性变更必须触发用户可见投影重建或失效标记;不得在投影未更新时向普通用户展示已被隐藏的字段。 - -## 4. 端点级前置条件与后置条件 - -### 4.1 `POST /works/{workId}/import` - -前置条件: - -- 作品属于当前用户 -- `work.imported_at IS NULL` - -后置条件: - -- 成功:创建 `chapters` / `blocks`,写 `imported_at` -- 失败:保留 `work`,写 `import_error` - -### 4.2 `POST /works/{workId}/parse` - -前置条件: - -- `imported_at IS NOT NULL` -- `parse_status IN ('not_parsed', 'parse_failed')` - -后置条件: - -- 创建 `parse_job`(实现上可复用 `extraction_job`,但业务语义是全书解析批次) -- `work.parse_status -> parsing` - -### 4.3 `PUT /blocks/{blockId}` - -前置条件: - -- 请求体带 `expectedRevision` -- `expectedRevision == blocks.revision` - -后置条件: - -- `blocks.revision + 1` -- 不直接生成提案(Proposal);若配置了异步提取,只能发事件/排队 - -### 4.4 `POST /ai/generate` - -前置条件: - -- `targetBlockId` 属于当前用户作品 -- 通过限流 -- 读取到可追溯的 Prompt 版本、Agent 配置版本、上下文策略版本和 New-API 同步配置快照 -- 任何全局知识库(Global Knowledge Base)进入上下文前,必须存在 active 授权策略,且允许当前用户检索或用于生成 -- 进入上下文的局域知识库(Local Knowledge Base)内容必须是当前作品的规范数据(Canonical)或允许读写一致补齐的覆盖层 - -后置条件: - -- 创建 `generation_job` -- 不直接返回建议(Suggestion) 内容 -- 记录本次任务使用的配置版本和知识来源摘要 - -### 4.5 `POST /works/{workId}/suggestions/{suggestionId}/accept` - -前置条件: - -- 建议(Suggestion)存在且未过期 -- `expectedRevision == targetBlock.revision` - -后置条件: - -- 同一事务内: - - 更新 `blocks.content` - - `blocks.revision + 1` - - 建议(Suggestion)从活跃层(Active) 迁至归档层(Archive),`disposition=accepted` - - 写 `audit_log` -- 事务提交后: - - 原样接受(Accept):可同步确认关联且未 stale 的 Draft,并写出规范数据(Canonical) + outbox - - 修改文本块(Block) 后合并:作废旧 Draft,重新进入 Extraction → Validation → Risk Routing 异步链路 - -补充约束: - -- 若用户修改后合并,不新增 `modified` 活跃层(Active) 状态;修改语义体现在文本块(Block) 最终入库内容与审计记录中,旧 Draft 必须立即失效 -- 接受(Accept) 成功至少表示正文已合并;原样接受(Accept) 时可同步确认关联 Draft,修改文本块(Block) 后合并时则转入重新提取的异步链路 -- 已 `accepted` 的同一建议(Suggestion) 重复接受(Accept) 可按幂等成功处理,但不得重复改写文本块(Block) 或重复触发重新提取 - -禁止行为: - -- 禁止把外部 命名实体识别(NER)/大语言模型(LLM) 调用塞进这个事务里 - -### 4.6 `POST /works/{workId}/suggestions/{suggestionId}/reject` - -前置条件: - -- 建议(Suggestion)存在且未过期 - -后置条件: - -- 建议(Suggestion)迁至归档层(Archive),`disposition=rejected` -- 不触碰规范数据(Canonical)文本块(Block) - -### 4.7 `POST /ai/ner` - -前置条件: - -- `workId` / `blockId` 属于当前用户 - -后置条件: - -- 仅返回预览结果 -- 不写 `proposals` -- 不写 `extraction_jobs` - -### 4.8 `POST /works/{workId}/proposals/{proposalId}/accept` - -前置条件: - -- 提案(Proposal)存在且未过期 -- 若 `stage` 存在,必须为 `validated` -- `parse_job_id IS NULL`;该接口只用于增量提取/单条审核,不用于 全书解析(Full Parse) - -后置条件: - -- 同一事务内: - - 写 `knowledge_entities` / `knowledge_relations` - - 写 `knowledge_attribute_changes` - - 提案(Proposal)迁至归档层(Archive),`disposition=accepted` - - 写 `audit_log` - -### 4.9 `POST /works/{workId}/parse-jobs/{parseJobId}/chapters/{chapterId}/confirm` - -前置条件: - -- `parse_job_id = parseJobId` 且 `chapter_id = chapterId` 的提案(Proposal) 集合存在 -- 集合内所有 Proposal 均未过期 -- 集合内所有 Proposal 均满足可确认条件;任一 Proposal stale / conflict / validation failure / import failure,整章失败 - -后置条件: - -- 同一事务内: - - 将该 `parse_job_id + chapter_id` 边界下的提案(Proposal) 全量迁入归档层(Archive),`disposition=accepted` - - 仅在整章成功时写 `knowledge_entities` / `knowledge_relations` / `knowledge_attribute_changes` / Narrative State carrier - - 写 `audit_log` - -补充约束: - -- 不允许同一章节内部分成功、部分落库 -- 章节确认成功前,未确认 Shadow draft 不得进入正式检索 - -### 4.10 `POST /works/{workId}/parse-jobs/{parseJobId}/chapters/{chapterId}/reject` - -前置条件: - -- `parse_job_id = parseJobId` 且 `chapter_id = chapterId` 的提案(Proposal) 集合存在 -- 集合仍处于待审状态 - -后置条件: - -- 同一事务内: - - 将该 `parse_job_id + chapter_id` 边界下的提案(Proposal) 全量迁入归档层(Archive),`disposition=rejected` - - 不写规范数据(Canonical) Knowledge,不写 Narrative State carrier - - 写 `audit_log` - -### 4.11 `POST /works/{workId}/proposals/{proposalId}/reject` - -前置条件: - -- 提案(Proposal)存在且未过期 - -后置条件: - -- 提案(Proposal)迁至归档层(Archive),`disposition=rejected` -- 不改规范数据(Canonical) Knowledge - -## 5. 后台任务约束 - -### 5.1 待审层(Shadow) 过期清理 - -- 定时扫描 `suggestions` / `proposals` -- 仅处理 `expires_at < now()` 的活跃层(Active) 行 -- 迁入归档层(Archive),`disposition=expired` -- 允许分批执行,避免大事务 - -### 5.2 导入解析 - -- `import_parse` 任务必须顺序处理章节(Chapter) / 文本块(Block) -- 进度更新只写 `works.parse_progress` -- 最终成功时 `parse_status -> parsed` -- 最终失败时 `parse_status -> parse_failed` -- 解析生成的提案(Proposal) 只进入 待审层(Shadow);正式检索只接收规范数据(Canonical) 正文和已确认知识 - -### 5.3 局域知识库自动维护 - -- 自动维护任务只能从已确认正文、已确认规划项、章节确认成功结果或用户手动修正出发。 -- 后台任务可以生成知识草稿、风险标记和投影事件,但不得绕过普通用户确认直接写正式作品知识。 -- 对 Narrative State 的更新必须落到真实运行态载体;MetaSchema 只定义字段和校验规则。 -- 局域知识库自动维护失败不得回滚已保存正文或已确认作品事实。 - -### 5.4 用户可见投影重建 - -- 元数据可见性、全局知识授权、局域知识正式事实或导出策略变化后,必须重建或失效相关用户可见投影。 -- 投影重建可以异步执行,但必须可重试、可观察、可审计。 -- 投影重建失败时,系统不能向普通用户展示已经失去可见权限的数据;宁可降级为隐藏或提示稍后重试。 -- 投影重建只影响读模型,不得改写规范数据(Canonical)、待审层(Shadow)或归档层(Archive)。 - -### 5.5 New-API 同步 - -- New-API 用户、分组、配额、套餐或绑定状态同步必须幂等。 -- 同步失败必须记录失败原因、可重试信息、目标用户和配置版本。 -- 重试不得重复创建用户、重复扣减额度或覆盖更新中的新绑定状态。 -- New-API 的模型供应商、路由、限流、成本和消耗日志仍以 New-API 为准,Muse 不把这些复制成新的权威来源。 - -## 6. 非谈判项 +## 15. 非谈判项 以下规则不能被实现绕过: -1. AI 不得直接写规范数据(Canonical)。 -2. `blocks` 更新必须带 `expectedRevision`。 -3. `/ai/ner` 只读,不生成提案(Proposal)。 -4. 待审层(Shadow)的活跃层(Active) 表不保存终态。 -5. 接受建议(Accept Suggestion) 不得把外部 AI 调用塞进事务。 -6. 提案接受必须写属性级 change log。 -7. `meta_schemas` 必须区分 `domain`、`scope` 与 `target_type`。 -8. `work_id` 冗余字段必须有数据库级一致性约束。 -9. Narrative State 运行态值必须有真实 persistence carrier,不能只靠 MetaSchema。 -10. 全书解析(Full Parse) 批量确认必须按 `parse_job_id + chapter_id`,并且 all-or-nothing。 -11. 管理员配置类对象必须有版本或可追溯变更记录,运行任务必须记录配置快照。 -12. 全局知识库(Global Knowledge Base)默认不可越权展示、检索或用于生成。 -13. 全局知识库停用或授权撤销后,不得进入新的生成和检索请求。 -14. 局域知识库(Local Knowledge Base)只归属单个作品,不跨作品共享正式事实。 -15. 用户可见投影(User-visible Projection)不是事实源,不能反向覆盖规范数据(Canonical)。 -16. 元数据可见性字段必须分别控制 UI 展示、AI 上下文、用户编辑、用户检索和导出,不能用一个字段代替。 -17. 普通用户作品知识确认继续沿用 Shadow -> Canonical 生命周期,任何自动维护都不得绕过用户确认。 -18. 小说场景(Scene)当前不作为独立一级模型;情节节拍和场景推进归入章节叙事规划,状态归属以 `架构-02` 和本文件为准。 +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. 智能体工具调用和上下文访问必须由服务端运行时权限包校验,不能由前端或智能体自报。 +23. 导出包必须加密、owner 隔离、短期可取、可失效或可销毁,不能暴露永久对象地址。 +24. New-API 服务凭据必须最小权限、密钥管理、环境隔离、可轮换且不得进入日志或导出。 +25. 高危审计必须防篡改,审计读取和导出本身也必须被审计。 -## 7. 关联阅读 +## 16. 关联阅读 -- 表结构:`后端-04-统一数据库Schema-v1.md` -- 接口(API) 契约:`后端-05-统一API契约-v1.md` -- 双轨模型:`架构-02-核心数据结构与双轨模型.md` +- 系统全貌与 BC:`架构-01-系统全貌与边界上下文.md` +- 核心模型与双轨边界:`架构-02-核心数据结构与双轨模型.md` +- 管理员操作流程:`流程-01A-管理员操作流程(操作视角).md` +- 普通用户操作流程:`流程-01B-普通用户操作流程(操作视角).md` +- 管理员系统处理流程:`流程-02A-管理员系统处理流程(系统视角).md` +- 普通用户系统处理流程:`流程-02B-普通用户系统处理流程(系统视角).md` +- 功能与交互边界:`产品-02-核心功能与交互边界.md`