ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何让 AI 帮你写小说教程:用 skills 与 CLI 插件搭一套可复用的创作流水线

如何让 AI 帮你写小说教程:用 skills 与 CLI 插件搭一套可复用的创作流水线 1. 从「AI 写小说」到可复用流水线为什么单靠聊天窗口不够很多人第一次用 AI 写小说都是打开一个对话框丢一句「帮我写个玄幻开篇」然后看着它吐出一段还算通顺、但越读越像模板的文字。问题不在于模型不行而在于没有把创作拆成可复用的步骤。长篇小说动辄几十万字人物、世界观、伏笔、章节节奏都要前后咬合靠一次次临时对话等于每章都从零开始设定漂移、人设崩塌几乎是必然。我试过最笨的办法把设定文档手动粘进每次对话。结果上下文一长模型就开始遗忘写到第五章主角名字都能换一个。后来才想明白真正缺的不是更强的模型而是一套把 skills、CLI 插件和 opencode 串起来的创作流水线——让设定、大纲、章节草稿各自有固定的输入输出让 AI 每次都在同一套规则下工作。这套流水线适合谁适合已经在用 AI 辅助写作、但被「设定记不住、风格不稳定、字数难统计」折磨的写作者也适合想把创作流程工程化的技术型作者。核心检索词就三个AI 写小说、skills 配置、opencode 插件。下面我会从零搭一套能稳定复现的流程包含可复制的 skills 片段、CLI 调用示例、插件挂载步骤最后跑一次从人物设定到章节初稿的完整验证。先说清楚整体结构。这套流水线分三层最底层是skills用 Markdown 定义创作规则和评价体系相当于给 AI 一本「写作手册」中间层是opencode 插件负责在 AI 写入文字后实时统计字数、分类字符相当于一个「写作仪表盘」最上层是CLI 调用把设定、大纲、草稿、审查串成命令让你一条命令推进一个阶段。三层各司其职缺一层都会让流程变得脆弱。为什么强调「可复用」因为写作最怕状态丢失。你今天调好的语气、定好的人物关系明天再开对话就没了。把规则写进 skills 文件把统计交给插件把流程固化成 CLI 命令你每次只需要关心「这一章要写什么」而不是「怎么让 AI 记住上一章」。这才是流水线的意义。2. TaoToken 前置准备把模型接入和 Key 管理先理顺在搭 skills 和插件之前得先解决一个现实问题模型从哪来、Key 怎么管。如果你直接用官方接口网络和计费经常让人头疼如果到处散落 Key换工具时又要重新配一遍。我的做法是统一走一个兼容 OpenAI 协议的接入层把 Base URL 和 Key 集中管理这样 opencode、CLI 脚本、插件都能复用同一套配置。TaoToken 在这里扮演的就是这个接入层角色。它的 API 地址是https://taotoken.net/api兼容常见的 OpenAI 调用格式所以你不需要改代码逻辑只要把 Base URL 指过去、填上自己的 Key 就行。对写小说这种长上下文、多轮调用的场景来说统一入口的好处是换模型只改一个 Model ID不用动 skills 和插件。先拿 Key。打开控制台页面登录后进入 API Keys 管理新建一个 Key 并复制保存。注意 Key 只在创建时完整显示一次丢了就得重建。控制台地址是https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsoleAPI Keys 页面是https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi-keys。拿到 Key 之后建议先做一次最小验证确认接入层通了再去折腾 skills。验证方式很简单用 curl 发一个 chat completions 请求即可。这一步能帮你排除掉 90% 的「后面插件报错其实是 Key 没配对」的问题。curl https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -d { model: claude-sonnet-4-20250514, messages: [ {role: user, content: 用一句话描述一个雨夜里的旧书店} ] }把$TAOTOKEN_API_KEY换成你刚复制的 Key。如果返回里有choices字段和一段描述文字说明接入层没问题。如果返回 401先检查 Key 有没有多余空格如果返回连接错误检查 Base URL 是不是写成了https://taotoken.net/api注意结尾不要多加/v1具体路径在请求里补。模型选择上写小说建议用长上下文、中文表达自然的模型。你可以在模型对话页面先试几轮感受不同模型在叙事上的差异再决定主力模型。模型对话入口是https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel-chat。如果你打算长期跑编码类或 Agent 类任务也可以了解下 Coding Plan入口是https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding-plan。这一步做完你手里应该有三样东西一个可用的 Base URL、一个有效的 Key、一个确定的主力 Model ID。这三样是后面所有配置的基础先记下来别急着往下走。3. 可复制配置skills 目录、opencode 插件与 settings 片段这一节是整篇的核心我会给出可以直接复制的配置。先讲 skills 的目录结构再讲 opencode 插件的两种挂载方式最后给出统一的 settings 片段把 Base URL、Key、Model ID 三件套写进去。3.1 skills 目录结构与 skill.md 片段skills 的本质是一堆 Markdown 文件放在约定的 skills 目录下AI 工具会自动扫描并加载。我的做法是每个技能一个子目录里面放skill.md不写脚本只写规则和评价体系。这样跨工具通用opencode、其他 agents 工具都能读。目录长这样skills/ └── novel-skills/ ├── skill.md ├── male-oriented.md ├── female-oriented.md └── evaluation.mdskill.md是入口负责声明这个技能是干什么的、什么时候触发。下面是一段可复制的片段你可以直接拿去改--- name: novel-skills description: 长篇小说创作技能覆盖设定、大纲、章节草稿与多维审查 trigger: 当用户提到写小说、设计人物、续写章节、审查内容时启用 --- # 小说创作技能 ## 使用流程 1. 先确认题材方向男频/女频加载对应子技能 2. 设计人物设定与世界观写入数据库 3. 生成分卷大纲再拆到章节 4. 逐章生成草稿每章完成后调用审查机制 5. 审查通过后归档更新人物状态 ## 数据库要求 - 人物、地点、伏笔必须落库禁止只存在对话上下文里 - 每次续写前先读取数据库确认当前状态evaluation.md放评价体系这是我觉得比题材更重要的部分。市面上很多 skills 只给题材模板不给评价标准结果 AI 写出来的东西没人把关。我设计了 9 个维度的审查机制覆盖人物一致性、情节推进、对话自然度、节奏、伏笔回收、语言风格、逻辑自洽、情感张力、可读性。片段如下# 九维审查机制 对每一章草稿按以下维度打分1-5并给出修改建议 1. 人物一致性言行是否符合已设定性格 2. 情节推进本章是否推动主线有无注水 3. 对话自然度是否像真人说话有无说明文腔 4. 节奏控制张弛是否合理有无拖沓 5. 伏笔回收前文伏笔是否被合理使用 6. 语言风格是否统一有无突然跳脱 7. 逻辑自洽设定与行为有无矛盾 8. 情感张力读者能否被带入 9. 可读性段落长度、信息密度是否友好把这两个文件放进skills/novel-skills/下skills 部分就完成了。注意我这里是skill.md直接在技能根目录没有脚本只有 Markdown 和 SQL 文件这样最省事。3.2 opencode 插件挂载项目级与全局两种方式插件负责在 AI 写入文字后统计字符。我用的字符统计插件会拦截 write 工具返回中文、英文、数字、标点、空格各自的统计。挂载有两种方式。第一种是安装到项目目录。在项目根目录下建plugins/文件夹把插件放进去opencode 启动时会自动加载。适合只想在单个小说项目里用的情况。第二种是用 opencode 的 Install plugins 功能。在 opencode 里触发安装命令回车确认然后按 Tab 切换到全局模式输入插件名jialanhu/character-counter等待下载完成。这一步需要网络能访问插件源如果连不上换一个镜像源再试。全局模式装完后所有项目都能用。两种方式选一种即可。项目级更干净全局级更省事。装完后可以用opencode --version确认版本新版1.14.19会把小说技能解析成三个 skills因为内部划分了男频和女频。3.3 统一 settings 片段Base URL Key Model ID最后把三件套写进配置。opencode 的配置一般放在项目根目录或全局配置目录格式是 JSON。下面是一段可复制的片段路径按你的实际安装位置调整{ provider: { taotoken: { baseURL: https://taotoken.net/api, apiKey: sk-你的Key, model: claude-sonnet-4-20250514 } }, plugins: [ jialanhu/character-counter ], skillsDir: ./skills }如果你用的是 Codex 类工具配置写在auth.json里结构类似把 Base URL、Key、Model ID 对应填进去即可。Cline MCP 场景下则是在 MCP 配置里指定 provider同样三件套不能少。无论哪种工具只要出现 Base URL、Key、Model ID 这三项就说明接入配置完整了。配置写完重启 opencode让它重新加载 skills 和插件。到这里前置配置全部完成可以进入验证阶段。4. 验证请求从人物设定到章节初稿跑一遍配置对不对跑一遍就知道。这一节我带你走一次完整流程设计人物设定、生成大纲、写一章草稿、触发审查、看插件统计。每一步都有可复制的操作。4.1 触发 skills 并设计人物设定打开 opencode按CtrlP输入skills回车在列表里找到小说技能并确认。新版会解析出男频、女频、审查三个子技能。选男频或女频然后开始对话。第一句提示词很关键要明确让 AI 用数据库。比如使用小说技能帮我设计一个都市异能题材的男主角。 要求姓名、年龄、性格、能力、弱点、核心动机、与三个配角的关系。 所有设定写入数据库后续章节要能读取。如果 AI 回复里包含结构化的设定表并且提到已写入数据库说明 skills 和数据库功能都生效了。如果它只是泛泛而谈没有落库动作就在下一句里再强调一次「请把上述设定写入数据库并确认」。4.2 生成大纲与章节草稿设定确认后让它生成分卷大纲再拆到章节。提示词基于已入库的人物设定生成第一卷大纲共 10 章。 每章给出章节标题、核心事件、出场人物、埋下的伏笔。 确认后写入数据库。大纲出来后挑第一章让它写草稿写第一章草稿目标 2500 字。 要求开篇 300 字内出现主角对话占比不低于 30%结尾留钩子。 写完后调用九维审查机制自评。这一步会消耗较多 token因为要读数据库、写正文、再自评。模型能力强的续写会顺一些能力弱的可能出现前后不一致。建议一次性明确要写多少章别频繁续写续写容易出问题。4.3 看插件统计与审查结果草稿写完后插件会拦截 write 工具返回字符统计。你会看到类似「中文 2100 字英文 30 词数字 15 个标点 180 个空格 90 个」的输出。这个统计对写作者很实用能立刻知道这章够不够字数、对话和叙述的比例大概如何。同时审查机制会给出九维打分。如果某一维低于 3 分比如「对话自然度 2 分」就让它针对这一维重写相关段落。审查通过后再归档更新人物状态到数据库。整个流程跑通后你就有了一个可复现的模板下次写新章节只要重复「读库 → 写草稿 → 审查 → 归档」这四步风格和设定都能保持一致。5. 本篇常见错排查401、local proxy failed 与 choices 报错配置和验证过程中最容易卡在几个报错上。这一节按真实报错逐个排查帮你快速定位。401 Unauthorized。这是最常见的。原因通常是 Key 没填对、Key 过期、或者 Base URL 和 Key 不匹配。排查顺序先确认settings.json里的apiKey没有多余空格和换行再用第 2 节的 curl 命令单独测一次如果 curl 也 401说明 Key 本身有问题去控制台重新生成如果 curl 通了但 opencode 报 401说明是配置文件没被正确加载检查配置路径和 JSON 格式。local proxy failed / connection refused。这类报错说明请求根本没发出去通常是 Base URL 写错或本地网络配置问题。检查baseURL是不是https://taotoken.net/api注意不要写成https://taotoken.net/api/v1又在请求里重复加/v1。另外确认没有在本地配了额外的转发规则导致请求被拦。如果用了代理类工具先关掉再测。reading choices 报错 / choices 字段为空。这通常发生在返回体解析阶段说明请求发出去了但响应格式不对。可能是 Model ID 写错导致服务端返回了错误结构也可能是请求里messages格式不对。先确认 Model ID 是有效的再用 curl 看原始返回如果返回里有error字段按错误信息处理如果返回正常但插件解析失败检查插件版本是否和 opencode 版本匹配。OAuth 相关报错。如果你用的是需要 OAuth 的工具比如某些 Claude Code 场景报错可能出现在授权环节。这类情况要确认授权回调地址和工具配置一致别混用 API Key 和 OAuth 两种认证方式。Claude Code 接入时Base URL、Key、Model ID 三件套要写全缺一个都会在授权后报错。插件装了但没统计输出。先确认插件在plugins数组里且 opencode 重启过。再确认 AI 确实调用了 write 工具如果只是对话没写文件插件不会触发。最后看插件版本旧版可能不兼容新版 opencode。排查的核心思路是先分层再定位。接入层问题用 curl 测配置层问题看 JSON插件层问题看版本和触发条件。别一上来就改 skills大多数报错跟 skills 无关。6. 把流水线用起来从单章验证到长期创作跑通一次验证之后接下来就是把它变成日常。我的习惯是每个小说项目单独一个目录里面放skills/、plugins/、settings.json和manuscript/。每次开写先让 AI 读数据库确认状态再写草稿写完审查审查过了归档。这套动作重复几次就成肌肉记忆了。如果你想让流程更稳可以准备一份固定的提示词模板把「读库、写草稿、审查、归档」四步写进去每次只改章节号和目标字数。这样即使换模型流程也不变。需要提醒的是这套流水线会消耗不少 token尤其是读库加自评的环节。具体多消耗多少我没精确测过但长上下文模型按 token 计费写长篇要有心理准备。建议先短篇试跑摸清消耗再上长篇。工具入口再放一次方便你按需取用接入文档在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdocAPI Keys 在https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi-keys模型对话在https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel-chat。Claude Code 相关接入参考https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentclaude-code。最后说个我踩过的坑别指望一次配置就完美。skills 的规则要按你的题材慢慢调评价维度也可以增减。插件统计只是参考真正决定质量的还是你对审查结果的判断。流水线的作用是让你把精力放在「判断」上而不是「重复劳动」上。把设定落库、把规则写进 skills、把统计交给插件剩下的就是坐下来一章一章写下去。
返回列表