前一段时间刷抖音的时候刷到一个视频,说有人用AI写了部小说还去投稿了。我去找了找类似的工具,发现github上有一个叫webnovel的skill。

我之前读过Claude Code的skill官方文档,知道这个机制,但从来没真正用过。看到这个工具,两个念头同时冒出来:一是想知道skill到底怎么用,二是想看看它的"解决长篇上下文问题"是不是真的。

找skill、装上、init。

init阶段会逐步问你5个问题:题材、主角、金手指、核心冲突、章节数。我没怎么认真想,随手定了个梗——花1块钱哄美女开心能赚10倍。反正我的目的不是写出一部好小说,是把这个流程跑通。

然后它就开始写了。


skill是什么,文件长什么样

在说跑通了什么之前,先说说skill本身。

skill本质是一个SKILL.md文件,放在项目的特定目录下。文件头部有几个关键字段:name、description、allowed-tools。name和description是触发层,Claude Code根据这两个字段判断什么时候该调用这个skill;allowed-tools定义了这个skill能用哪些工具,比如Read、Write、Bash、Task等。

webnovel不是一个skill,是一套。一共8个子skill:init、plan、write、resume、review、query、dashboard、learn,每个负责不同阶段,通过共享的状态文件互相传递信息。

图片

你可以理解成:skill是给Claude Code装了一套有记忆、有流程、有分工的工作系统,而不只是一段提示词。


触发比我想象的简单

装好之后,我以为需要用他的name触发,实际上不需要(当然也可以用name进行触发)。只要当前目录是这个项目目录,说"继续写下一章"就能触发webnovel-write,Claude Code自己判断该用哪个skill。

触发之后是分级加载。webnovel-write定义了L0到L2三个加载等级:进入步骤之前什么都不加载,每个步骤只加载该步骤必读的文件,满足特定条件才加载扩展参考。

这个设计的目的是避免一次性把大量无关内容塞给模型,让每个步骤只获取真正需要的上下文。


写一章背后实际跑了什么

这是我觉得最值得说的部分。

webnovel-write写一章有6个Step,顺序执行,不能并步不能跳步:

Step 1是Context Agent,读取大纲、人物关系、前几章摘要,生成一个"写作执行包",包含本章目标、不可变事实清单、禁止事项,这是后续步骤的输入。

Step 2A是正文起草,默认2000-2500字。

Step 2B是风格适配,只调整表达方式,不改剧情事实。

Step 3是审查,必须用子代理执行,主流程不能自己审查自己,结果要落库,没有落库不能进入下一步。

Step 4是润色,按审查结果修复问题。

Step 5是Data Agent,把本章的实体、摘要、状态写回各个文件,包括向量索引,供后续章节使用。

Step 6是git提交。

每个Step都有bash命令,一章跑下来会弹几十次确认框。我坐在旁边盯着,感觉像在监工。后来发现可以启动时加--dangerously-skip-permissions跳过,但这个参数会跳过所有权限检查,本地测试可以用,生产环境慎重。


上下文问题解决了吗

这是我最开始想验证的问题。

webnovel的做法是把关键信息外化成结构化文件:总纲、章节大纲、人物关系、每章摘要、向量索引。每次写新章节前,Context Agent显式读取这些文件,不依赖模型记住前几章写了什么。

跑到第8章,前后一致性没有明显问题。这个机制是有效的。

这个skill还内置了一个dashboard,可以打开一个实时面板,展示当前写到哪章、各章评分、人物状态这些,不用自己去翻文件。

面板大概长这样:

图片

图片

速度和一些真实的数字

一章大概20-30分钟,消耗的token单章目前看应该是百万级的。我的目标是50章,写完大概要十几到二十个小时的机器时间。

目前写到第8章,小说内容我简单看过,整体通顺,人物没有明显前后矛盾。至于好不好看,我没有认真评估,也不是这次的目标。


我从这件事里真正想搞清楚的

写小说只是测试用例。

skill机制真正让我感兴趣的是:你可以把任何复杂的多步骤任务定义成一套skill,让Claude Code按流程执行,而不是每次靠对话临时组织步骤。代码review、文档生成、内容产出,凡是有固定流程的重复任务都可以这么做。


目前的进展是怎么样的

已经在番茄小说上上传了,名字叫《穷鬼的逆袭图鉴》。当前已经跑上了,等下一篇文章会详细拆解一下这个webnovel的skill具体实现,以及在claude code里面的运行逻辑。

Logo

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

更多推荐