← 回到舞台
StoryWeave“不会忘记设定”的故事创作引擎
全部作品

图版 II · StoryWeave · 2026

骨白颜料 · 自上而下的手稿光

让 AI 建议以小范围、可逐条审阅的改动出现,并且不碰作者锁定的要素。

AI 写作 / 作者主导 / 最小编辑

案例摘要

公司
公司名称因合同条款匿名
团队规模
1–10 人
我的角色
负责编辑交互工作流与建议比对管线。
技术栈
Electron / React / TipTap / TypeScript
问题
整段重写和模糊替换,会打乱长篇作者预先铺设的伏笔、节奏和人物设定。
用户
长期连载的签约作者,覆盖悬疑、科幻与奇幻题材。
关键决定
默认只给最小编辑;触碰锁定要素的建议直接丢弃;一键全部采纳保留,但触发前先弹出提示。
结果
最小编辑改动受保护要素 2/30,整段重写为 7/30;加入确认提示后,一键采纳的撤销率从 22% 降到 11.5%。

一个决定

为什么“撤销”比“生成”更重要

我们保留了一键“全部采纳”,只在它前面加了一句提示。上线后两周,这个按钮的撤销率从 22% 降到 11.5%(11/96)。调用量没有下降:两周触发 96 次,约为此前每两周平均 71 次的 135%。

部分内测作者想要这个按钮,研发也觉得逐条点击太费力。回头看,可选的有三条路:去掉“全部采纳”,只留逐条采纳;照作者的要求直接上线;保留按钮,在执行前用一句话说清它要改哪些地方。第一条保护了稿子,却把作者的诉求挡在门外;第二条换来速度,把几分钟后的修复留给作者自己。

改变判断的数字来自撤销。6 周内测、11 位活跃作者:一键全部采纳触发 214 次,10 分钟内被撤销 47 次,撤销率 22%;逐处单项采纳触发 930 次,撤销 118 次,撤销率 12.7%。用户测试里也有相近的现象:64 处建议里,有 11 处采纳后又被作者手工改过。作者早已把建议当作可以拆开的草稿。

前置提示让每次批量采纳多停一步,研发对此提出异议。我们在上线前先写好撤回红线:上线两周后,如果一键采纳的调用量下降超过 50%,就撤掉提示。先约定红线,争论就回到数据上,这份代价也看得见、撤得掉。

AI 往别人的作品里写东西时,先数清对方撤回了多少。生成次数奖励产量,撤销次数暴露信任在哪里断开。点明高风险改动的一句提示(这里指人名和数字),只多读一句,省下一轮返工。

  1. 编辑器里的修改建议
  2. 一键“全部采纳”
  3. 提示:“即将修改 12 处文本,其中 3 处涉及人名或数字要素。”
    • 取消:回到逐条审阅
  4. 改动生效
    • 10 分钟内撤销:加提示前 214 次中 47 次,加提示后 96 次中 11 次
提示在改动落地之前,点明有风险的几处。

系统如何分工

  1. 01草稿与锁定要素
  2. 02局部修改建议
  3. 03受保护要素过滤
  4. 04作者逐条采纳、拆分或拒绝

触碰锁定人名或物件的建议在展示前丢弃,每一处改动由作者决定。

品牌卡 · 图版 II

StoryWeave

稿子始终归作者:建议像页边批注一样出现。

作品标记:影片里这件物体的笔画,缩成一枚

色彩

  • 象牙黑 #0E0D0C页面
  • 骨白 #EDE6D8作者的正文
  • 灰 5 #8E887F尚未采纳的建议
  • 灰 7 #B9B2A6锁定的要素,下面有一道细线

字体

  • Newsreader英文稿件与标题
  • Noto Serif SC中文稿件
  • Geist编辑器控件

动效

  • 写600 ms建议沿所在的那一行从左往右写入
  • 光240 ms建议靠近锁定词时,锁定词亮起

问题与背景

StoryWeave 属于桌面端长篇叙事创作工作台,技术栈采用 Electron、React、TipTap 与 TypeScript。模型整段重写或模糊替换时,很容易打乱作者先前铺设的东西:伏笔、节奏、人物的说话方式。我负责编辑交互,以及把模型输出变成可比对建议的管线。

用户验证:聊天窗口对比编辑器内建议

三位长期连载的签约作者(悬疑、科幻、奇幻)拿同一篇 2,000 字的未完结章节,各做两处情节微调,两种方式各做一次:

  • 方式 A:常规聊天窗口,人工往返复制粘贴;
  • 方式 B:StoryWeave 编辑器内的局部 diff 建议工作台。

1 位作者先做 A 后做 B,另外 2 位先做 B 后做 A,用来对冲熟练度带来的顺序效应。记录指标:操作耗时、剪贴板交互次数、作者主导感自评(1–7 分)。

原始记录节选,作者 P3(已出版两部悬疑小说,先做 B 后做 A):

  • 14:06 选中段落,输入“加剧对话悬疑感,保留怀表道具与’第三扇门’台词”。系统返回 11 处局部修改建议。
  • 14:08 逐条核对,采纳第 1、2 处,在第 3 处停下:“‘他的心脏猛地一沉’——不要这个,属于流水线网文词藻,我笔下的主角不会产生这类心理反应。“点击拒绝。
  • 14:10 第 6 处建议把“怀表”换成“手表”。作者皱眉:“我在提示词明确要求保留怀表。“点击拒绝,并回头重新检查已经采纳的段落。此后每处修改的停留审视时间延长一倍。
  • 14:14 第 9 处只采纳一部分:删去建议里添加的修饰短语,保留调整后的语序。“语序重排符合预期节奏,但填充的词汇破坏了语境。”
  • 14:19 方式 B 完成,耗时 13 分钟,慢于随后方式 A 的 9 分钟。“A 方式用时短,因为对话窗口返回整段文字过长,我没有逐句核对就全段替换,后续重写草稿仍需投入时间。”
指标 方式 A(聊天窗口) 方式 B(StoryWeave)
完成用时 3 人中 2 人用方式 A 更快 3 人中 2 人用方式 B 更慢(P3:13 分钟对比 9 分钟)
方式 B 更快的人数 — 1/3(较慢的 2 人都属于先做 B 组)
剪贴板复制粘贴次数(中位数) 5 次 0 次
主导感评分(中位数,1–7 分) 4 分 6 分

方式 B 共生成 64 处修改建议:直接采纳 29 处,采纳后手工二次微调 11 处,拒绝 24 处。作者往往认可建议的句子结构,却排斥模型选用的具体词汇。

测试结论:用 StoryWeave 更慢,多花的时间换来零次复制粘贴和更高的主导感(中位数 6 分对 4 分)。逐人用时没有留存,因此不报告用时中位数。

三项发现改变了产品:

  • 违背作者要求改动锁定要素,会让作者不再信任后续所有建议(3/3 受试者遇到;P3 随即大幅放慢审阅速度)。现在触碰锁定词的建议在展示前直接丢弃。
  • 作者经常只想采纳一部分(64 处建议中 11 处采纳后再次手改)。单处差异现在支持“仅采纳语序”和“仅采纳删减”。
  • 模型输出容易带入网文模板词或翻译腔(3/3 受试者当场提出)。这一项纳入了下面的离线评测。

评测:整段重写对比最小编辑

为了确定默认的建议生成策略,我用 3 位作者授权的 30 篇真实手稿段落做测试集,每段预先标注不可改动的元素:人名、关键线索物件、时间节点。

评测指标 整段重写 最小编辑(指定输出局部差异)
改动超出原选中范围 4/30 0/30
改动受保护元素 7/30 2/30
修改幅度(改动字数 / 原文字数,中位数) 0.41 0.18
作者盲测偏好(不告知生成策略) 9 段胜出 17 段胜出(另有 4 段持平)

17 胜 9 负的符号检验双侧 p 值约为 0.17,偏好差异未达到统计学差异界限。能成立的结论更窄:最小编辑破坏预设要素的概率更低,不能据此断言作者都更偏好最小编辑。最小编辑下的 2 次违规,都把锁定元素换成了近义词,例如把“怀表”换成“表”。现在建议渲染前先做字符串精确匹配过滤,不把约束寄托于模型自觉。

团队决策:一键“全部采纳”按钮

部分内测作者要求提供一键全部采纳,工程团队也认为逐条点击太耗精力。6 周内测、11 位活跃作者的数据:一键全部采纳累计触发 214 次,其中 47 次在 10 分钟内被撤销,撤销率 22%;逐处单项采纳累计触发 930 次,撤销 118 次,撤销率 12.7%。

我们保留了按钮,在触发前加一条提示:“即将修改 12 处文本,其中 3 处涉及人名或数字要素。“研发同事质疑这会增加阻碍,我们便事先约定撤回红线:上线两周后,如果一键采纳的调用量下降超过 50%,就撤掉这条提示。

上线后两周,一键采纳触发 96 次,约为此前 6 周平均每两周 71 次的 135%。调用量没有下降,未触碰撤回红线;撤销率由 22% 下降至 11.5%(11/96)。

局限

样本量只有 3 位专业作者;2 位先用方式 B 的受试者处于交互摸索期,方式 B 的用时可能偏长。主导感属于主观打分,可能受新界面尝鲜心态影响。

复盘

如果重来,我会从一开始就逐人记录任务用时,这样用时对比才能如实报告。我也会在第一次用户测试之前就上线受保护要素过滤:一次“怀表”被替换,就足以让 P3 回头复查所有已经采纳的建议。

沿着证据理解设计

60 秒宣传片