Files
ai/NOVEL_IP_SYSTEM_DESIGN.md
T

1289 lines
28 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.
# NOVEL_IP_SYSTEM_DESIGN
状态:设计落地基线
创建时间:2026-06-17
适用范围:小说原创生产、小说阅读、听书派生、AI 短剧派生、IP 资产管理。
核心目标:高质量、低人工干预、长上下文不乱,并且天然适配听书和短剧。
## 1. 最高原则
这个系统不是“AI 帮我写一章小说”,而是:
```text
AI 主编室
+ AI 作家组
+ AI 审稿组
+ AI 档案管理员
+ AI 改编编剧室
+ AI 听书制作室
+ AI 短剧制作室
```
所有设计都围绕四个优先级:
```text
小说质量 > 上下文稳定 > 自动化效率 > 听书/短剧派生
```
硬性原则:
1. 小说正文是母体,听书和短剧是派生作品。
2. 听书和短剧必须基于小说版本快照,不直接依赖实时正文。
3. AI 可以自动执行,但不能擅自修改 IP 圣经、人物命运、重大反转和禁止规则。
4. 每章必须有章节卡、质检报告、记忆更新。
5. 每次重写、润色、修复都必须留版本。
6. 自动化必须有停机规则,不能连续生成低质量内容。
7. 角色、场景、道具、声音、视觉风格要资产化,不能每章重新发明。
8. 短剧系统不并入小说系统,听书系统也不并入小说系统;它们通过快照和派生任务关联。
## 2. 总体架构
```mermaid
flowchart TB
Brief[创作 Brief] --> Plan[NovelGenerationPlan\n生成计划]
Plan --> IPBible[IP 圣经\n故事/世界/人物/改编规则]
IPBible --> Assets[IP 资产库\n角色/场景/道具/声音/视频风格]
IPBible --> Outline[全书结构 / 分卷结构 / 章节规划]
Assets --> ChapterLoop[章节自动生产循环]
Outline --> ChapterLoop
ChapterLoop --> Card[章节卡]
Card --> Draft[正文初稿]
Draft --> Polish[润色稿]
Polish --> Quality[质量闸门]
Quality -->|通过| Final[终稿入库 NovelChapter]
Quality -->|局部问题| Repair[自动修复]
Quality -->|严重问题| Rewrite[整章重写]
Repair --> Quality
Rewrite --> Quality
Quality -->|多次失败| Review[人工审核]
Final --> Memory[上下文记忆更新]
Final --> Package[章节改编包\n听书/短剧可用结构]
Memory --> Next[下一章]
Package --> Snapshot[NovelVersionSnapshot]
Snapshot --> Audio[AudioBookProject\n听书派生]
Snapshot --> Drama[Drama Adaptation\n短剧派生]
Drama --> ExistingLive[现有 LiveActionModule\n关键帧/视频/合成]
```
## 3. 小说类型策略
不同体量不能用同一套上下文策略。
| 类型 | 建议规模 | 生成策略 | 上下文策略 | 人工闸门 |
| --- | ---: | --- | --- | --- |
| 短篇 | 1-5 章 / 5千-3万字 | 先完整设计结构,再逐章生成 | 可带较完整全局上下文 | 大纲确认 + 完结确认 |
| 中篇 | 6-30 章 / 3万-15万字 | 按 5-10 章批次生成 | IP 圣经 + 最近章节 + 关键记忆 | 每 10 章人工总审 |
| 长篇 | 30-300+ 章 / 15万字以上 | 按卷、按 10 章校准 | IP 圣经 + 卷纲 + 检索记忆 + 伏笔库 | 每卷/每 10 章检查 |
后台需要提供 `novel_scale`
```text
short
medium
long
```
对应自动化等级:
```text
L1: 每章人工确认
L2: 自动 5-10 章,批次后人工总审
L3: 按卷自动,触发风险才暂停
```
第一阶段推荐启用 L1/L2,终局必须支持 L3。
## 4. 现有系统复用边界
当前项目已有很多基础,不要重复造。
### 继续复用
| 现有模型/模块 | 继续承担的职责 |
| --- | --- |
| `Project` | 所有作品的顶层容器,包括小说、短剧、派生项目 |
| `NovelSource` | 小说源头,导入文本或原创小说主体 |
| `NovelChapter` | 已发布或确认的章节终稿 |
| `StoryBible` | 故事核心、主线、卖点、禁忌规则,可作为 IP 圣经文本层 |
| `WorldBible` | 世界观、规则、时代、视觉规则 |
| `Character` | 项目角色档案、视觉、声音、表演风格 |
| `GlobalCharacter` | 我的长期真人脸包/全局角色 |
| `CharacterImage` | 角色定妆、锚点图、脸包引用 |
| `CharacterState` | 角色不同状态、服装、情绪、状态变体 |
| `ActorProfile` | 真人短剧角色参考配置 |
| `Episode` | 短剧分集 |
| `EpisodeScript` | 短剧剧本 |
| `StoryboardShot` | 真人短剧分镜和视频提示词承载 |
| `Asset` | 图片、视频、音频、字幕、成品文件 |
| `RenderTask` | 图片/视频/合成等长任务 |
| `ProviderConfig` | AI Provider 配置 |
| `ProviderLog` | AI 调用日志和成本记录 |
| `LiveActionModule` | 真人短剧生产链路,不并入小说系统 |
| `MediaModule` | 音频/字幕/视频合成能力 |
### 不建议重复新增
不要新增:
```text
novel_projects
novel_characters
novel_video_pipeline
```
原因:
- `Project` 已经能当项目容器。
- `Character` 已经有足够多角色字段,应增强而不是重建。
- 视频流水线已经在 `LiveActionModule`,小说只负责适配和派生。
## 5. 需要新增的核心能力
第一版可以少启用 Agent,但这些地基必须先设计好:
```text
Agent 注册表
Prompt 版本管理
AgentRun 调用记录
Workflow 状态机
Novel Context Builder
Quality Gate
Memory / Foreshadow
Chapter Version
Novel Snapshot
Derivative Job
IP Asset
Human Review Gate
```
## 6. 推荐新增数据模型
字段命名建议跟当前 Prisma 风格保持一致:`snake_case``BigInt` 自增、MySQL、JSON 字段承载可扩展结构。
### 6.1 NovelGenerationPlan
记录原创小说生产计划和自动化配置。
```text
NovelGenerationPlan
id
project_id
novel_source_id
user_id
novel_scale short / medium / long
target_words
target_chapters
genre
style_code
brief_json
ip_bible_json
volume_plan_json
pipeline_config_json
quality_threshold_json
automation_level L1 / L2 / L3
status draft / planning / writing / paused / completed / failed
current_chapter_no
created_at
updated_at
```
说明:
- `Project` 仍然是父级项目。
- `NovelGenerationPlan` 只是原创生产计划,不替代 `Project`
- `pipeline_config_json` 记录是否允许自动听书、自动短剧、批量章数、人工闸门等。
### 6.2 NovelChapterVersion
每章的章节卡、初稿、润色稿、修复稿、终稿都要留版本。
```text
NovelChapterVersion
id
project_id
novel_source_id
novel_chapter_id
chapter_no
version_no
version_type chapter_card / draft / polished / repaired / final
title
content_text
content_json
source_agent
provider_code
model_name
quality_score
status draft / active / archived / rejected
created_at
```
说明:
- `NovelChapter` 只保存当前确认终稿。
- `NovelChapterVersion` 保存生产过程。
- 以后用户觉得某版更好,可以回滚。
### 6.3 NovelContextMemory
小说专用上下文记忆,和现有 `PlotMemory` 不冲突。
```text
NovelContextMemory
id
project_id
novel_source_id
chapter_no
memory_type
memory_text
memory_json
importance_level
status
created_at
```
`memory_type`
```text
bible_summary
chapter_summary
character_state
relationship_state
world_update
timeline_update
location_update
style_rules
adaptation_notes
forbidden_to_forget
```
说明:
- `PlotMemory` 现在更偏分集/短剧连续性。
- 小说长篇需要 `novel_source_id``chapter_no`、结构化 JSON,所以单独建表更稳。
### 6.4 NovelForeshadow
伏笔管理是长篇不乱的核心。
```text
NovelForeshadow
id
project_id
novel_source_id
code
title
first_chapter_no
expected_reveal_chapter_no
actual_reveal_chapter_no
surface_text
hidden_truth
status planned / introduced / developing / revealed / abandoned
related_characters_json
related_assets_json
created_at
updated_at
```
硬规则:
- `project_id + code` 唯一。
- 如果当前章节超过预计回收章数太多,后台要提醒。
### 6.5 NovelQualityReport
每次质检都入库。
```text
NovelQualityReport
id
project_id
novel_source_id
novel_chapter_id
chapter_no
report_type draft / polished / final / batch_review
total_score
score_json
problems_json
suggestions_json
pass_status
rewrite_required
source_agent
provider_code
model_name
created_at
```
评分维度:
```text
plot_progress
character_consistency
continuity
emotion_depth
style_quality
foreshadow_management
scene_visualization
audio_adaptation
video_adaptation
```
### 6.6 NovelVersionSnapshot
派生听书/短剧必须基于快照。
```text
NovelVersionSnapshot
id
project_id
novel_source_id
version_no
title
snapshot_scope full_novel / chapter_range / single_chapter
chapter_start
chapter_end
source_hash
snapshot_text
snapshot_json
created_for audiobook / short_drama / export / manual
created_by_user_id
created_at
```
规则:
- 启动听书或短剧前必须创建快照。
- 小说后续修改不影响已创建快照。
- 重新生成派生作品时,用户选择使用旧快照还是最新快照。
### 6.7 NovelDerivativeJob
统一管理小说派生任务。
```text
NovelDerivativeJob
id
project_id
novel_source_id
snapshot_id
user_id
derivative_type audiobook / short_drama
target_project_id
target_ref_id
chapter_start
chapter_end
config_json
status pending / running / paused / completed / failed
progress_json
error_message
created_at
updated_at
```
说明:
- 它管理“从小说派生作品”的过程。
- `RenderTask` 继续管理图片、视频、合成等底层耗时任务。
### 6.8 ProjectIpAsset
项目级 IP 资产,承载场景、道具、声音、视觉风格。
```text
ProjectIpAsset
id
project_id
asset_type scene / prop / costume / music_style / video_style / voice_profile
asset_key
display_name
asset_json
prompt_base
negative_prompt
reference_asset_id
status
created_at
updated_at
```
说明:
- 角色不用放这里,继续用 `Character`
- 场景、道具、服装、声音风格、视频风格放这里。
- 短剧生成时引用 `asset_key`,避免每章重新发明场景。
### 6.9 AgentPrompt
Agent Prompt 版本管理。
```text
AgentPrompt
id
agent_name
version
provider_type
default_provider_code
system_prompt
user_prompt_template
output_schema_json
temperature
max_output_tokens
is_active
created_at
```
说明:
- Prompt 不应写死在代码里。
- 后台可以调整 Prompt 版本。
- 设计类 Agent 必须有 `output_schema_json`
### 6.10 AgentRun
每次 Agent 调用记录。
```text
AgentRun
id
project_id
novel_source_id
chapter_no
agent_name
prompt_version
provider_code
model_name
input_json
output_json
output_text
status
quality_score
error_code
error_message
started_at
finished_at
created_at
```
说明:
- 用来追踪 AI 为什么这样写。
- 用来成本统计、重试、回放、调参。
-`ProviderLog` 的区别:`ProviderLog` 记录底层 Provider 调用,`AgentRun` 记录业务语义级 Agent 调用。
### 6.11 AudioBookProject
听书独立项目。
```text
AudioBookProject
id
project_id
novel_source_id
snapshot_id
user_id
title
status
voice_config_json
audio_style_json
progress_json
created_at
updated_at
```
可以第二阶段或第三阶段再实现,但表关系第一版要预留。
### 6.12 AudioBookChapter
听书章节。
```text
AudioBookChapter
id
audiobook_project_id
novel_chapter_id
chapter_no
audio_script_text
segment_json
subtitle_json
estimated_duration_sec
audio_asset_id
status
error_message
created_at
updated_at
```
## 7. Agent 终局设计
第一版不一定全部启用,但系统必须能容纳完整 Agent。
### 7.1 小说创作线
| Agent | 职责 | 第一阶段 |
| --- | --- | --- |
| `IPBibleAgent` | 生成 IP 圣经、主线、人设、风格、禁忌、改编规则 | 启用 |
| `VolumeOutlineAgent` | 生成全书/分卷/批次大纲 | 部分启用 |
| `ChapterCardAgent` | 生成章节卡,控制当章目标和禁止事项 | 启用 |
| `NovelWriterAgent` | 生成正文初稿 | 启用 |
| `NovelPolishAgent` | 润色文风和节奏 | 启用 |
| `ContinuityCheckAgent` | 检查设定、人设、时间线冲突 | 启用 |
| `QualityCheckAgent` | 评分、给出问题和修复策略 | 启用 |
| `RepairAgent` | 局部修复或整章重写 | 启用 |
| `MemoryUpdateAgent` | 更新章节摘要、人物状态、时间线 | 启用 |
| `ForeshadowAgent` | 新增/推进/回收伏笔 | 第二阶段 |
### 7.2 IP 资产线
| Agent | 职责 | 第一阶段 |
| --- | --- | --- |
| `CharacterAssetAgent` | 生成人物文字/视觉/声音基础档案 | 部分复用角色抽取 |
| `SceneAssetAgent` | 生成可复用场景资产 | 预留 |
| `PropAssetAgent` | 生成道具资产 | 预留 |
| `VoiceProfileAgent` | 生成角色声音档案 | 预留 |
| `AdaptationPackageAgent` | 抽取可听/可拍/可视频化结构 | 启用轻量版 |
### 7.3 听书线
| Agent | 职责 | 启用阶段 |
| --- | --- | --- |
| `AudioScriptAgent` | 小说正文转听书稿 | 第三阶段 |
| `VoiceSegmentAgent` | 旁白/对白/情绪/停顿/TTS 分段 | 第三阶段 |
| `AudioQualityAgent` | 检查听书稿可听性、角色声线一致性 | 第三阶段 |
### 7.4 短剧线
| Agent | 职责 | 启用阶段 |
| --- | --- | --- |
| `DramaScriptAgent` | 小说章节转短剧剧本 | 第四阶段 |
| `ShotListAgent` | 短剧剧本转分镜 | 第四阶段 |
| `VideoPromptAgent` | 分镜转视频提示词 | 第四阶段 |
| `VideoPromptQualityAgent` | 检查提示词是否可生成、是否超复杂 | 第四阶段 |
| `PublishPackageAgent` | 汇总小说/听书/短剧/封面/简介/标签 | 第五阶段 |
## 8. 第一版启用 Agent
第一版建议启用 8 个核心 Agent:
```text
IPBibleAgent
ChapterCardAgent
NovelWriterAgent
NovelPolishAgent
ContinuityCheckAgent
QualityCheckAgent
RepairAgent
MemoryUpdateAgent
```
同时预留:
```text
AdaptationPackageAgent
DramaScriptAgent
AudioScriptAgent
```
第一版目标不是做全套听书短剧,而是让小说质量闭环稳定。
## 9. Context Builder 设计
`NovelContextBuilderService` 是核心,不是可选项。
每次写第 N 章,不能把全文塞给模型,而是自动拼:
```text
IP 圣经摘要
当前卷纲
目标章节卡
最近 3-5 章摘要
本章出场人物档案
本章出场人物当前状态
相关伏笔
当前时间线
当前空间位置
禁止改动项
文风规则
改编规则
```
短篇、中篇、长篇策略:
```text
短篇:可带完整大纲和全部已写章节摘要
中篇:带当前卷/批次大纲 + 最近 5 章摘要
长篇:带 IP 圣经摘要 + 当前卷纲 + 检索相关记忆 + 最近 5 章摘要
```
早期检索策略:
```text
MySQL 条件检索
project_id
chapter_no 范围
memory_type
character names
foreshadow status
```
后期增强:
```text
Embedding 检索
NovelContextMemory
NovelChapter.summary
CharacterMemory
NovelForeshadow
```
## 10. Quality Gate 设计
每章必须经过质量闸门。
评分维度:
| 维度 | 权重 |
| --- | ---: |
| 剧情推进 | 15 |
| 人物一致性 | 15 |
| 上下文连续性 | 15 |
| 文风质量 | 12 |
| 情绪张力 | 12 |
| 伏笔管理 | 10 |
| 场景画面感 | 8 |
| 听书适配度 | 6 |
| 短剧适配度 | 7 |
默认规则:
```text
>= 88:自动通过
80-87:自动局部修复
< 80:整章重写
同一章最多重写 3 次
3 次仍不通过:need_human_review
连续 3 章低于 85:暂停批量自动生成
出现核心设定冲突:暂停
人物死亡、重大秘密揭露、主线反转:人工审核
```
质量报告必须写入 `NovelQualityReport`
## 11. 章节内容包
每章最终不只是正文,还要有改编结构。
```json
{
"chapter_no": 1,
"title": "查无此人",
"novel_text": "",
"chapter_summary": "",
"memory_update": {},
"adaptation_package": {
"audio_candidates": [],
"drama_scenes": [],
"visual_hooks": [],
"dialogue_candidates": [],
"narration_candidates": [],
"character_refs": [],
"scene_refs": [],
"prop_refs": [],
"ending_hook": ""
},
"quality": {
"novel_score": 88,
"audio_adaptation_score": 82,
"video_adaptation_score": 86
}
}
```
这个结构建议存在:
- `NovelChapterVersion.content_json`
-`NovelContextMemory``adaptation_notes`
- 后续可抽成单独 `ChapterAdaptationPackage`
第一版先不新增 `ChapterAdaptationPackage` 表,避免过重。
## 12. 小说到听书
听书线必须独立。
```mermaid
flowchart LR
Novel[NovelSource / NovelChapter] --> Snapshot[NovelVersionSnapshot]
Snapshot --> AudioProject[AudioBookProject]
AudioProject --> AudioScript[AudioScriptAgent]
AudioScript --> VoiceSegment[VoiceSegmentAgent]
VoiceSegment --> VoiceProvider[VoiceProvider]
VoiceProvider --> AudioAsset[Asset audio]
AudioAsset --> AudioChapter[AudioBookChapter]
```
规则:
1. 小说正文不能直接 TTS。
2. 必须先转听书稿。
3. 听书稿要拆旁白、对白、情绪、停顿、BGM、音效建议。
4. 听书失败不影响小说正文。
5. 小说修改后不自动覆盖已生成听书,除非用户选择新快照重做。
## 13. 小说到短剧
短剧线通过适配层进入现有 LiveAction。
```mermaid
flowchart LR
Novel[NovelVersionSnapshot] --> Adapter[NovelToDramaAdapter]
Adapter --> Project[生成/关联短剧 Project]
Project --> Story[StoryBible / WorldBible / Character]
Story --> Episode[Episode / EpisodeScript]
Episode --> Shots[StoryboardShot]
Shots --> Live[LiveActionModule]
Live --> Video[关键帧 / 视频片段 / 候选选择 / FFmpeg 合成]
```
`NovelToDramaAdapter` 负责:
```text
读取快照
选择章节范围
提取核心冲突
提取可视化场景
提取关键对白
提取角色/场景/道具引用
生成短剧 Project
生成 Episode
生成 EpisodeScript
生成 StoryboardShot
交给 LiveActionModule
```
规则:
- 小说章节是原料,不是剧本。
- 短剧不要直接塞大量小说旁白。
- 每个分镜都要引用已有角色/场景/道具资产。
- 合成前继续使用现有候选片段选择机制。
## 14. Provider 和模型策略
不要所有 Agent 都用最贵模型。
| 类型 | 适用 Agent | 模型策略 |
| --- | --- | --- |
| 高模型 | IP 圣经、人物设定、正文写作、最终润色 | 质量优先 |
| 中模型 | 章节卡、卷纲、记忆更新、伏笔更新 | 稳定结构 |
| 低模型 | 标签、摘要、格式转换、简单检查 | 成本优先 |
| 检查模型 | 连续性、质量评分、Prompt 质检 | 低温度、结构化输出 |
所有 Agent 都应支持:
```text
智能计划
手动指定模型
失败 fallback
ProviderLog
AgentRun
成本估算
```
设计类 Agent 必须使用 JSON Schema 或强结构化解析。
正文类 Agent 可以输出纯文本,但调用记录仍要保存。
## 15. 后台页面设计
后台小说详情建议分为这些 Tab
```text
概览
正文
IP 圣经
角色资产
场景/道具
章节生产
记忆/伏笔
质检报告
听书
短剧
Agent 配置
任务队列
```
### 概览
显示:
- 小说类型:短篇/中篇/长篇。
- 自动化等级:L1/L2/L3。
- 当前章节。
- 最近质量评分。
- 伏笔风险。
- 派生作品数量。
- 当前任务状态。
### IP 圣经
显示:
- 一句话核心。
- 主题。
- 世界观。
- 主线。
- 人物命运。
- 禁止改动项。
- 改编规则。
- 版本记录。
### 章节生产
显示:
- 章节卡。
- 初稿。
- 润色稿。
- 修复稿。
- 终稿。
- 质检报告。
- AgentRun 记录。
操作:
- 生成下一章。
- 连写 5 章。
- 连写 10 章。
- 暂停。
- 重写本章。
- 使用某版本为终稿。
- 人工通过。
### 记忆/伏笔
显示:
- 最近章节摘要。
- 人物状态变化。
- 关系变化。
- 时间线。
- 位置变化。
- 伏笔状态。
- 逾期伏笔提醒。
### 听书
显示:
- 是否启用听书。
- 自动/手动生成配置。
- 快照选择。
- 听书项目列表。
- 每章音频状态。
- 试听。
- 重新生成。
### 短剧
显示:
- 是否启用短剧。
- 自动/手动生成配置。
- 快照选择。
- 派生短剧项目。
- 跳转真人短剧工作台。
- 成片预览。
## 16. 前台页面设计
前台不暴露复杂生产逻辑,只显示用户要看的内容:
```text
小说
听书
短剧
素材
成品
```
小说阅读器继续优化:
- 真书翻页模式。
- 传统上下章模式。
- 阅读进度。
- 书签。
- 批注。
- 搜索。
听书:
- 按小说/章节展示。
- 支持播放。
- 支持断点续播。
短剧:
- 按小说/项目/集展示。
- 支持播放。
- 支持查看来源章节和快照版本。
## 17. API 设计草案
### 生产计划
```text
POST /api/novels/:novelSourceId/generation-plans
GET /api/novels/:novelSourceId/generation-plans/:planId
PATCH /api/novels/:novelSourceId/generation-plans/:planId
POST /api/novels/:novelSourceId/generation-plans/:planId/start
POST /api/novels/:novelSourceId/generation-plans/:planId/pause
```
### Agent 执行
```text
POST /api/novels/:novelSourceId/agents/ip-bible/generate
POST /api/novels/:novelSourceId/chapters/:chapterNo/card/generate
POST /api/novels/:novelSourceId/chapters/:chapterNo/draft/generate
POST /api/novels/:novelSourceId/chapters/:chapterNo/polish
POST /api/novels/:novelSourceId/chapters/:chapterNo/quality-check
POST /api/novels/:novelSourceId/chapters/:chapterNo/repair
POST /api/novels/:novelSourceId/chapters/:chapterNo/memory-update
```
### 章节版本
```text
GET /api/novels/:novelSourceId/chapters/:chapterNo/versions
POST /api/novels/:novelSourceId/chapters/:chapterNo/versions/:versionId/activate
```
### 记忆与伏笔
```text
GET /api/novels/:novelSourceId/memories
GET /api/novels/:novelSourceId/foreshadows
POST /api/novels/:novelSourceId/foreshadows
PATCH /api/novels/:novelSourceId/foreshadows/:id
```
### 快照与派生
```text
POST /api/novels/:novelSourceId/snapshots
GET /api/novels/:novelSourceId/snapshots
POST /api/novels/:novelSourceId/derivatives/audiobook
POST /api/novels/:novelSourceId/derivatives/short-drama
GET /api/novels/:novelSourceId/derivative-jobs
```
## 18. BullMQ 任务设计
建议新增任务类型:
```text
novel.ip_bible.generate
novel.volume_outline.generate
novel.chapter_card.generate
novel.chapter_draft.generate
novel.chapter_polish.generate
novel.chapter_quality_check
novel.chapter_repair
novel.memory_update
novel.batch_generate
novel.snapshot.create
novel.audiobook.create
novel.short_drama.adapt
```
每个任务都要:
-`AgentRun`
-`ProviderLog`
- 支持重试。
- 支持暂停。
- 支持失败原因。
- 支持人工接管。
## 19. 工作流状态机
### NovelGenerationPlan.status
```text
draft
planning
ready
writing
paused
need_human_review
completed
failed
```
### NovelChapterVersion.status
```text
draft
active
archived
rejected
```
### NovelDerivativeJob.status
```text
pending
running
paused
completed
failed
cancelled
```
### AudioBookProject.status
```text
draft
generating_script
generating_voice
mixing
completed
failed
paused
```
### 短剧 Project.status 补充建议
```text
drama_adapting
storyboard_ready
live_action_ready
video_generating
clip_selecting
rendering
completed
failed
```
## 20. 分阶段落地计划
### Phase 0:设计冻结
目标:
- 固定本文档。
- 明确复用现有表和新增表。
- 明确第一版启用 Agent 和终局 Agent。
交付:
- `NOVEL_IP_SYSTEM_DESIGN.md`
- 后续开发任务清单。
### Phase 1:小说 IP 生产地基
目标:
- 建表。
- 建 Agent Prompt/Run。
- 建 NovelGenerationPlan。
- 建 ChapterVersion。
- 建 ContextMemory。
- 建 QualityReport。
- 建 Snapshot。
- 建 DerivativeJob。
- 建基础后台页面。
不要求一次生成完美小说,但要求所有过程可追踪。
### Phase 2:高质量单章闭环
目标:
```text
Brief
→ IP 圣经
→ 章节卡
→ 正文初稿
→ 润色
→ 连续性检查
→ 质量评分
→ 修复/重写
→ 终稿入库
→ 记忆更新
```
验收标准:
- 每一步有 AgentRun。
- 每一章有质量分。
- 低分会自动修复。
- 修复失败会暂停。
- 上下文不会靠手工粘贴。
### Phase 3:批量自动生成
目标:
- 支持 5 章/10 章批量生成。
- 支持短篇、中篇、长篇策略。
- 支持每 10 章自动体检。
- 支持伏笔逾期提醒。
- 支持人工审核闸门。
验收标准:
- 连续生成 10 章不明显断上下文。
- 人物状态能延续。
- 伏笔能新增、推进、回收。
- 低分章节不会直接发布。
### Phase 4:听书派生
目标:
```text
NovelVersionSnapshot
→ AudioBookProject
→ AudioScriptAgent
→ VoiceSegmentAgent
→ VoiceProvider
→ Asset 音频
```
验收标准:
- 听书基于快照。
- 小说修改不影响已生成听书。
- 听书稿不是直接 TTS 正文。
- 每章音频可播放。
### Phase 5:短剧派生
目标:
```text
NovelVersionSnapshot
→ NovelToDramaAdapter
→ Project / Episode / Script / StoryboardShot
→ LiveActionModule
```
验收标准:
- 可选择小说章节范围生成短剧项目。
- 自动生成短剧剧本和分镜。
- 分镜引用角色/场景/道具资产。
- 后续进入现有真人短剧流程。
### Phase 6IP 资产强化
目标:
- 角色视觉资产稳定。
- 角色声音资产稳定。
- 场景/道具/服装/音乐/视频风格资产可复用。
- 视频 Prompt 不再每章乱写角色和场景。
### Phase 7:全自动与运营化
目标:
- L3 按卷自动生成。
- 自动生成封面提示词、简介、标签、预告片脚本。
- 支持平台版本:小说平台、听书平台、短剧平台。
- 支持成本、质量、失败率统计。
## 21. 第一轮开发任务拆分
建议按这个顺序开发,不容易翻车:
1. Prisma 新增基础表。
2. 新增 `AgentPrompt` 初始化数据。
3. 新增 `AgentRunService`,封装业务级 Agent 调用。
4. 新增 `NovelPromptBuilderService`
5. 新增 `NovelContextBuilderService`
6. 新增 `NovelQualityGateService`
7. 新增 `NovelGenerationWorkflowService`
8. 后台新增小说生产 Tab。
9. 跑通 IP 圣经生成。
10. 跑通单章生成闭环。
11. 加入 Snapshot。
12. 加入派生任务空壳。
第一轮不要急着接听书和短剧视频,先把小说质量闭环跑稳。
## 22. 验收清单
### 小说质量
- 能根据 Brief 生成 IP 圣经。
- 能生成章节卡。
- 能根据上下文生成正文。
- 能自动质检。
- 能自动修复。
- 能保存版本。
- 能更新记忆。
- 能管理伏笔。
### 自动化
- 人工不需要复制上下文。
- 人工不需要手工整理最近章节摘要。
- 人工只在质量闸门或重大节点介入。
### 长上下文稳定
- 第 N 章能读取最近 3-5 章摘要。
- 能读取出场人物当前状态。
- 能读取相关伏笔。
- 能读取禁止改动项。
- 能识别设定冲突。
### 听书/短剧适配
- 每章有改编包。
- 每次派生有快照。
- 派生任务失败不污染小说正文。
- 短剧最终进入现有 LiveActionModule。
## 23. 不做的事
第一阶段不做:
- 一键生成 100 章。
- 自动生成完整听书成品。
- 自动生成完整短剧成片。
- 替换现有 LiveActionModule。
- 重建角色系统。
- 重建视频任务系统。
第一阶段要做的是把“小说质量闭环 + 可追踪地基”打稳。
## 24. 最终判断
当前项目已经有视频流水线、角色库、Provider、素材、FFmpeg、小说导入和阅读器。现在正确方向不是重做,而是补上:
```text
Novel IP 生产中台
```
它负责:
- 写出高质量小说。
- 管住长篇上下文。
- 管住人物和伏笔。
- 管住版本和快照。
- 把小说变成可听、可拍、可生成视频的内容包。
最终系统形态:
```text
小说能独立成为作品
听书能从小说快照派生
短剧能从小说快照派生
三个系统互相关联,但互不污染
```