笔记14:工作流画布——两级可编排的模块系统

一、固定页面导航的问题

现有前端是页面式导航(L1 → L2 → L3 → L4)。问题:

  • 顺序写死,跳不过去也回不来
  • 全局视野缺失——大纲在 L2 页,正文在 L4 页,来回切
  • 加 L1.5 就得加新页面,以后加更多步骤导航栏越来越臃肿
  • 无法自定义流程——想对比两种章纲方案?没法做

二、电路板类比:芯片 + PCB

参考 Dify/n8n/ComfyUI 的可视化工作流,但做两层:

                    ┌─────────────────────────────────────────┐
                    │                PCB(顶层工作流)          │
                    │                                         │
┌──────────┐ 愿景   ┌──────────┐ 卷纲   ┌──────────┐ 章纲    │
│   L1     │──────→│  L1.5    │──────→│   L2     │          │
│  种子    │       │ 情节编排  │       │  架构    │          │
│  ○ 完成  │       │  ○ 完成   │       │  ○ 运行中 │          │
└──────────┘       └──────────┘       └──────────┘          │
                                              │ 章纲          │
                    ┌─────────────────────────┘              │
                    ▼                                        │
              ┌──────────┐  草稿    ┌──────────┐  正文       │
              │   L3     │───────→│   L4     │              │
              │  叙事    │        │  渲染    │              │
              └──────────┘        └──────────┘              │
                    ▲                     ▲                  │
                    │                     │                  │
              ┌─────┴─────┐       ┌─────┴─────┐            │
              │  世界书   │       │   RAG     │            │
              │ (被动查询) │       │ (被动查询) │            │
              └───────────┘       └───────────┘            │
                    │                     │                  │
                    └──────────┬──────────┘                │
                               │                            │
                         共享数据总线                         │
                    └─────────────────────────────────────────┘

每个模块(L1、L1.5、L2、L3、L4、世界书、RAG)是一颗封装的芯片。芯片对外暴露若干引脚,内部有自己的子电路

顶层 PCB 画芯片之间的连线。双击芯片——打开看内部子工作流。

为什么是长期愿景

两级嵌套工作流在工程上复杂度很高(Dify 也不支持嵌套子流程),应标记为长期愿景。初期可以先做平铺的单级画布(所有节点平铺,不可嵌套),功能先跑通再考虑双击展开内部。


三、模块的引脚定义

每个模块有明确的输入输出,就像 MCU 的 datasheet:

┌─────────────────────────────────────┐
│ 模块:L2 架构层                      │
│                                     │
│ 输入引脚:                           │
│  ├─ IN_vision  ← L1 愿景 (json)     │
│  ├─ IN_volume  ← L1.5 卷纲 (md)    │
│  ├─ IN_wb      ← 世界书查询接口     │
│  └─ IN_rag     ← RAG 检索接口       │
│                                     │
│ 输出引脚:                           │
│  ├─ OUT_outline → L2 章纲 (json)    │
│  ├─ OUT_event   → SSE 事件流        │
│  └─ OUT_log     → 会议日志          │
│                                     │
│ 配置引脚:                           │
│  ├─ CFG_protocol → 会议协议          │
│  ├─ CFG_mode     → 协作模式          │
│  └─ CFG_experts  → 专家配置          │
└─────────────────────────────────────┘

用户在 PCB 层连线——把一块芯片的输出引脚连到另一块的输入引脚。


四、两级工作流

第一级:顶层 PCB(模块间连线)

从工具箱拖模块到画布,连接引脚。预置默认连线(L1→L1.5→L2→L3→L4),可自由改动:

  • 拆掉 L1.5,L1 直连 L2(跳过分卷编排)
  • L1.5 分两条线到两个 L2(对比两种章纲方案)
  • L4 拉反馈线回到 L3(不满意重写)
  • 并联"世界书自动更新"模块到 L2 旁边

第二级:芯片内部(模块内部工作流,长期愿景)

双击 L2 芯片,看到三专家循环;双击 L4 芯片,看到多 skill 切换逻辑。内部也可编辑。


五、两种操作模式

全自动:PCB 连线全部接好,点 [运行全部],数据从头流到尾。

手动微操:不连线或只连部分。每完成一个模块,产出存文档库。用户手动拿文件导到下一个模块。

全自动:                              手动微操:
[L1] → [L1.5] → [L2] → [L3] → [L4]   [L1]    [L1.5]    [L2]
 自动    自动     自动    自动          ↓导出    ↑导入      ...
                                       文档库 ← → 文档库

两种模式不互斥。大部分连线全自动,关键环节断开让人工介入。

文档库与画布的关系:文档库是用户的文件空间(笔记11),画布连线是自动化数据流。两者不冲突——用户可以把手动处理好的文档从文档库拖入画布模块的输入端口,作为自动化管线的起点。具体交互方式等实现时再深入设计。


六、模块库

左侧工具箱,拖到画布即可用:

工具箱
├── 创作模块
│   ├── L1 种子生成
│   ├── L1.5 情节编排
│   ├── L2 专家会议
│   ├── L3 标签草稿
│   └── L4 精修渲染
├── 支撑模块
│   ├── 世界书(查询/更新)
│   ├── RAG 历史回顾
│   ├── RAG 技法参考
│   └── 世界书管理员(自动更新)
├── 工具模块
│   ├── 导出 MD / 导出 TXT
│   ├── 导入文件 / 文档库保存
└── 我的模块
    ├── 我的打脸检查器(用户自建)
    └── 自动节奏分析(导入)

模块的创建与导入

  • 创建新模块:定义名称、输入输出引脚、内部 prompt
  • 导入模块:拖入 .module.yaml
  • 封装复合模块:把一堆连好的模块打包成新的芯片(长期愿景)
# 用户自建模块:my_module.yaml
id: my_dalian_checker
name: 打脸检测器
description: 检查一章的打脸密度是否达标
inputs:
  - name: chapter_text
    type: text
outputs:
  - name: density_report
    type: json
prompt: |
  分析以下章节的打脸密度...

七、节点交互

  • 单击节点 → 显示状态和产出摘要
  • 双击节点 → 展开操作面板(会议界面、标签编辑器、流式正文)
  • 右键节点 → 配置面板(改协议、切换 skill、选专家)
  • 拖拽连线 → 建立模块间数据流
  • 角标 → 状态指示(○ 待运行 / ◉ 运行中 / ✓ 完成 / ⏳ 等待用户 / [3] 任务堆积)

八、与文档库侧边栏的关系

文档库侧边栏(笔记11)在左侧可折叠,工作流画布是主视图。两者不冲突——左看文件,中连电路。全自动时看画布,手动微操时在画布和文档库之间拖文件。


待讨论问题

  1. 单级画布还是两级画布:初期先做平铺单级画布(所有节点平铺,双击弹出配置面板而非嵌套子画布),两级嵌套作为长期愿景

  2. 前端的实现方案:Vue Flow?自研 SVG 画布?拖拽连线用哪个库?

  3. 画布状态持久化:连线布局、节点位置存到哪里?JSON 文件跟随项目?

  4. 全自动模式的安全性:如果中间某个模块失败(LLM 超时、输出解析失败),全自动管线如何处理?暂停?跳过?降级?


创建时间:2026-04-30 状态:长期愿景,初期先做单级平铺画布。消息系统见笔记15

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐