聊着天就把章节写了
主 Agent 直接读写工作区、维护知识图谱、做语义检索,不需要你在几个面板之间来回搬运。
Excerpt
上面那段是逐字落笔的过程。这里是另一本书里已经写完、过审、交付的成稿。
他回头看了一眼那台P3主机——机箱贴着桌腿,风扇嗡嗡地响,像一台永远不会停的老式呼吸机。
他没有走过去。他拉开门,走了出去。
走廊里的声控灯随着他的脚步亮了。他走下楼梯,一楼办公区空无一人,但所有机器的指示灯都在亮,红色、绿色、黄色,像一片沉默的星海。
他走到门口,推开门。九月的夜风灌进来,带着荒地的泥土味。
他站在门口,没有动。他只是站着,让风把衬衫吹得贴在背上。
远处,工地的塔吊红灯还在闪。一闪,一闪。
他不需要确认什么还在。他只需要确认,明天早上,所有人还会在这里。
《带着 Claude 回到 2000 年》· 第44章 完整版
Features
长篇创作从来不是单 Agent 任务。需求对齐、图谱维护、章节审核、创作建议——每一步对模型的要求都不一样。
主 Agent 直接读写工作区、维护知识图谱、做语义检索,不需要你在几个面板之间来回搬运。
章节落笔即送独立审核 Agent,不通过就定向改写再审,直到通过或用满三轮。
极短篇到长篇网文五档篇幅;鲁迅、张爱玲、海明威、古龙、江南——文风按需注入。
角色 → 模型 → 供应商三级映射,前端热切换。同一模型可挂多家供应商,失效自动降级。
网断了章节照写。重连时按序号从环形缓冲补发,你不会丢掉任何一段已经生成的正文。
整个对话的工作区可一键导出为目录树。自己部署时,稿子从头到尾没离开过你的机器。
Memory
记得五十章前的伏笔,说得清两个人为何反目,还能在二十万字里始终聚焦当下这一章。这三件事需要三种完全不同的存储。
LangGraph checkpoint
上下文逼近阈值时压缩旧轮次、保留当前轮,压缩点绝不切断工具调用与返回的配对。
SQLite
上一章原文到底怎么写的
——需要事务和精确查询的事实数据源。
ChromaDB
找一段氛围类似的描写
——正文切块与实体卡片的模糊召回。
FalkorDB
那份诏书现在在谁手上
——每个对话一张独立的图,人物关系实时维护。
Agent 一边写一边维护人物、组织、道具的节点与关系——投资、受雇、父女、挖角。写到第六十章时,这张图就是整部小说的骨架。
每个对话独立一张 FalkorDB graph,零隔离配置,docker compose up 一条命令跑起来。
原晨曦投资负责人,林建国的女儿,已全职加入 Search-X 任产品 VP 兼管行政人事。 第60章撰写 K 歌评分计划书,第61章完成 B 轮 BP。
…… 另有 18 条关系
实体属性按章节挂载:第66章_陪同签约、第67章_跨年短信。写下一章时 Agent 查一次实体就拿到完整背景,不必回翻前文。
连「她在第十四章就发现了 sx-monitor,但一直没说」这种埋着的线,图谱也替你记着。
Review Loop
主 Agent 落笔成章
独立上下文的审核 Agent,结论走结构化输出强校验
主 Agent 的平行分身,带全部创作记忆进场,但只能定点替换
改完重审,最多三轮
改写者是从主 Agent fork 出来的平行分身——记得你们聊过的一切,但整套写作工具被换掉了, 它只能对本章做定点替换,不能推倒重写。这样改出来的章节不会跑偏成另一个故事。
Benchmark
裸模型与完整系统,同一梗概、同一裁判、匿名对战。裁判只回答一个问题——这两篇里哪篇更好,从不给绝对分。逐维度两两比完,用 Bradley-Terry 折算成排行榜。
完整榜单生成中,近期发布claude-sonnet-5 当裁判,与被测模型不同家族,位置偏见更小。Quick Start
git clone https://github.com/GodweiLL/storyweaver && cd storyweaver docker compose up -d # 启动 FalkorDB uv sync --frozen --all-extras cp .env.example .env # 填 api_key 与鉴权配置 bash scripts/init_db.sh uv run storyweaver-web # 后端 127.0.0.1:8765 cd frontend && pnpm i && pnpm dev
已接入百炼(Kimi / GLM)、DeepSeek、硅基流动、OpenAI、Anthropic 五家供应商。
完整的鉴权与 .env 配置见 GitHub README。
Stack