oh-my-muse/design-docs/专题-06-元数据驱动的智能体架构.md
lili b376589d5c docs(design): 元数据驱动智能体架构定版落 SoT——新增专题-06 + 六分册对齐拍板
- 新增专题-06-元数据驱动的智能体架构(v1):agent=f(作品+元数据+知识库) 横切 owner——
  双枢中枢/三体关系/20 型 target_type 本体/作品容器与 base 内置机制/拆书与 reference_work/统一创作数据读取器
- 架构-02 v10:§1.2 Canonical 入口增补(管理员确认系统级知识草稿→Global KB 范式);§9 补 domain 逐值语义、override 只增不改
- 架构-03 v13:ADR-022 功能链定义归元引擎(案A 顺代码)、ADR-023 双轨入口增补
- 后端-04 v11:功能链表族订正 muse_meta_function_chain* 归 meta;character_entity→character;muse_meta_field 增 storage_binding
- 架构-01/后端-02/产品-02B:功能链归属行与拆书治理管理面对齐;大纲/映射表注册专题-06
- 落档评审稿 v0.2(过程稿):三拍板+四默认、执行计划 W1-W8、反假绿(生产迁移零 MetaSchema seed)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 01:06:38 -07:00

286 lines
33 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.

# 专题-06元数据驱动的智能体架构
- 版本v1
- 更新日期2026-07-09
- 目标读者:架构 / 后端 / 前端 / 产品
- 边界说明:本册是「元数据驱动的智能体架构」这条横切主线的单一 owner收束四件此前散落无主的事——元引擎与功能链如何共同驱动智能体、拆书作为通用抽取智能体的两处用场、target type 结构本体的全清单与分层判据、统一创作数据读取器与 base 内置机制。术语与双轨不变式的权威在 [架构-02-核心数据结构与双轨模型](架构-02-核心数据结构与双轨模型.md)MetaSchema、Canonical/Shadow、domain/scopeAI 链路合同与 Context Assembly 在 [专题-03-AI编排上下文与质量评测实现规范](专题-03-AI编排上下文与质量评测实现规范.md);外部 Agent 协议在 [专题-05-AI统一交互协议与外部AgentAdapter设计](专题-05-AI统一交互协议与外部AgentAdapter设计.md);表结构与字段合同在 [后端-04-统一数据库Schema-v1](后端-04-统一数据库Schema-v1.md)。上述对象本册只链接、不重复定义。
- 变更记录v12026-07-09定稿自 2026-07-08 架构评审将「agent = f(作品 + 元数据 + 知识库)」主线、三体关系、20 型结构本体、统一读取器与 base 机制蒸馏为 canonical。
---
## 1. 中枢:元引擎与功能链双枢
理解本册全部内容的钥匙是一句话:**Muse 不是「一个功能挂一个外部 app」而是一套元数据驱动的智能体编排**。它的中枢在 muse-cloud 的元结构模块里,由两套彼此正交的东西组成。
**元引擎MetaSchema是结构模具**。它定义一个角色有哪些属性、一段文风从哪些维度刻画、一次转折由哪些要素构成,以及每个字段是否可见、可编辑、可检索、是否可进入 AI 上下文。它约束的是智能体「读哪些字段、抽哪些实体、产出什么结构」。其权威定义见 [架构-02 §9 MetaSchema 与配置模型](架构-02-核心数据结构与双轨模型.md)。
**功能链FunctionChain是流程骨架**。一条链由若干节点串成,节点分两种:开放槽位允许替换子智能体,保护节点不可替换。它约束的是「智能体按什么次序跑、哪一步不能外包」。功能链的节点/开放槽位/保护节点语义见 [专题-03 §2 系统功能链路](专题-03-AI编排上下文与质量评测实现规范.md),落地的槽位模型见 [架构-02 §5.2 系统功能编排与槽位](架构-02-核心数据结构与双轨模型.md)。
一句话区分:**MetaSchema 定义「结构」FunctionChain 定义「流程」**。二者同住元引擎Meta BC——功能链的定义、版本、节点、槽位与 MetaSchema 是一族数据,表结构见 [后端-04 §7.2 系统功能链路和槽位](后端-04-统一数据库Schema-v1.md)。AI runtime 不自持一套编排,而是经 `FunctionChainQueryApi` 读端口取激活的功能链,据此解析节点序列与开放槽位再做运行编排。这样「谁来定义能力怎么串」与「谁来执行这次编排」分属两个 BC定义在 Meta、执行在 AI避免编排逻辑在两处各写一份而漂移。
由这两枢得到本架构最重要的性质:**每个智能体都是 `f(作品 + 元数据 + 知识库)`**。任何智能体运行时同时结合三样输入——作品提供「写什么/改什么/查什么」的对象与近邻语境,元数据决定「读哪些字段、抽哪些实体、产出什么结构」(它是产出结构的模具),知识库提供「作品事实」与「公共参考」两类支撑。因此**智能体的类型是固定的产品功能(写死在功能链节点上),但产出是元数据驱动的动态结果**:管理员在元引擎里给「世界设定」加一个字段「金手指类型」,或给「文风」加一个维度「反转密度」,不改一行智能体代码,拆书就会多抽这个属性、规划会多生成这个字段、检测会多查这个维度。这就是「类型固定、元数据变则产出变」。
```mermaid
flowchart TB
subgraph Meta["元引擎 MetaSchema结构模具"]
MS["target type / 字段 / 枚举 / 校验<br/>aiContext 开关 / 输出合同"]
end
subgraph Chain["功能链 FunctionChain流程骨架 · 经 FunctionChainQueryApi 激活)"]
direction LR
N1["保护节点<br/>输入合规 / 权限过滤"] --> SLOT["开放槽位<br/>能力子智能体"] --> N2["保护节点<br/>质量门控 / 输出合规"]
end
W["作品 Content"] --> SLOT
K["知识库 Knowledge"] --> SLOT
MS -. 约束读入与产出结构 .-> SLOT
MS -. 定义可入 AI 字段 .-> W
SLOT -->|候选| Shadow["Shadow 待审"]
Shadow -->|用户确认| Canonical["Canonical 正式事实"]
```
---
## 2. 三体关系muse-cloud / dify-agent / dify-rag / New-API
先破一个误解:**dify-agent 与 dify-rag 不是两套部署,而是同一个 Dify 实例的两个功能平面**,靠两类 API key 区分——app key 只能打 app/workflowdataset key 只能打 datasets混用即被拒。四方职责如下。
| 角色 | 是什么 | 持有什么 | 边界 |
|---|---|---|---|
| **muse-cloud** | 大脑与主权 | 元引擎、功能链、运行权限包、双轨Shadow/Canonical、审计、用量归属、编排 | 业务事实源与权限裁判;绝不让外部写 Canonical |
| **dify-agent** | 开放槽位的能力执行 | Dify chat/workflow app | 只是能力节点,只返回候选,不是可入库事实 |
| **dify-rag** | 检索基座 | Dify Datasets每知识库一物理库 | 检索基座不等于事实源;缺来源/授权的结果不进上下文 |
| **New-API** | 底层模型网关 | 真实模型与向量/重排 | 用量、成本、归属的权威Dify 用量仅作脱敏审计 |
主权原则一句话:**Muse 编排Dify 执行Muse 裁判**。两个 Dify 平面都是可替换的外部底座——指定了 Dify 却未配置时失败关闭,绝不回退 New-API 伪装成功Dify 全挂时 Muse 也只失败关闭,用户读写 Canonical 不受影响。外部运行时接入的统一协议与 adapter 边界见 [专题-05](专题-05-AI统一交互协议与外部AgentAdapter设计.md)。
一次生成的完整数据流由 muse-cloud 全程编排,外部两平面只在「检索」与「能力执行」两处被调用,产出一律以候选身份回到 Muse 的保护节点。
```mermaid
sequenceDiagram
participant U as Studio 用户
participant M as muse-cloud编排 + 主权)
participant R as dify-rag检索
participant A as dify-agent能力执行
participant N as New-API模型网关
U->>M: 续写请求
M->>M: 生成运行权限包 + 按 MetaSchema 组装上下文
M->>R: 按授权检索绑定库
R->>N: 向量检索 / 重排
R-->>M: 授权片段(带来源 / 状态)
M->>A: 组装后的上下文
A->>N: 模型推理
A-->>M: 候选(仅候选)
M->>M: 保护节点:静态检查 / 质量门控 / 输出合规
M-->>U: Shadow 候选 + 创作健康度解释
U->>M: 接受 / 改后合并 / 丢弃
M->>M: 写 Canonical 正文 + 来源归因
```
---
## 3. 智能体三层清单
按主权边界,智能体分三层,**只有第一层可以挂 Dify app**。这样切分有三个理由主权Shadow→Canonical 的裁决不能被外部替换)、可替换性(同一开放槽位可在 Dify、New-API、未来 AgentScope 之间换而不动主链)、可解释与可审计(保护节点必须产出 Muse 可追溯的结论)。
**第一层 · 开放能力子智能体**(可挂 Dify app/workflow 或 New-API也是用户/市场智能体的插入点):
| 智能体 | 做什么 | 依赖(作品 + 元数据 + 知识库) | 产出与边界 |
|---|---|---|---|
| **写作** | 续写/改写/扩写/润色/纠错/去 AI 味/角色声音 | 近邻正文 + `style`/`pacing`/`craft` + Local KB 与检索片段 | 只进 Shadow不写 Canonical不替换保护节点 |
| **拆书/分析** | 按 MetaSchema 从文本抽实体/关系;全书解析、章节抽取、结构拆解 | 源文本 + 实体类 target type + 目标库Global/Local | 章节审阅后才建草稿;系统级只产抽象范式、不留原文 |
| **检测** | 一致性/角色声音/文风/风险/语义偏离检查 | 候选或正文 + 检查约束 target type + Local KB Canonical | 只产解释与定位,不直接改正文或知识 |
| **规划** | 生成大纲/世界设定/人设 | 作品方向 + `work_core`/`outline`/`world`/`character` + Local KB | 规划候选只进 Shadow未确认不得进后续生成上下文 |
**第二层 · 保护节点智能体**Muse 自持,即使调用 LLM 也不外包为可配置 Dify app只走受控内部路径质量门控与 LLM-Judge 在候选交付前按质量维度评分并做 Shadow 内有限重写;合规与语义围栏对输入输出做失败关闭的合规裁决,不可被质量分放开;离线质量评估对智能体/Prompt/策略跑评估集回归,不影响用户当前候选。它们是「先审后入」主权的执行者,质量维度的定义见 [专题-04-生成质量门控与创作健康度设计方案](专题-04-生成质量门控与创作健康度设计方案.md)。
**第三层 · 知识基座**不是「app」RAG 检索按授权从绑定库的 Dify dataset 循环检索合并,返回带来源/授权/状态的片段;切块、入 RAG、索引是资料摄入的保护节点处理未过不得进生成上下文。
三层与功能链节点一一对应:生成链对应写作智能体,分析/导入解析链对应拆书智能体,检测链对应检测智能体,规划链对应规划智能体,知识处理链对应拆书入库与 RAG质量链与合规链落在保护节点智能体上。功能链是编排骨架智能体是槽位里的能力。
---
## 4. target_type 结构本体
### 4.1 元数据用途类与本体分组的分层
元数据不是一张平表。它按用途分五个**元数据用途类**,其中只有第一类是「实体有哪些属性」、被拆书与生成直接消费;其余四类各有独立 owner本册只在此定位、不重复定义。
| 元数据用途类 | 管什么 | 载体与 owner |
|---|---|---|
| **① 结构本体** | 实体有哪些属性(拆书抽、生成写、检测查的结构模具) | MetaSchema target types本册 §4.2 起) |
| **② 质量维度** | 怎么评判好坏 | Quality Policy[专题-04](专题-04-生成质量门控与创作健康度设计方案.md) |
| **③ 编排** | 智能体怎么串 | FunctionChain本册 §1落地见 [后端-04 §7.2](后端-04-统一数据库Schema-v1.md) |
| **④ 智能体配置** | 每个能力怎么配prompt/模型绑定/工具授权/输出合同) | Agent Version[专题-05](专题-05-AI统一交互协议与外部AgentAdapter设计.md) |
| **⑤ 可见与策略** | 每字段的权限行为与灰度 | MetaVisibilityPolicy[架构-02 §9](架构-02-核心数据结构与双轨模型.md) |
为免「大类」串词,下文一律称这一层切分为**元数据用途类**(五类),称结构本体内部的分组为**本体分组**(作品骨架/世界设定/人物/画像/技法,加容器、系统侧、配套三个附组)。「固定」的是这几个用途类;类型与属性是开放集——管理员可增类型、用户可在作品级扩字段。
### 4.2 前置地基domain 与 scope 两轴
结构本体的每个 target type 先由两根正交的轴定位。这两轴的概念权威在 [架构-02 §9](架构-02-核心数据结构与双轨模型.md),此处给的是面向本体分类的应用视图。
**domain 描述语义域,不描述存储 BC**——它回答「这块结构属于哪个意义世界」,与实例落在哪个 Bounded Context 无关;例如 Local KB 实体的实例存 Knowledge BC但其 schema 多属 world 或 narrative 域。**scope 恒等于实例对象的粒度**,取值是 work/chapter/block/entity/relation/event/agent 之一;系统级与作品级之分不占 scope 轴,由 `effective_scope` 承载(见 §5
| domain | 一句话判据 | 承载 |
|---|---|---|
| `content` | 作者对作品的戏外承诺与计划,角色感知不到 | 作品容器、创作定位、大纲 |
| `world` | 角色可感知的戏内世界事实 | 世界观、地点、组织、力量体系、物品、事件、角色、关系 |
| `narrative` | 只关「怎么讲」、不关「讲什么」的叙事表达层 | 文风、节奏、技法、桥段、套路 |
| `knowledge` | 知识库域自身的资料资产结构(非知识实体的内容结构) | 参考作品档案 |
| `ai_context` | AI 上下文组装与输出合同的结构 | 生成上下文快照模具 |
有一处同词须点明target type `world`(世界观总纲,一个具体结构型)与 domain `world`(世界事实语义域)字面相同却分属两轴,前者是「型」、后者是「域」,不是一回事。
### 4.3 结构本体全清单20 型)
下表是与两轴对齐后的 target type 全清单,给的是归属、粒度与本体分组的总览;落地节奏由执行计划承载,本表只陈述设计本身。
| # | domain | scope | target_type | 中文名 | 本体分组 |
|---|---|---|---|---|---|
| 1 | content | work | `novel_work` | 作品容器 | 容器 |
| 2 | content | work | `work_core` | 作品核心 | 作品骨架 |
| 3 | content | work | `outline` | 大纲 | 作品骨架 |
| 4 | world | work | `world` | 世界观总纲 | 世界设定 |
| 5 | world | entity | `location` | 地点 | 世界设定 |
| 6 | world | entity | `faction` | 组织阵营 | 世界设定 |
| 7 | world | entity | `power_system` | 力量体系 | 世界设定 |
| 8 | world | entity | `item` | 物品 | 世界设定 |
| 9 | world | event | `event` | 事件 | 世界设定 |
| 10 | world | entity | `character` | 角色 | 人物 |
| 11 | world | relation | `character_relation` | 角色关系 | 人物 |
| 12 | narrative | work | `style` | 文风画像 | 画像 |
| 13 | narrative | work | `pacing` | 节奏画像 | 画像 |
| 14 | narrative | entity | `craft` | 叙事技法 | 技法 |
| 15 | narrative | entity | `combat` | 打斗桥段 | 技法 |
| 16 | narrative | entity | `emotion` | 情感桥段 | 技法 |
| 17 | narrative | entity | `scene_pattern` | 通用桥段 | 技法 |
| 18 | narrative | entity | `trope` | 套路 | 技法 |
| 19 | knowledge | entity | `reference_work` | 参考作品档案 | 系统侧 |
| 20 | ai_context | agent | `generation_context` | 生成上下文 | 配套 |
scope 落座有两处最易被误判,须点明。`outline``work` 而非 chapterscope 是实例集合的聚合归属粒度,大纲是全书单一计划,其内部的全书/卷/章三层用字段表达层级,不改 scope。`world``work`:按边界判据它不可数、无法单章出场,是每作品一份的单例总纲,故归 work 而非 entity。
### 4.4 精炼原则与拆分判据
**一型一格位、一概念一 owner**。一个候选要挣得独立 target type须同时占据「它是什么实体/计划/画像/装置/范式)× 谁在何时消费(规划/写作/检查期)」平面上的一个空格位,且承载邻接型收编不了的字段合同;否则按三条规则降级:差异只能举例、给不出判据的**变体收进枚举**(如拍卖会、比武会);属性可由他型查询导出的**投影收进读模型**(如时间线、关系网、伏笔看板);离开某型无独立生命的**附属收进字段**(如金手指例外)。这条准绳兑现「类型可更多但边界必清晰」——品类增型走同一判据,判据说不出一句就降级,杜绝为拆而拆。
判断「一个概念落一个还是多个 target type」用四条判据与上面三条降级规则叠加使用。**粒度判据**两个用场里实例挂靠的粒度不同work 级单例画像 vs entity 级多条目),倾向拆。**字段合同判据**:字段交集不足一半、或校验规则互斥,拆。**消费判据**:仅消费链路不同而字段相同,不拆,消费差异走可见性策略。**写入路径判据**:进 Canonical 的入口不同(用户直接命令 vs 确认链),倾向拆。四判据回答「拆不拆」,三条降级规则回答「不拆时降到哪一级」。
17 个结构骨架型(容器、系统侧、配套三个附组不计入)的边界判据如下,每型给最锋利的一句「纳入 / 排除去向」;完整字段合同落 [后端-04](后端-04-统一数据库Schema-v1.md),管理面见 [产品-02B-管理员控制台功能规格](产品-02B-管理员控制台功能规格.md)。
| target_type | 层次 | 边界判据(纳入 ‖ 排除→归哪) |
|---|---|---|
| `work_core` | 骨架 | 只有作者读者知、角色感知不到的作品级承诺 ‖ 角色可感知世界事实→`world`;逐章安排→`outline` |
| `outline` | 骨架 | 对「接下来写什么」的计划(全书/卷/章任一层级)‖ 戏内已定事实→`event`;跨作品公式→`trope` |
| `world` | 骨架 | 角色可感知但不可数、无法单章出场的世界级规则格局 ‖ 可指名出场者→`location`/`faction`/`item`;决定强弱排序→`power_system` |
| `location` | 骨架 | 可到达、可发生场景的具名空间 ‖ 弥漫地理→`world`;空间上的组织→`faction` |
| `faction` | 骨架 | 有宗旨/层级/成员的具名集体(含组织化种族、朝廷)‖ 无组织的文明背景→`world`;成员个体→`character` |
| `power_system` | 骨架 | 直接决定角色强弱排序的规则(可多套并存)‖ 约束所有人而不排序→`world`;具体功法技能→品类开放集增型 |
| `item` | 骨架 | 可持有可流转的具名物件(含秘籍载体)‖ 「怎么描写」的笔法→`style` 公共层 |
| `event` | 骨架 | 戏内时间轴上有参与者与因果的已定/预定事实(时间线=event 有序投影,不另设型)‖ 作者写作安排→`outline`;节奏分布→`pacing` |
| `character` | 双层 | 具名/可指认的行动主体,说话方式即该角色语言指纹 ‖ 作者全书指纹→`style`;关系→`character_relation`;集体→`faction` |
| `character_relation` | 骨架 | 演变轨迹本身就是剧情、值得立传的关系 ‖ 只更新当前值的结构性从属→Knowledge Relation 边+枚举;推进公式→`trope` |
| `style` | 双层 | 与章序无关的语言表层指纹(打乱章序不变)‖ 顺序敏感分布→`pacing`;单角色语言→`character` 说话方式 |
| `pacing` | 双层 | 顺序敏感的分布(值是曲线/比率,打乱章序即毁)‖ 单个爽点构成→`craft`;逐章安排→`outline` |
| `craft` | 双层 | 单点装置——删去它场景仍成立、读者体验变平;台账只收有跨章履约的装置 ‖ 承载整场戏→桥段三型;跨章公式→`trope` |
| `combat` | 公共 | 以武力/超自然力分胜负的对抗场景 ‖ 非武力博弈(商战/权谋/斗嘴)→`scene_pattern`;情绪弧主导→`emotion` |
| `emotion` | 公共 | 以情绪弧为主体的场景(告白/离别/爆发)‖ 武力分胜负→`combat`;关系实体本身→`character_relation` |
| `scene_pattern` | 公共 | 有「目标-推进-收束」完整结构的场景范式,枚举显式排除打斗与情感 ‖ 点装置→`craft`;跨场景公式→`trope` |
| `trope` | 公共 | 规定「这条线接下来几章怎么走」的公式 ‖ 单场景流程→`scene_pattern`;本作品自己的计划→`outline`(挂引用) |
四条外边界与型内判据同等效力:质量维度不进本体(模具与检尺分立,见 [专题-04](专题-04-生成质量门控与创作健康度设计方案.md)两者单向咬合、不共享定义叙事运行态不进本体Narrative State 是独立事实载体,见 [架构-02 §3 作品内容模型](架构-02-核心数据结构与双轨模型.md)本体只提供其字段模具RAG 文档面不进本体(上传的百科语料是检索素材,非实例,除非经确认链落成作品实体);品类特化与作品私有字段不进基础层,走开放集增型与作品级 override。
### 4.5 三层浇铸与双层型
结构本体按浇铸去向分三层:**结构骨架**只浇作品事实实例,入 Local KB 或规划;**公共参考**只浇跨作品范式,由系统级拆书入 Global KB只存抽象范式与脱敏例证、不留原文**双层**两处都浇。所有型共享名称/别名/摘要/标签等基础字段,各型只在此之上标注特有字段。
`character``style``pacing``craft` 四型是双层型。主案取**单模具双库**——一型一 schema作品面实例与公共范式共用同一字段合同公共面实例落 Global KB。是否为公共面另立独立的 `*_paradigm` 型,留待三样本实测(拆书产出的公共范式能否无损写进同一字段合同)再定:能无损写入则不拆,字段合同不同构才拆。在此之前 W1 先落作品面种子,不被这个开放问题阻塞。
---
## 5. 作品容器与 base 内置机制
### 5.1 作品容器 novel_work 与 work_core 拆两 schema
作品容器不是新造的抽象。`muse_content_work` 已有一批固定列——归属用户、书名、品类、简介、状态、字数、章节数、导入与解析状态,并已预留可选关联 MetaSchema 的钩子;作品动态字段的修改入口也已预设校验 schemaVersion表与接口见 [后端-04](后端-04-统一数据库Schema-v1.md) 与 [后端-05 §4.3 作品和正文](后端-05-统一API契约-v1.md)。容器 schema 化是给这批既有固定列补上元描述,不是无中生有。
容器(`novel_work`)与作品核心(`work_core`)拆成两个 schema依据是四判据的字段合同与写入路径两条。字段合同不同构容器承载书名、简介、封面、状态、字数、时间这类运营与结构身份`work_core` 承载题材、主题立意、基调、禁区、结局方向这类创作承诺。写入路径不同:容器走用户直接修改加系统回算,`work_core` 走规划确认链。消费面不同:容器喂列表、卡片、导出与市场快照,`work_core` 喂全部开放智能体的上下文。
### 5.2 同体加投影storage_binding
容器 schema 与 Work 聚合的关系是**同体加投影,不派生**——不另建实例表避免双写漂移。schema 是对 Work 固定列的元描述与读投影模具:字段合同为每字段标注落点,`native_column`(物理列)、`extension_json`(扩展字段)或 `computed`(回算字段,用户不可编辑),这就是 `storage_binding` 机制,由 `muse_meta_field` 承载对固定列的元描述(属性落点见 [后端-04](后端-04-统一数据库Schema-v1.md)。它与「MetaSchema 不替代事实载体」一致([架构-02 §9](架构-02-核心数据结构与双轨模型.md))。卷章结构不进容器字段合同,按「投影收进读模型」降级,由 §7 统一读取器的作品分区输出。
### 5.3 base 是全局 active schema叠加与继承
`base` 不是新机制:**base 就是 `effective_scope=全局` 的 active schema 版本**,「内置」就是系统出厂 seed 的那批全局 schema。一个作品能看到的结构是三层叠加全局 active ⊕ 类型灰度版本 ⊕ 作品级 override。**override 只增不改**——只能扩展字段,不能删改全局字段的定义与可见性;这是 [架构-01](架构-01-系统全貌与边界上下文.md) BC 边界的推论,全局定义的主权不因作品扩展而被作品侧改写。
继承靠动态合成、不靠复制:系统不落 per-work schema 实例,读取时按投影版本动态合成。新作品开箱即有全部结构,因为全局 schema 天然生效、零初始化;容器上预留的品类包钩子默认空,即纯继承。
系统内置的 base schema 出厂全集是 20 项,分四档,每档的开箱形态与可见性基线如下。
| 档 | 开箱形态 | schema | 可见性基线 |
|---|---|---|---|
| 作品身份档 | 开箱即有 | `novel_work``work_core` | 可见、可编辑(容器回算字段除外)、可进 AI 上下文(禁区/结局方向按需) |
| 创作骨架档 | 开箱即有、空实例 | `outline``world``location``faction``power_system``item``event``character``character_relation` | 可见/可编辑/可检索三者全开 |
| 画像与技法档 | 开箱即有画像;公共范式随 Global KB 绑定进入 | `style``pacing``craft``combat``emotion``scene_pattern``trope` | 作品面全开;公共面例证与出处字段的可见性待例证口径 |
| 系统侧档 | 用户不可见 | `reference_work`(仅管理面)、`generation_context`(运行时) | 不可见、不可编辑 |
---
## 6. 拆书与参考作品
### 6.1 一套模具,两处浇铸
拆书不是管理员专用的一次性管线,而是一个**通用抽取智能体**给定文本、MetaSchema 与目标库,按 target type 定义的实体类型解析出实体并入库(经 Shadow→Canonical。同一个智能体有两个用场产出结构都由 MetaSchema 决定,因此系统级参考库与作品级实体库天然共用一套结构。
- **系统级(管理员)**:把几十上百本参考书拆成小说公共属性范式,沉淀进全局知识库。产出的是抽象属性与技法范式,不是逐字原文(版权约束,且 [专题-03](专题-03-AI编排上下文与质量评测实现规范.md) 禁「作品资产模板化」)。
- **作品级(用户)**:每确认一章正文,拆本章新实体与关系入局域知识库的确认链;质量校验智能体同时查与既有事实的一致性。
拆书的入库不越过双轨——系统级入 Global KB 与作品级入 Local KB 都走 Draft→确认→Canonical接受 AI 候选只写正文、不自动确认知识(不变式见 [架构-02 §1 双轨模型](架构-02-核心数据结构与双轨模型.md))。全局公共库作为每个作品的默认可检索来源,但走**显式绑定、不自动注入**:用户或管理员把公共属性库绑定到作品后才进入检索选库集,用量归系统、口径可控。
### 6.2 参考作品档案 reference_work
系统级拆书要吃进的参考书本身得有个落处,即 `reference_work`domain=knowledge、scope=entity——一份系统侧的资料资产档案不是用户创作事实。它不复用作品表参考作品的 owner 是系统、生命周期是「采购→拆解→归档」,与用户创作的「起草→连载→完结」是两码事,塞进 Content 会违反「Content 只拥有正文和作品结构」的边界。库位落 Global KB 的 document 特化Knowledge BC复用既有的资料、版本与处理任务链表见 [后端-04](后端-04-统一数据库Schema-v1.md),知识库治理面见 [产品-02E-知识库工作台功能规格](产品-02E-知识库工作台功能规格.md));拆书任务本身归 AI BC是一类新的抽取任务 `reference_extraction`
字段合同分四组。**标识**:书名、作者、品类、别名。**来源**:上传、公开语料或授权采购。**版权授权状态**`licensed``public_domain``research_only``unauthorized` 四值,其中 `unauthorized` 失败关闭,不进任何拆书任务。**拆书处理状态**`pending``parsing``extracted``curated``failed`
### 6.3 范式溯源与版权传播
范式的溯源不新设 target type、不新建表复用知识域既有的来源 lineage、快照与状态事件机制见 [架构-02 §4.3 来源和 lineage](架构-02-核心数据结构与双轨模型.md))。每条进 Global KB 的范式 Canonical 记录带上来源快照引用与 lineage 载荷,指向它的 `reference_work`、拆书任务与章节定位摘要——**只存定位摘要,不存原文段落**(版权约束)。「某本书贡献了哪些范式」不是一张新表,而是按 lineage 的读模型投影。
当某参考作品的版权状态收紧,走既有的来源状态变化传播([架构-02 §11.3 来源状态变化](架构-02-核心数据结构与双轨模型.md)**阻断该来源派生范式的新使用,但不回滚已确认的 Canonical**,与知识域现有来源传播语义一致,不引入新机制。
系统级范式的入库走一条专门入口——「管理员确认系统级知识草稿 → Global KB 范式 Canonical」确认人是管理员产出走 Draft→确认→Canonical 同构链。该入口是双轨 Canonical 封闭枚举的一项,权威登记见 [架构-02 §1.2 进入 Canonical 的入口](架构-02-核心数据结构与双轨模型.md)。
---
## 7. 统一创作数据读取器
`f(作品 + 元数据 + 知识库)` 里「读入」这一半,落在一个专门的读取层上。它**不是第四套读设施**,而是把既成的 Context Assembly[专题-03 §4 上下文组装](专题-03-AI编排上下文与质量评测实现规范.md))的取数面,显式分层为 AI Orchestration 内部的服务端读取器。它按 actor、作品与分区请求及授权上下文经各 owner 的 facade-api 拉数——Content 出作品容器、章节、正式规划与叙事状态Knowledge 出 Local KB 实体、关系、事件与绑定库检索Meta 出模具投影——再对每条数据套上该 target type 的 active MetaSchema 投影,做字段级 `aiContext` 裁剪、按 target type 结构化、附来源标注。Context Assembly 消费它完成分层组装与 Token 预算(分层定义见 [专题-03 §4.2 四层上下文](专题-03-AI编排上下文与质量评测实现规范.md));检测、导出预检等非生成链路复用同一读取器,不各自重写取数与裁剪。
它与用户面的 meta-projections **同源不同面**:共享模具投影的计算,不共享裁剪策略——用户面按 `uiVisible`/`userEditable`AI 面按 `aiContext` 裁,两者互不蕴含([架构-02 §9](架构-02-核心数据结构与双轨模型.md))。一条负约束必须写死:读取器只作为服务端内部端口存在,**不暴露为通用 app API**,否则它会成为与「通用写 SDK」对称的滥用面。
读统一、写各 owner。写侧零新设计——动态字段没有跨 owner 的通用写接口,前端禁通用写 SDK[前端-03 §5.2](前端-03-元引擎与动态表单.md)Canonical 入口是封闭枚举,智能体产出只进 Shadow这些约束一条不改。统一读取器对写的唯一贡献是沿用动态字段校验接口「校验加路由建议、不写入」的语义把「智能体想改哪个字段」翻译成「该走哪个 owner 的命令」。
**最小读合同**
- **输入**六项actorworkId分区请求集作品容器 / 规划 / 按 target_type 与 scope 过滤的 Local KB 实体 / 仅限已绑定的 Global KB 公共范式对齐「显式绑定不自动注入」运行权限包引用其分区许可上限只能收紧不能放宽purposegeneration/detection/planning/parse授权按用途裁对齐 [专题-03 §4.3 来源和授权](专题-03-AI编排上下文与质量评测实现规范.md) 的「允许阅读不等于允许进 AI 上下文」);期望 schemaVersion可选防任务中途版本漂移
- **输出**:分区化的结构块列表,每块含 `targetType``schemaKey``schemaVersion`、已按 `aiContext` 裁剪的结构化字段值、`dataRevision`、来源标注(对齐 [专题-03 §5.3 检索结果合同](专题-03-AI编排上下文与质量评测实现规范.md)),以及 `omittedFields` 及原因。
裁剪分三级、同时生效:**字段级**`aiContext=false` 的字段剔除)、**来源级**(状态受限的来源整块不进)、**用途级**`allowedPurpose` 不含本次 purpose 的剔除)。任一级判定剔除,数据即不进上下文。受限来源整块进 `omittedSources`,失败关闭并留痕可审计。
---
## 8. 关联阅读
| 主题 | 权威文档 |
|---|---|
| MetaSchema、domain/scope、双轨不变式、来源 lineage、Canonical 入口枚举 | [架构-02-核心数据结构与双轨模型](架构-02-核心数据结构与双轨模型.md) |
| BC 边界与协作规则、override 只增不改的边界推论 | [架构-01-系统全貌与边界上下文](架构-01-系统全貌与边界上下文.md) |
| AI 编排、Context Assembly、检索合同、质量评测 | [专题-03-AI编排上下文与质量评测实现规范](专题-03-AI编排上下文与质量评测实现规范.md) |
| 质量维度定义与创作健康度 | [专题-04-生成质量门控与创作健康度设计方案](专题-04-生成质量门控与创作健康度设计方案.md) |
| 外部 Agent 统一协议与 adapter | [专题-05-AI统一交互协议与外部AgentAdapter设计](专题-05-AI统一交互协议与外部AgentAdapter设计.md) |
| MetaSchema 表、功能链表、reference_work 表、storage_binding 落点 | [后端-04-统一数据库Schema-v1](后端-04-统一数据库Schema-v1.md) |
| 作品与动态字段接口契约 | [后端-05-统一API契约-v1](后端-05-统一API契约-v1.md) |
| 拆书公共属性本体管理面与参考作品治理 | [产品-02B-管理员控制台功能规格](产品-02B-管理员控制台功能规格.md) |
| 知识库三库两面与全局库绑定 | [产品-02E-知识库工作台功能规格](产品-02E-知识库工作台功能规格.md) |