Files

300 lines
21 KiB
Markdown
Raw Permalink 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.
# 雅文内容创造工作台 · 设计文档 v2(B 方案·独立 Web 工作台)
> 日期:2026-08-25 | 状态:方案确认稿 | 技术路线:独立 Web 应用(FastAPI + SQLite + React)
> v1 → v2 变更:① Agent 注册中心(可自建 Agent,数量不限)② 记忆沉淀需人工确认(待确认池)③ 锚点卡上下文契约(解决段间互不知情的连贯性问题)④ 组合 Agent 升级为"拼装+一致性总检+打回路由"
---
## 1. 项目概述
一个**独立运行的 Web 工作台**(浏览器访问,本地部署),核心是"多 Agent 内容工厂":
- 你只需要:输入主题/导图/框架 → 主控 Agent 自动拆解派单 → 各环节 Agent 生产 → 4 道质检 → 人工审查 → 组合交付
- **Agent 可以自己随便添加**:预置 7 个环节 Agent + 4 个质检 Agent + 2 个服务 Agent,任何时刻你都可以新建/复制/停用 Agent,把它编进流水线
- **记忆沉淀必须你点头**:所有"AI 想记住的东西"先进待确认池,你确认了才写进对应 Agent 的记忆库
- **连贯性有双保险**:生成时传锚点卡对齐 + 组合时一致性总检,发现问题打回原段,不糊弄
## 2. 需求 → 设计对策映射(v2 完整版)
| # | 你的要求 | 设计对策 | 状态 |
|---|---|---|---|
| 1 | 很多个 Agent 组成 | 预置 13 个 Agent,可自由添加 | v2 升级:注册中心 |
| 2 | 每个 Agent 可设置规则 | 每个 Agent 一个 `rules.md`,工作台内可视化编辑,版本历史可回滚 | ✅ |
| 3 | 上下文隔离 | Agent 间不共享对话,只传结构化契约:任务切片 + 上游锚点卡 | v2 升级:锚点卡 |
| 4 | 知识库共用 | 只读共享知识库(6 库),所有 Agent 可检索、不可写 | ✅ |
| 5 | 哪里不对改哪里 | 打回粒度=段产物;三种修改路径(打回/改规则/直接改) | ✅ |
| 6 | 给主 Agent 主题/导图即可 | 主控解析→任务单→自动派发(按依赖分波次)→跟踪→汇总 | v2 升级:波次调度 |
| 7 | 每件产物都有质检 Agent | 4 道质检闸(结构/内容/风格尺度/跨稿),产物生成即检 | ✅ |
| 8 | 质检过还要人工审查 | 人工审查台=硬关卡,质检全过≠交付 | ✅ |
| 9 | 组合成一篇直播文稿 | 组合 Agent:拼装+一致性总检+六色 docx | v2 升级:总检职责 |
| 10 | Agent 自主学习、越用越懂 | 每 Agent 独立记忆库(L1-L4),**写入需人工确认** | v2 升级:待确认池 |
| 11 | 记忆库隔离 | 记忆按 Agent 命名空间物理隔离 | ✅ |
| 12 | **Agent 可自添加、数量不限** | Agent 注册中心:新建向导/复制/停用/版本管理;流水线自由编排 | 🆕 |
| 13 | **沉淀先人工确认** | 所有沉淀建议→待确认池→人工确认→写入;拒绝可屏蔽 | 🆕 |
| 14 | **段间连贯性** | 锚点卡(生成时对齐)+ 组合器一致性总检(兜底) | 🆕 |
## 3. 系统架构总览(v2)
```
┌────────────────────────── 你(浏览器访问工作台) ──────────────────────────┐
│ 输入:主题/导图/框架 · 管理:Agent注册中心/流水线编辑 · 审查:质检+记忆确认 │
└───────┬──────────────────────────────────────────────────────────────────┘
▼
┌────────────────────────────────────────────────────────────────────────┐
│ Agent 注册中心(可自建) │
│ ├─ 预置生产Agent:开场/心法/技法/场景/产品/收尾/互动标记 │
│ ├─ 预置质检Agent:结构/内容/风格尺度/跨稿 │
│ ├─ 预置服务Agent:产品顾问/风格顾问 │
│ └─ 你新建的任意 Agent(向导:名称/职责类型/规则/输入来源/记忆库自动开) │
└──────────────────────────┬─────────────────────────────────────────────┘
▼
┌────────────────────────────────────────────────────────────────────────┐
│ 流水线编排器(Pipeline,DAG 依赖图) │
│ 主控Agent:解析导图→任务单→按依赖分波次派发→跟踪→汇总 │
│ 波次1:开场段、服务Agent预热 波次2:心法段、技法段(读开场锚点卡) │
│ 波次3:场景段、产品段(读心法/技法锚点卡) 波次4:收尾段(读全部锚点卡) │
└──────┬─────────────────────────────────────────────────────────────────┘
▼ 每波次完成后
┌────────────────────────────────────────────────────────────────────────┐
│ [段Agent](每段独立会话/独立记忆库)──产出──▶ 段产物 + 锚点卡AnchorCard │
│ ▲ │ │ │
│ │ ▼ ▼ │
│ 打回重跑 ◀── 4道质检闸(结构/内容/风格尺度/跨稿)──▶ 质检报告 │
│ ▲ │ │
│ │ ▼ 全过 │
│ ┌────┴──────┐ ┌──────────────┐ │
│ │ 人工审查台 │◀── 逐段:产物+质检报告+锚点卡 ──────────│ 记忆待确认池 │ │
│ │ ✅通过/🔁打回│(打回意见→记忆建议,等你确认) │ 沉淀建议→你确认│ │
│ └────┬──────┘ └──────────────┘ │
│ ▼ 全部通过 │
│ ┌─────────────────────────────────────────────────────────────────┐ │
│ │ 组合Agent:时间轴拼装 → 一致性总检(矛盾/回指/时间线/情绪曲线/钩子) │ │
│ │ → 不一致打回原段(带位置) → 微衔接缝合(必须标记) → 六色docx │ │
│ └─────────────────────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────────────────────┘
▼
📄 直播文稿.docx(六色标记)+ 组合报告(衔接处理清单)+ 待确认清单
```
## 4. Agent 注册中心(🆕 核心变更 1)
### 4.1 三种 Agent 类型
| 类型 | 干什么 | 例子 | 是否参与流水线 |
|---|---|---|---|
| 生产 Agent | 生成一段内容 | 开场段、心法段、你自己建的"弹幕互动段" | ✅ 是流水线节点 |
| 质检 Agent | 检查某类质量 | 结构质检、合规质检 | ✅ 挂在每个段产物上 |
| 服务 Agent | 只读供给素材/标准 | 产品顾问、风格顾问 | 后台被调用 |
### 4.2 新建 Agent(向导式,5 步,几分钟完成)
```
1. 基本信息:名称 / 描述 / 图标 / 类型
2. 职责定义:这个 Agent 负责生成/检查什么(一句话职责)
3. 规则编辑:自动生成 rules.md 模板 → 你直接写规则(支持 Markdown)
(预置常用规则片段库:开场降档/技法快准狠/一产品一概念/色情小说档…一键插入)
4. 输入来源:从哪个上游读锚点卡(可多选)/ 需要哪些知识库(勾选)
5. 确认创建:自动创建独立记忆库 + 工作目录 + 测试按钮(拿一段样稿试跑)
```
- **复制**:右键现有 Agent → 复制 → 改名改规则(想做个"青蛇白蛇段Agent"就复制"场景段Agent"改规则)
- **停用/启用**:停用的 Agent 不进派单池,历史产物保留
- **版本管理**:规则每次保存记版本,可回滚,可对比 diff
- **数量无上限**:Agent 表就是普通数据库表,加多少都行
### 4.3 Agent 的能力标签
每个 Agent 挂标签(心法/技法/产品/场景/收尾/质检-结构/…),主控派单时按"任务单段类型 → 匹配标签的 Agent"选择执行者。同一类型有多个 Agent 时可选(或轮流)。
## 5. 流水线编排(🆕 核心变更 2)
- **默认流水线**(预置):开场 →(依赖) 心法/技法 →(依赖) 场景/产品 →(依赖) 收尾 → 组合
- **你可以编辑**:流水线编辑器(拖拽/列表)里加节点、删节点、改依赖关系、改执行顺序
- **调度逻辑**:主控把任务单段映射到流水线节点,按**依赖图分波次(wave)执行**——无依赖的段并行跑,有依赖的段等上游完成后跑
- 每个节点配置:执行 Agent、输入来源(读哪些上游的锚点卡)、质检要求(挂哪几道质检)
## 6. 上下文契约机制(🆕 核心变更 3)—— 回答"段间互不知情"的问题
### 6.1 锚点卡 AnchorCard(每段产物自动附带)
```json
{
"segment_id": "seg-02",
"agent": "segment_xinfa",
"title": "心法·女人如水",
"core_concepts": ["女人是水,男人是火", "先把自己叫湿了"],
"techniques": [],
"products_ref": [],
"golden_lines": ["所有的性感都不是天生的"],
"emotion_tone": "温柔引导型(低声区)",
"ending_hook": "水要养,亲水先热",
"key_facts": []
}
```
- 每段产物生成后,由产出 Agent 自动提炼锚点卡(或主控提炼)
- **下游 Agent 只读上游锚点卡**(一页摘要),不读全文、不共享对话——隔离不破,连贯性有保障
- 锚点卡同时是质检的"对照物":质检核对产物与锚点卡是否一致(防锚点卡撒谎)
### 6.2 依赖规则(默认,可改)
| 下游段 | 必读锚点卡 | 为什么 |
|---|---|---|
| 心法段 | 开场段 | 心法要接住开场的情绪落差 |
| 技法段 | 心法段 | 技法兑现心法埋的钩子 |
| 场景段 | 心法段+技法段 | 场景要用已教的技法做戏 |
| 产品段 | 技法段 | 产品挂靠已展示的痛点技法(卖点前必有痛点技法展示) |
| 收尾段 | 全部 | 收尾钩子=次日真实框架+本场回指 |
## 7. 组合 Agent(升级:拼装 + 一致性总检 + 打回路由)
### 7.1 拼装
按任务单时间轴把各段拼接(每段标题带时间标注、大块灰字分隔),复用六色标记 docx 引擎(宋体 10.5pt、段落自然合并 85-110 段)。
### 7.2 一致性总检(组合器新增核心职责,5 项)
| 检查项 | 查什么 | 不过怎么办 |
|---|---|---|
| 跨段矛盾 | 概念/数据/说法前后打架(阈值高 vs 低) | 打回对应段 |
| 回指断裂 | 前面提到的技法/产品/金句,后面引用对得上 | 打回引用段或定义段 |
| 时间线打架 | 段标题时间标注与任务单、与段内叙述一致 | 打回该段 |
| 情绪曲线断裂 | 全稿情绪走势(低谷→峰值→信念收尾)连贯 | 打回问题段 |
| 钩子兑现 | 段 N 结尾钩子 = 段 N+1 实际内容;收尾钩子=次日预告 | 打回 |
### 7.3 处理原则:打回 > 缝合
- 结构性不一致 → **打回原段重跑**(组合器永不擅自改内容)
- 微小衔接(两段交界缺个过渡句)→ 组合器做"缝合编辑",但**缝合处必须标记**(蓝色【B】+ 组合报告里列"衔接处理清单"给你看)
### 7.4 组合报告
交付时附带:`衔接处理清单`(哪些原样拼接/哪些缝合/哪些打回过)、时间压缩决策、跨稿对账结果、待确认项。
## 8. 质检体系(4 道闸,不变,细节见 v1 第 4.4)
| 闸 | 检查 | 产物 |
|---|---|---|
| ① 结构质检 | 硬伤/笔误/结构残留/时间轴 | 质检报告(逐条对证正文) |
| ② 内容质检 | 痛点技法展示/一产品一概念/技法密度/为什么铺垫 | 同上 |
| ③ 风格尺度质检 | 色情小说档词清单/禁词清零/反问句归零/表演标记 | 同上 |
| ④ 跨稿质检 | day N-1 预告兑现/价格术语/产品台账 | 同上 |
质检报告格式、打回路由与 v1 相同;新增:质检报告核对锚点卡一致性。
## 9. 人工审查台(硬关卡 + 记忆确认面板)
### 9.1 逐段审查视图
- 左:段产物全文(表演标记灰色显示)
- 右:该段质检报告(红绿灯)+ 锚点卡 + 时间轴位置
- 操作:✅ 通过 / 🔁 打回(写意见,意见自动生成"记忆建议"进待确认池)/ ✏️ 直接改(改动标记)
### 9.2 记忆确认面板(🆕 核心变更 4)
```
┌─ 待确认池(记忆建议)─────────────────────────────┐
│ #3 建议沉淀:技法段Agent ← 打回意见 │
│ "技法讲解前必须先给'为什么'铺垫1-2句再进干货" │
│ 来源:2026-08-day4 打回#2 | 类型:L3偏好 │
│ [✅ 确认沉淀] [❌ 拒绝] [🚫 拒绝且屏蔽同类] │
│ #4 建议沉淀:质检Agent ← 质检FAIL │
│ "本场高频错误:'养护'字样残留" │
│ [✅ 确认沉淀] [❌ 拒绝] │
└──────────────────────────────────────────────────┘
```
- 任何沉淀(打回意见/质检模式/你的规则改动)**都先进池子**
- 确认 → 写入对应 Agent 记忆库(独立命名空间);拒绝 → 丢弃;"屏蔽同类" → 该来源类型不再建议
- 池子可批量操作(连过 5 条)
### 9.3 组合终审
组合完成后你还要过一遍全文(组合 Agent 的报告+全文),确认后才是最终交付。质检→人工→组合→人工终审,四道关卡。
## 10. 记忆系统(v2:人工确认版)
| 层 | 内容 | 来源 | 写入方式 |
|---|---|---|---|
| L1 规则 | 你显式改的规则 | 你编辑 rules.md | 直接写入(你改的就是规则) |
| L2 纠错 | 质检错误模式 | 质检 FAIL 自动生成建议 | **待确认池→你确认** |
| L3 偏好 | 打回意见/审查意见 | 打回时自动生成建议 | **待确认池→你确认** |
| L4 成功 | 通过稿复盘 | 你主动触发 | 你触发才生成建议,再确认 |
红线不变:只沉淀"怎么讲"(打法/结构/风格/质检标准),不沉淀"讲什么"(价格/头衔/技法名/场次性口径);记忆条目带来源标签可追溯。
## 11. 数据模型(v2 核心表)
```sql
agents -- Agent 注册中心
id, name, type(production|qc|service), status(active|disabled),
tags, rules_version, memory_namespace, created_at, version_history(json)
pipelines -- 流水线定义
id, name, nodes(json: [{agent_id, depends_on[], qc_gates[], kb_tags[]}])
campaigns -- 每次生产任务
id, date_id, pipeline_id, mindmap_ref, task_spec(json), status, wave_state
segments -- 段产物
id, campaign_id, agent_id, node_id, anchor_card(json),
artifact_path, status(pending|qc|human_review|approved|rework), version
qc_reports -- 质检报告
id, segment_id, gate(structure|content|style|cross), checks(json), verdict
pending_memories -- 记忆待确认池
id, target_agent_id, type(L2|L3|L4), content, source_ref,
status(pending|approved|rejected|blocked)
memories -- 已确认记忆(per-agent 命名空间)
id, agent_id, layer(L1-L4), content, source_ref, created_at, status(active|expired)
artifacts -- 组合产物
id, campaign_id, docx_path, compose_report(json), final_status
```
## 12. 工作台页面规划(UI)
| 页面 | 功能 |
|---|---|
| 任务看板(首页) | 新建任务(传导图/主题)、任务列表、每任务进度(波次状态/各段红绿灯/当前卡在哪) |
| Agent 管理 | Agent 列表/新建向导/规则编辑器(含版本历史)/复制/停用/试跑按钮 |
| 流水线编辑 | 节点编排(加/删/依赖连线)、节点 Agent 指派、质检挂载 |
| 导图解析 | 上传导图 → 主控解析预览 → 读不准的词列表 → 你确认/修正 → 生成任务单 |
| 审查台 | 逐段审查(产物+质检报告+锚点卡)+ 打回/通过 + 直接改 |
| 记忆确认 | 待确认池:确认/拒绝/屏蔽 + 各 Agent 记忆浏览(只读) |
| 交付中心 | 组合报告 + docx 下载 + 历史版本 |
## 13. 技术选型(B 方案落地)
| 层 | 选型 | 理由 |
|---|---|---|
| 后端 | FastAPI (Python) | 你环境 Python 3.14 可用;FastAPI 开发快、异步适合并行调 Agent |
| 数据库 | SQLite + SQLModel | 单机部署零运维;一张库文件可备份迁移 |
| Agent 引擎 | DeepSeek API(可配置多 provider) | 你已有 DeepSeek 密钥;后续可换 |
| 知识库 | 文件系统 + SQLite FTS5 全文检索 | 素材是本地文件(SRT/docx/md/chunks.jsonl),先做索引+BM25;后续可加向量 |
| 前端 | React + Vite + 看板组件 | 交互密集(拖拽/红绿灯/编辑);本地起 dev server |
| 产物 | 文件系统 + 元数据入库 | docx 引擎复用 make_color_docs.py 逻辑(改为工作台内生成) |
| 部署 | 本机 `uvicorn` 服务,浏览器访问 localhost | 单用户;后续可加登录 |
## 14. 里程碑(2 周,4 阶段,每阶段可验收)
| 阶段 | 内容 | 验收标准 |
|---|---|---|
| **M1(第1-2天)** 骨架+核心链路 | 后端骨架、SQLite 表、Agent 注册中心(新建/规则编辑)、任务创建(传导图/文字)、主控解析→任务单→顺序派发(先不做波次)、3 个预置段 Agent、结构质检 1 道、审查台(打回/通过)、组合(简单拼接+docx) | 用一天真实导图跑通:导图→任务单→3段→质检→审查→docx 全链路 |
| **M2(第3-6天)** 隔离与连贯 | 锚点卡机制、依赖图波次调度、流水线编辑器(简单版)、全部 7 个预置段 Agent、4 道质检全开 | 段间互读锚点卡生效;打回段3 不影响段1/2/4;质检报告逐条可对证 |
| **M3(第7-10天)** 记忆+组合升级 | 待确认池(记忆面板)、L1-L4 记忆库落库、组合器一致性总检(5项)+缝合标记+组合报告、知识库接入(原文库/备稿库/产品库 FTS5 检索+风格顾问/产品顾问) | 打回意见进池→确认→下次注入;组合器抓到一次真实矛盾并打回;六色 docx 规格达标(宋体10.5/段落合并/词清单验证) |
| **M4(第11-14天)** 打磨+批量 | 导图图片 OCR 接入(Windows OCR 替代路径)、多天连续任务、跨稿对账自动化(day N-1 预告→day N 兑现)、UI 打磨 | 连续跑 3 天稿子,跨稿质检 0 漏项;全程不依赖对话式操作 |
## 15. 风险与红线(继承 v1 + 新增)
1. 导图读取:读不准的词必须列待确认清单问你(不变)
2. 口径不沉淀:记忆系统只沉淀"怎么讲"(不变,且加人工确认双保险)
3. 质检报告≠事实:报告逐条对证正文(不变)+ 新增核对锚点卡
4. **锚点卡防撒谎**:锚点卡由质检核对与产物一致性,防"摘要和正文不符"导致下游被误导
5. **组合器权限边界**:只拼装+总检+缝合标记,永不擅自改内容;结构性不一致一律打回
6. 记忆噪音:待确认池挡住噪音;"屏蔽同类"防反复打扰
7. 合规底线:质检保留合规闸;防拒审信封只进后台不进正文
8. 并行与成本:波次调度天然限流(同波次并发数可配置),DeepSeek API 调用量在任务页可见
---
**待你确认(v2 只剩 2 个关键问题):**
1. 默认流水线依赖关系(第 6.2 表:心法读开场、技法读心法、产品读技法…)符合你的生产逻辑吗?要不要调整?
2. M1 验收用哪一天的导图试跑?(建议最近一天的真实导图,边跑边把任务单/锚点卡 schema 敲实)