# 网页写作工作流:从创作决定到正文,再接着写 在 ZenStory 里,一轮工作应留下**你能判断是否采用的结果,以及下一轮从哪里继续**。这个结果可以是一场、一章或已约定的完整短篇,不必切成固定字数的小段。先说明目标、依据、允许改变的事和停止位置,比“自动写好整本书”更便于把握创作方向。 这是 [ZenStory 在线工作台](https://app.zenstory.ai/dashboard)的作者操作指南,不是内置的强制三阶段流水线,也没有实测的节省时间比例。第一次建项目,可先按[快速入门](https://zenstory.ai/docs/getting-started/quick-start)操作;想控制第一条请求,可以不填写灵感,创建后再讨论。 ## 1. 先选本轮交付,不把讨论、写稿和改文件混在一起 | 当前情况 | 可以要求什么 | 怎样判断本轮结束 | | --- | --- | --- | | 动机或情节方向还没定 | 少量真正不同的方案与取舍 | 关键选择能由作者作出,备选未变成既定事实 | | 方向明确,依据已保存 | 指定场景或完整章节的草稿 | 写到约定的局面变化,未越界续写下一章 | | 某一段人物或因果写偏 | 原句、依据和局部替换 | 改到问题处,保留未要求改变的事实 | | 一轮写作已经结束 | 已完成、待决定和下一步 | 记录的是实际保存结果,不是刚才的计划 | 如果整章的目标、人物选择和结尾已确定,可以一次请求整章,不必为遵守某个教程强行拆成四次。若阻塞的是“人物为什么这么做”,先解决这个决定;多拆几个提示词并不能替代它。篇幅是创作目标,不是完整度或质量保证。 ## 2. 给本轮足够的依据,不是把所有文件都打开 项目里可以分别保存设定、人物、提纲、正文和参考素材。标题写得可辨认,文件类型按用途选择;并不要求先填满所有角色的年龄、外貌和口头禅,才允许写第一场。 | 内容 | 用法 | | --- | --- | | 已确认人物与设定 | 留在对应文件,本轮点名需要读取的部分 | | 大纲或场景计划 | 记录目标、阻力、选择、出口状态;待定问题单列 | | 正文或剧本 | 保存真正采用的叙事文字,别把审稿意见混入其中 | | 参考素材 | 选与本轮有关且有权使用的条目,按支持的入口附加 | | AI 记忆 | 用四个项目字段记录简短背景、风格、实际进度和待定事项 | **AI 记忆不是文件树里的必备 `AI记忆.md`。** 创建同名文件不会自动把它绑定成四字段记忆,具体填写见 [AI 记忆指南](https://zenstory.ai/docs/advanced/ai-memory)。 发送前保存刚改过的重要文件,打开目标正文,点名要读的提纲与人物资料,必要时引用关键句。焦点文件、附件和检索都有作用,但后台多开几个文件不保证它们都被完整提供给 AI;上下文仍有预算。也不要假定每类文件都有素材条目的同款附件按钮。操作细节见 [AI 创作助手](https://zenstory.ai/docs/user-guide/ai-assistant)。 ## 3. 原创接续练习:把“第2场怎么写”变成明确任务 以下沿用[第一篇短篇教程](https://zenstory.ai/docs/getting-started/first-project)的《关窗之前》,**不是模型运行记录**。假设第1场已经保存:沈敏说错包内袋的物件;包仍在林禾负责的失物招领窗口,没有交付;林禾不知道报错原因。作者尚未决定沈敏与失主的关系和包的最终归属。 ### 先决定这场推进哪个问题 一种路线继续追问报错物件的原因;另一种路线转向“沈敏凭什么认领”,本场仍不揭露报错原因。它们改变的是情节推进方向,不只是把“紧张一点”换个说法。若尚未选定,可先请求: ```text 先读第1场和《三场景提纲》,比较两种第2场路线: 一条推进报错原因,一条推进认领依据。 各写这场新增什么信息、人物需要作什么选择、结尾仍留下什么问题。 只在对话中给方案;不写正文,不更新人物、提纲或 AI 记忆。 ``` 已有明确方向,就不必重新发散。本练习选择第二条,并**另行提出下面的新设计供作者接受**;它们不是第1场已有事实,也不是教程预装的项目内容: | 新的写作决定 | 性质与边界 | | --- | --- | | 包底有一块蓝色补丁 | 为本练习新增的物件设定 | | 沈敏先说出补丁特征,林禾再独自核对 | 本场拟写行动;不能先把包底展示给沈敏,再把她说对当作独立信息 | | 场末沈敏说“包不是我的” | 选定的对白落点,不等于报错原因、真实关系已获证实 | | 包仍留在窗口;不安排失主到场 | 本轮采用的出口边界,不替全篇决定最终归属 | 这组设计把“说得出细节”和“有权认领”分开。补丁对得上,仍不能自动推出沈敏是失主、说谎者或获授权的代领人。这里是虚构故事的创作选择,不是现实失物认领程序。 ### 接受后,再让正文落实决定 将采用的新设计明确补入《三场景提纲》和相关设定,保留“第2场待写”的进度。创建或选定正文类型的目标文件《第2场 核对》,再给出写作任务: ```text 先读取《林禾》《沈敏》《三场景提纲》和第1场已保存正文。 目标是正文文件《第2场 核对》;同名文件不唯一时先列候选,不猜。 沿用已接受的蓝色补丁设计:沈敏未先看包底就说出特征, 林禾核对后追问认领依据,场末沈敏说“包不是我的”。 用林禾有限视角写出这场,约600—900个中文字。 包不交付,不解释报错原因,不新增失主到场或人物内心真相。 写到这句对白的落点停止,不接写第3场。 把采用的草稿写入上述目标文件,不另建同名副本; 不改第1场、人物动机或最终归属。缺少关键依据时先指出缺项。 ``` 这是明确允许写目标文件的请求。如果你只想先看候选,把最后一段换成“只在对话中给稿,不改文件或记忆”,再手动采用。这样的边界是任务要求,不是强制只读权限;Agent 的文件操作不保证都有逐项批准界面。 ## 4. 改问题句,不让局部修订重选整个故事 读稿时先找本轮约定有没有落实:人物知道了什么、包在哪里、哪句对白已经说出。然后再判断节奏与语言,不必每一轮同时重审所有维度。 **假设试写出现:** > 补丁描述对上了,林禾终于知道沈敏有权把包领走。 问题不是“不够生动”,而是把熟悉一个细节升级成认领资格。一个可讨论的局部替换是: > 补丁对得上,内袋里那件报错的物品却还没有解释。林禾没有把包递出去。 这只是原创替换示例,不是已经应用到项目的修改。它保住“描述吻合”和“未交包”,没有决定沈敏的真实身份。引用实际问题段落,说明只改这个推断,保留已经接受的对白与场末状态;不要顺手把第1场的错误描述改成正确,来消除故事原本保留的问题。 具体引用、差异操作和保存状态见[编辑器指南](https://zenstory.ai/docs/user-guide/editor)。若你决定改人物身份或结局,那是另一轮剧情修订,应明确受影响的提纲、人物与正文,不假定它们会自动同步。 ## 5. 保存、版本和导出分别解决什么问题? - **保存正文**:把当前文字写入文件。查看保存状态;自动保存不等于任何断网、冲突或关闭操作都不会丢失未保存输入。AI 正在改同一文件时,不要同时覆盖它。 - **历史版本或项目快照**:用于比较与恢复,受创建条件和版本额度约束。可能出现正文保存成功、但没有新快照的情况。不要把它宣传成永久保存每次编辑;只需要取回一句时,不要直接回滚整个项目。见[版本历史](https://zenstory.ai/docs/user-guide/version-history)。 - **稿件 TXT**:合并未删除的正文 `draft` 与剧本 `script`,包含标题和正文,顺序参考章节/分集序号与排序信息,不是只按创建时间。它不包含完整人物、素材、聊天、记忆和历史。需要独立保留的资料另外留副本,详见[稿件导出](https://zenstory.ai/docs/user-guide/export)。 这几种操作不能互相替代,也不建立“永不丢失”的保证。本文不要求为了试恢复而删除文件或回滚现有项目。 ## 6. 给下一轮留下真实入口 只有实际正文已经包含约定内容、并确认保存后,才把计划改写成“已完成”。以下卡片假设本练习的第2场确实按上述范围完成;否则按实际结果填写,不照抄: ```text 已完成:第2场《核对》已保存。蓝色补丁已核对; 沈敏说过“包不是我的”;包仍在窗口,没有交付。 尚未决定:她与失主的关系、报错原因、最终归属。 下一轮:讨论第3场怎样回应认领依据的问题,先不写正文。 依据:当前版人物文件、《三场景提纲》与第1、2场正文。 不做:不把沈敏的一句话直接当成已验证的身份结论,不重复写一次核对。 ``` 如果只有聊天草稿,写“候选已给出、尚未入稿”;如果中断后只保存了一部分,就写具体停止处。开始新会话或按停止按钮都不是撤销已发生的文件修改,恢复时先读现稿再续写缺口。 ## 7. 长篇与短篇怎样调整这套方法? **长篇连载**:保留远期方向,但只把足以支撑当前写作的决定展开到细纲;确有必要时可以先规划更远的伏笔。没有“每次必须规划10—20章”的固定批量。新反馈改变方向时,先区分已写事实和未来计划,再决定修订范围。 **完整短篇**:如果已经明确核心问题、人物选择与结尾,可以请求整篇草稿;如果只确定了一个开场,先补影响结尾的决定。并不要求固定六天、固定字数或每句都反复润色。 无论采用哪种节奏,都让一轮工作留下可用正文或已选择的创作决定,而不是只有更多备选和更长的聊天。相关工作台能力的边界,以各专项指南和实际保存结果为准。 ## 实现依据 源码核对于 2026-09-13。下列固定版本支持上下文、保存、工具与导出边界;原创流程不是已执行的模型案例,也不证明效率提升或成稿质量。 - [请求中的焦点文件、附件与引用](https://github.com/zenstory-ai/zenstory/blob/306059d9418dbdd6612d67574816ad960f58e51c/apps/web/src/components/ChatPanel.tsx#L1151-L1177) - [从显式输入与检索组装上下文](https://github.com/zenstory-ai/zenstory/blob/306059d9418dbdd6612d67574816ad960f58e51c/apps/server/agent/context/assembler.py#L149-L203) - [普通保存与版本创建条件](https://github.com/zenstory-ai/zenstory/blob/306059d9418dbdd6612d67574816ad960f58e51c/apps/web/src/components/SimpleEditor.tsx#L509-L554) - [未生成新版本不等于正文保存失败](https://github.com/zenstory-ai/zenstory/blob/306059d9418dbdd6612d67574816ad960f58e51c/apps/server/api/files.py#L900-L960) - [导出文件类型与排序](https://github.com/zenstory-ai/zenstory/blob/306059d9418dbdd6612d67574816ad960f58e51c/apps/server/services/features/export_service.py#L110-L143) - [TXT 包含标题与正文](https://github.com/zenstory-ai/zenstory/blob/306059d9418dbdd6612d67574816ad960f58e51c/apps/server/services/features/export_service.py#L197-L203) - [Agent 文件操作执行路径](https://github.com/zenstory-ai/zenstory/blob/306059d9418dbdd6612d67574816ad960f58e51c/apps/server/agent/tools/file_ops/router.py#L86-L119)