项目展示页 · Showcase | 前往 GitHub 仓库 →

梦弦 Agent DreamChord*

像写小说一样创作,像玩游戏一样阅读。
浏览器里的视觉小说创作平台——让 Agent 读懂项目,再把想法变成可播放的故事。

Scroll
6
镜头卡类型
6
Agent 记忆层
4
LLM 供应商
12
体检检查项
3
章节场景结构
5
角色立绘系统
1
Windows 启动
100%
浏览器运行

从一个想法,到一部可播放的视觉小说

DreamChord 是面向视觉小说创作者的 Web 故事工作台:把剧情写作、角色与素材管理、分支校验、Agent 协作和浏览器预览放在同一条创作链路里。

01写故事章节 / 场景 / 镜头卡
02管状态角色 / 背景 / 素材库
03查结构流程图 / 体检 / 分支
04用 Agent理解、建议、执行、审批
05可播放浏览器预览 / 发布

创作者不需要学习脚本语法,也不需要手动维护 jump 和节点连线。镜头卡是写作入口,故事图是校验视图,播放器是最终结果。

故事编辑器6 种镜头卡、实时预览、自动保存、撤销重做和长文导入。
剧情与角色章节场景连续性、角色登场退场、选项分支和剧情健康检查。
素材工作室全局素材库、白底去除、透明裁边、立绘 / CG / 背景衍生图。
项目感知 Agent多对话、分层记忆、工具调用、提案审批和可撤销修改。

不是聊天框,而是一条可控的创作工作流

DreamChord Agent 为什么更智能?因为它先理解你的项目,再决定要不要调用工具;它能记住设定,但不会越过作者直接改稿。

这是一套自研 TypeScript Agent 编排层,不是把聊天框简单接到模型。它采用“ReAct 风格”的观察 → 推理 / 规划 → 工具执行 → 校验循环,但把工具权限、数据边界和最终写入控制在服务端。

01
本地意图路由
先识别“查项目、续写、查素材、体检、回顾对话、导入正文”等任务,零 Key 也能完成确定性项目任务。
02
项目上下文 + 分层记忆
按项目、故事圣经、章节、角色、对话摘要和记忆优先级组装上下文,减少答非所问和设定冲突。
03
白名单工具 + 提案审批
只允许读取、体检、素材检查等受控工具;剧情补丁先预览差异,作者确认后才应用,支持撤销。
一次 Agent 请求如何完成
Observe读取项目、章节、角色、素材、对话摘要和相关记忆。
Reason模型只返回结构化 `tool_call` 或 `final`,最多循环 8 步。
Act通过 Zod schema 校验参数,调用已注册的业务工具。
Validate用 story-domain 校验剧情图、版本和补丁差异。
Approve作者预览、应用、拒绝或撤销,Agent 不直接写数据库。
无 API Key项目检索、创作知识、确定性续写、正文结构化转换与只读公共知识查询。
配置模型后更自然的续写、润色、长文本扩展与剧情规划。
始终可控工具白名单、版本保护、审批、拒绝与撤销。
自研 ReAct-style ExecutorTypeScript + ExpressZod 工具 SchemaPrisma + SQLite 记忆GLM / DeepSeek / Kimi / OpenAI 兼容
localhost:5173/agent · zero-config
DreamChord Agent 将选中草稿清洗并转换为可审核工作台补丁的真实桌面 Web 截图
真实桌面 Web 验收截图 · 1440 × 900草稿解析、素材匹配与作者审批同屏可见
Philosophy

三条设计理念

DreamChord 不是又一个 Ren'Py 克隆,而是重新思考"非技术用户如何创作视觉小说"后的答案。

写作优先,技术隐身

用户看到的永远是"谁说了什么"的镜头卡,而不是节点图、跳转标签或脚本语法。系统在后台自动完成节点创建、连线生成、场景转换和运行时编译——创作者只管写故事,技术细节全部隐身。

ShotCard → Node → Edge

浏览器原生,零安装

前端 React + Vite,后端 Express + Prisma,全部跑在浏览器里。创作者打开网址就能写,读者打开链接就能玩。不需要安装 Python 运行时,不需要打包 exe,不需要部署服务器——一个链接就是全部。

Web-Native · PWA Ready

Agent 原生,人始终审批

Agent 读取项目上下文和分层记忆,调用受限工具完成规划与校验,但不能直接写数据库。故事补丁和图片衍生图都先进入审查状态,由作者决定应用、拒绝或撤销。

Memory · Tools · Approval

把节点图的复杂性隐藏在镜头卡背后

DreamChord 是一个面向非技术用户的视觉小说创作平台。传统视觉小说引擎(如 Ren'Py)要求创作者学习脚本语法、手动管理跳转标签、理解节点连线逻辑,门槛极高。DreamChord 的核心理念是:用户只需像写小说一样填写背景、选择角色、编写台词,系统自动将其转换为可播放的节点图和运行时场景。通过"章节 → 场景 → 镜头卡"三级结构组织剧情,一键发布即可在浏览器中直接播放——无需安装任何运行时,无需部署服务器,分享链接即可阅读。

节点图太难
传统引擎痛点:Ren'Py 需要手写 label 和 jump 语句,TyranoBuilder 的节点连线复杂且容易出错,新手往往在"如何连接两个场景"上卡住数小时。DreamChord 方案:镜头卡写作界面,用户只需填写"谁说了什么",系统自动创建 background → character → dialogue 节点链并生成连线,用户完全不需要看到节点图。
没有可视化预览
传统引擎痛点:修改一句台词需要重新编译运行整个项目,无法实时看到立绘位置、表情变化和文本框效果。DreamChord 方案:编辑器右栏 MiniPreview 实时渲染,每改一个字、换一个背景、调整一个站位,立刻在右侧看到与最终播放器完全一致的效果。支持"完整预览"全屏沉浸式查看。
分支管理混乱
传统引擎痛点:多分支剧情容易产生"死路"(选择了某选项但忘记写后续)、"断线"(jump 目标不存在)和"无限循环",调试极其困难。DreamChord 方案:选项无去向时自动显示琥珀色警告徽章和汇总提示条;剧情流程图以 galgame 风格可视化所有场景和分支连线,汇合场景紫色高亮;项目体检面板自动检测 12 项健康指标。
AI 辅助缺失
传统引擎痛点:普通聊天工具不了解项目结构,不记得不同创作任务,也无法安全修改分支图。DreamChord 方案:多对话创作 Agent 读取故事圣经、章节图、历史和分层记忆;没有 API Key 时仍可做项目检索和创作知识问答,复杂任务再调用受限工具生成提案,作者可以查看差异、应用、拒绝或撤销。
无法即时分享
传统引擎痛点:Ren'Py 需要打包为 exe/apk 分发给读者,每次修改都要重新打包;Web 引擎需要自己部署服务器。DreamChord 方案:一键发布到作品广场,生成分享链接,读者打开浏览器即可游玩。支持移动端适配,无需安装任何客户端。
长篇组织困难
传统引擎痛点:超过 50 个场景后,线性列表无法体现剧情结构,找不到"第三章的分支B在哪里"。DreamChord 方案:章节 → 场景 → 镜头卡三级结构,每章独立画布,顶部中文数字标签切换(第一章、第二章…)。章节可折叠,场景树支持搜索。长文导入功能可自动将粘贴的小说正文按"角色:台词"格式拆分为镜头卡。
素材管理割裂
传统引擎痛点:角色立绘、背景图、音乐文件散落在各处,白底图片还需要切换外部软件处理。DreamChord 方案:项目素材库直接连接镜头卡目标,上传图片可在内置工作室去白底、羽化、裁边并生成规范尺寸;衍生图先审查再绑定,原图始终保留。
Comparison

与传统引擎横向对比

DreamChord 不是替代 Ren'Py 的下一代引擎,而是面向另一群人——想写视觉小说但不想学代码的创作者。下表从 8 个维度对比三类工具的核心差异。

能力维度 Ren'Py TyranoBuilder DreamChord
写作方式
用户如何编辑剧情
手写 .rpy 脚本 可视化节点连线 镜头卡填表式写作
编程门槛
是否需要写代码
需学 Python + Ren'Py 语法 低,但节点图仍需理解 零代码,纯填写
实时预览
编辑时是否即时看到效果
需重新编译运行 部分预览 右栏实时所见即所得
分支可视化
全局查看分支结构
无,全靠记忆 节点图视图 流程图 + 汇合点高亮
AI 辅助
内置 AI 写作功能
项目感知 Agent + 审批写入
运行环境
读者如何游玩
打包 exe / apk 分发 打包为 Web 或 exe 浏览器直接打开链接
长文导入
从小说文本快速拆分
无,手动逐句转写 粘贴正文自动拆分镜头卡
项目体检
自动检测剧情结构问题
12 项健康检查
Interface

核心工作流真实界面展示

以下均为当前版本的实际浏览器验收截图。从故事编辑、Agent 协作到图片处理和备份恢复,每一步都保留预览、确认与回滚边界。

localhost:5173/editor
镜头卡编辑器界面
01 / Editor

镜头卡编辑器

章节、场景和镜头卡构成主写作路径。编辑器内置 50 步撤销/重做、串行自动保存、版本冲突保护和未保存离开提醒;右侧可在实时预览、素材库与快速 Agent 之间切换。

  • 章节 → 场景 → 镜头卡三级结构,顶部中文数字标签切换
  • 6 种镜头卡类型:对话、旁白、心理、回忆、系统、选项
  • 右栏实时预览,所见即所得——每改一个字立刻更新
  • 长文导入先生成章节/场景/镜头预览,确认后才写入图谱
  • 选项无去向时显示琥珀色警告徽章 + 汇总提示条
  • 支持紧凑视图,适合长篇剧情的快速浏览
localhost:5173/editor → 剧情流程图
剧情流程图真实桌面界面
02 / Flowchart

剧情流程图

当剧情复杂到需要全局视角时,切换到剧情流程图视图。这是 galgame 风格的全局可视化——所有场景以卡片形式排列,按章节分行。普通场景间用实线箭头连接,选项分支用虚线箭头并标注选项文本。汇合场景(接收多条不同场景入边)自动检测并以紫色高亮 + GitMerge 图标标识。支持滚轮缩放、拖拽平移、拖拽场景卡片调整位置、拖拽创建场景间连接。

  • 实线=普通连接,虚线=选项分支,标注选项原文
  • 汇合场景紫色高亮 + GitMerge 徽章,一眼识别收束点
  • 选项节点粉色边框 + 分支数量标识
  • 拖拽场景卡片调整位置,拖拽创建场景间连接
  • 底部小地图缩略图导航,支持搜索场景代码或标题
localhost:5173/agent
DreamChord Agent 多对话工作区真实桌面界面
03 / Creative Agent

多对话创作 Agent

每个对话可以处理不同任务:续写当前场景、修补分支、检查人物动机、把正文转换为工作台场景或准备图片素材。Agent 会读取对话历史、滚动摘要、故事圣经、章节图和分层记忆,先计划并调用受限工具,再提交结构化补丁供作者预览、应用、拒绝或撤销。没有 API Key 时仍可完成项目检索、确定性草稿与正文转换。

  • 新建、搜索、重命名、置顶和删除独立对话
  • 设定、人物、剧情、决策、偏好、产物六层记忆
  • 读取上下文、搜索记忆、检查图谱、查询角色与素材
  • 导入正文时过滤草稿说明,分别生成场景、旁白、角色台词和选项卡
  • 模型不能直接写数据库,所有变更先成为可审查提案
  • 应用前校验,应用后保留快照并支持版本安全撤销
  • 支持 GLM、DeepSeek、Kimi 和 OpenAI 兼容接口
localhost:5173/agent → 本地 Agent
DreamChord Agent 无 API Key 下回答创作问题并使用项目上下文的真实桌面界面
04 / Zero-Config Agent

先能沟通,再决定是否调用模型

Agent 不是把每句话都丢给模型。请求先经过本地路由:项目问题读取章节、角色、素材、剧情健康和当前记忆;蒙太奇、伏笔、节奏等创作术语由内置知识库解释;“X 是什么”类事实问题才调用严格白名单的中文 Wikipedia 只读接口。网络或模型不可用时,仍能给出项目相关回答,将已有正文清洗并转换为可审核的场景、旁白、台词和选项。

  • 无 API Key 也能概括项目、列章节、回顾对话和读取记忆
  • 内置视觉小说创作知识,解释概念并给出编辑器操作建议
  • 公共知识查询只发送问题关键词,不发送项目和密钥
  • 本地续写与用户正文可转为结构化镜头卡;模型说明文字不会混入故事
  • 复杂任务仍进入模型、工具、校验、审批和撤销链路
localhost:5173/assets
素材处理工作室
05 / Assets

素材库与图片处理

上传图片后,服务端会先解码验证真实格式、尺寸与像素规模。处理工作室可去除白底、羽化边缘、裁掉透明边缘,并按立绘、CG、背景三种用途生成规范尺寸;衍生图先进入待确认状态,原图始终保留。

  • 角色立绘 + 表情差分(normal / smile / serious)
  • 背景图库:樱花坡道、教室、咖啡馆、星空
  • 戏剧冲突粉色高亮,快速定位角色核心矛盾
  • 立绘差分底部选择器,一键切换调用
  • 立绘输出 1024×1536 透明 PNG
  • CG / 背景输出 1920×1080 WebP
  • 衍生图支持接受、绑定角色表情或拒绝删除
localhost:5173
首页项目工作区
06 / Gallery

项目首页与备份恢复

首页集中管理故事项目、发布状态和创作入口。项目可导出为版本化 DreamChord 备份,再通过严格校验和 ID 重映射恢复为新项目;移动端导航收敛为可访问菜单,不再挤压品牌和页面内容。

  • 一键发布到作品广场,生成可分享链接
  • 项目卡片显示发布状态、场景数、节点数
  • 新建故事 / 打开素材库 / 试玩演示三入口
  • 浏览器直接运行,无需安装客户端
  • 项目备份导出 / 导入,源项目保持不变
  • 移动端首页、编辑器、Agent 与播放器响应式适配
Characters

五位角色组成官方演示世界观

内置雪、影、宫、空和系统幽灵的 Meta 引导短剧,展示背景切换、角色登场退场、表情差分变化和分支选择。每个角色拥有独立的性格设定、故事弧线和戏剧冲突,可直接在编辑器中调用。

雪
Yuki
文学少女,温柔知性,紫色系,手持书册
影
Ren
沉默寡言,神秘冷静,灰色系
宫
Miya
活泼开朗,粉色系,温暖治愈
空
Sora
好奇心旺盛,青色系,天真烂漫
系统幽灵
系统幽灵
Ghost
Meta 叙事元素,引导用户操作
Scenes

四种镜头类型呈现真实故事场景

使用项目内置的 4 张背景图和 4 位角色立绘,展示对话、选项分支、旁白和系统提示在播放器中的实际渲染效果。每张场景卡包含背景图、角色立绘、文本框和(如有)选项按钮。

雪
dialogue · 角色对话
樱花又开了呢……和那年一样,你也在。
宫
choice · 选项分支
那么,你来选吧——
A. 相信宫的话
B. 去找雪确认
空
narration · 旁白
星空之下,空仰望着银河。那些闪烁的光点,仿佛是无数未曾写下的故事。
系统幽灵
system · 系统提示
系统幽灵
检测到空白节点。空白不是结束——是尚未开始的可能性。
Editor

六种镜头卡覆盖全部叙事场景

每张镜头卡编译为背景节点、角色节点和文本节点,系统自动生成连线。选项卡额外生成 choice-N 出边连接到分支场景。用户只需选择镜头类型、填写内容,无需关心底层节点结构。

💬
角色对话
角色之间的台词交流,支持表情差分(normal/smile/serious)和站位设置(左/中/右)
→ dialogue 节点
📖
旁白
场景描述、时间流逝、环境变化等叙述文字,不绑定角色
→ subtitle 节点
💭
心理描写
角色内心独白,保持角色身份(role 不变)但不显示立绘
→ dialogue 节点 (role 保持)
🌟
回忆镜头
闪回片段,过去事件的视觉化呈现,独立于当前场景
→ subtitle 节点
系统提示
系统幽灵发出的提示信息,Meta 叙事元素,引导用户操作
→ subtitle 节点 (role=ghost)
🔀
选项分支
多选项分支点,每个选项通过 choice-N 出边连接到独立场景
→ choice 节点 (choice-N 出边)
Workflow

从写作到播放的完整链路

用户的写作方式直接映射为运行时节点图,系统自动完成全部转换——从镜头卡到节点到运行时场景到播放器渲染,五个环节全自动。

01

用户创建镜头卡

填写背景、选择角色、编写台词——像写小说一样,无需理解节点图

background → character → dialogue
02

系统自动生成节点和边

createSceneNodes 创建背景/角色/文本节点,chainEdges 连接节点链,normalEdge 连接场景间

nodes[] + edges[] → 节点图
03

转换器 DFS 遍历生成 RuntimeStory

convertFlowToRuntime 从起始节点深度优先遍历,追踪角色状态和背景变化,生成线性场景数组

nodes + edges → RuntimeStory.scenes[]
04

运行时引擎驱动播放器

createRuntimeEngine 管理场景推进 next()、分支选择 choose() 和事件触发 emit()

next() → choose() → emit()
05

播放器渲染视觉效果

打字机逐字效果、角色立绘淡入淡出、选项按钮渲染、Web Audio 音效播放

VisualNovelPlayer → 浏览器
Tech Stack

现代 Web 全栈技术架构

React 18 + TypeScript + Vite 前端,Express + Prisma + SQLite 后端,集成四家 LLM 供应商。Monorepo 架构,pnpm workspace 管理前后端共享依赖。

前端框架与 UI

现代化 SPA 架构,组件化开发,严格类型安全
React18 TypeScript5 Vite5 Tailwind CSS3 framer-motion11 lucide-react

节点图与状态管理

可视化节点编辑与单一数据源
@xyflow/react12 Zustand4 React Flow custom nodes DFS converter

后端服务

轻量级 RESTful API,文件数据库零配置启动
Express4 Prisma5 SQLite JWT + bcryptjs multer tsx

AI 集成

统一接口适配多家大模型供应商
智谱 GLM DeepSeek Kimi OpenAI 兼容 BaseOpenAICompatibleProvider

工程化与构建

Monorepo 管理,代码分割优化,严格类型约束
pnpm workspace Vite manualChunks strict TypeScript FeedbackProvider 类型安全访问器

运行时引擎

节点图到播放场景的自动转换管线
converter.ts runtime.ts sceneGraph.ts DFS 遍历 事件图执行器
Quick Start

三步启动项目

Windows 用户可直接双击一键启动脚本;手动开发使用 Node.js 20+ 与项目固定的 pnpm 9.1.0。默认测试账号 demo / demo123。

01

安装依赖

克隆仓库后安装前后端依赖(pnpm workspace 会自动处理共享依赖)

git clone https://github.com/tl66666/DreamChord.git cd DreamChord && pnpm install --frozen-lockfile
02

初始化数据库

补齐本地配置,校验并备份已有 SQLite,再同步表结构和演示数据

powershell -ExecutionPolicy Bypass -File .\start-dreamchord.ps1 -SetupOnly
03

启动开发服务器

双击 start-dreamchord.bat 一键启动,或在仓库根目录启动整个工作区

pnpm dev
FAQ

常见问题

关于使用方式、技术选型、素材规范和后续迭代的常见疑问。点击问题展开解答。

DreamChord 和 Ren'Py 有什么区别?我该选哪个?+
Ren'Py 是成熟的视觉小说引擎,适合愿意学习脚本语法的创作者,生态完善、社区活跃、可打包为桌面/移动应用。DreamChord 面向不想写代码的创作者——如果你有故事想法但不擅长编程,想快速在浏览器里搭一个可交互的视觉小说,选 DreamChord。两者不是替代关系,而是面向不同人群的工具。
项目需要安装数据库吗?+
不需要额外安装。后端使用 SQLite 文件数据库(dev.db),Prisma ORM 自动管理。一键启动器会先保留升级前快照,再同步表结构并初始化演示数据。整个数据库就是一个文件,不需要 MySQL / PostgreSQL 等独立数据库服务。
AI 功能是必须的吗?不配置 AI 能用吗?+
基础编辑、自动保存、剧情体检、素材处理、备份恢复和播放器都不依赖模型。未配置 API Key 时,Agent 仍能读取项目、章节、角色、素材、对话和记忆,解释创作方法,生成确定性续写草稿,并将用户或 Agent 正文转换为可审核的场景、旁白、台词和选项;“X 是什么”类问题可调用只读中文 Wikipedia 摘要接口。配置 GLM、DeepSeek、Kimi、OpenAI 或其他兼容接口后,才增强开放式长文生成、润色和复杂改写。无论是否配置模型,写入工作台都必须经过补丁预览与作者确认。
角色立绘为什么有白底?怎么处理?+
直接把图片上传到项目素材库并打开“处理图片”。立绘预设支持白底阈值、边缘羽化和透明边缘裁切,生成 1024×1536 透明 PNG;CG 和背景会生成 1920×1080 WebP。处理结果需要确认后才会绑定,原图始终保留。
新建场景后无法编辑背景、角色、台词怎么办?+
这通常是场景起始节点定位错误。系统通过"没有来自同场景入边的节点"来定位起始节点(findSceneStartNode 函数),而非按数组顺序查找。如果遇到此问题,检查场景中是否有多个无入边节点,或是否有跨场景的边误连。FlowEditor 和 ShotCardEditor 中的相关调用均已使用 findSceneStartNode() 替代旧的顺序查找逻辑。
选项分支不出现或跳转不正确?+
检查选项卡是否有未设置去向的琥珀色警告标识。每个选项需要通过"写这条分支"(自动创建新场景)或"跳转到已有场景"设置目标场景。另外,addCard 和 quickAppendDialogue 在场景尾节点已有出边时采用插入模式(断开旧出边 → 插入新节点 → 重新连接原目标),确保新节点不会孤立。
支持移动端播放吗?+
播放器支持移动端自适应。文本框铺满屏幕宽度,选项按钮底部弹出,触摸点击即可推进剧情和选择分支。编辑器由于三栏布局较为复杂,建议在桌面端使用。播放器支持快捷键(Enter/Space 推进、1/2/3 选择选项、H 查看历史、S 跳过、A 自动播放),在移动端通过触摸操作替代。
后续迭代计划是什么?+
已规划的方向包括:BGM 音乐管理系统(支持循环、淡入淡出、场景切换过渡)、语音合成集成(TTS 自动朗读台词)、多语言支持(i18n 国际化)、更丰富的动画效果(角色全身入场动画、屏幕震动、转场特效)、以及协作编辑功能。详细迭代建议参见 docs/AI_HANDOFF.md。
Roadmap

项目路线图

DreamChord 的过去、现在和未来。绿色为已完成,紫色为进行中,琥珀色为规划中。

已完成

核心编辑器 + 播放器

三栏布局编辑器、镜头卡写作、节点图转换、播放器打字机效果、角色立绘渲染、选项分支系统

已完成

章节管理 + 流程图

章节 → 场景 → 镜头卡三级结构、剧情流程图视图、汇合点紫色高亮、场景拖拽和连接线编辑

已完成

多对话创作 Agent

独立对话、分层记忆、工具调用、结构化补丁、差异预览、应用审批与版本安全撤销

已完成

长文导入 + 素材处理

稿件先预览再导入,图片解码校验、白底处理、规范尺寸衍生、接受/拒绝与角色表情绑定

已完成

可靠性 + 可移植交付

撤销重做、串行自动保存、冲突保护、项目备份恢复、移动端适配、一键启动与完整开发文档

规划中

BGM 音乐系统

背景音乐管理面板、循环播放、淡入淡出过渡、场景切换音乐衔接、音量控制

规划中

语音合成 + 动画增强

TTS 自动朗读台词、角色全身入场动画、屏幕震动效果、转场特效(淡入淡出、百叶窗、马赛克)

规划中

多语言 + 协作编辑

i18n 国际化支持、多人实时协作编辑、评论批注系统、版本历史回溯