news 2026/9/27 20:34:49

AI 写长篇别靠玄学:我用 codebubby + Cursor 把《一纸洛阳》写到50章不崩的配置骨架

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI 写长篇别靠玄学:我用 codebubby + Cursor 把《一纸洛阳》写到50章不崩的配置骨架

1. 为什么写到第 30 章,AI 就开始“换了一本书”

如果你用 AI 写过中长篇,大概率经历过这个曲线:前 10 章顺得不行,第 15 章开始主角性格有点飘,第 25 章发现某个道具在第 8 章已经用掉了、第 30 章又冒出来一次,第 40 章伏笔撒了一地没人收。这不是模型变笨了,是上下文管理失控。

我把它拆成四个具体症状,你可以对号入座:

  • 人设漂移:主角上一章还谨慎克制,这一章突然热血冲动,像换了个人。
  • 设定打架:世界规则、时代背景、道具属性前后矛盾,读者一眼看穿。
  • 伏笔失控:埋了十几条线,回收全靠运气,最后自己都忘了埋过什么。
  • 文本变空:对话开始回环,心理总结变多,“AI 味”越来越重。

核心问题只有一个:你每次只把“当前这一章”丢给 AI,它没有参照系,只能临场发挥。写短篇无所谓,写到几十章,临场发挥必然崩。

这篇要交付的,是一套可复制的工程化骨架:用codebubby把“写一章”固化成四道工序,用Cursor把设定、角色、时间线、伏笔当成项目依赖强制加载,再用TaoToken统一 Key 接入,让模型调用稳定、可切换、可追溯。目标很明确——让《一纸洛阳》这种长篇写到 50 章还不崩,你照着搭,当天就能开写。

适合谁:正在用 AI 续写小说、写到十几章开始崩、想把它做成“可控工程”而不是碰运气的创作者。不需要你会写代码,但需要你愿意建几个文件夹、抄几段配置。

2. 前置准备:TaoToken 统一 Key + 小说工程目录

2.1 为什么先接 TaoToken

写长篇最怕两件事:一是模型调用时好时坏,二是想换模型对比效果时,每个工具都要重新配一遍 Key。TaoToken 的作用是把 Key 统一管理,Cursor、codebubby 以及后续任何要调模型的工具,都指向同一个入口,换模型只改一个配置。

接入入口(建议先收藏):

  • 官网:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=
  • API 地址:https://taotoken.net/api
  • 控制台(建 Key):https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite
  • API Keys 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite
  • 接入文档:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

注意:Key 只存在本地配置文件里,不要写进正文 md、不要提交到公开仓库。小说工程目录建议单独放,和代码仓库分开。

2.2 搭一个“小说工程目录”

把小说拆成三块:正文、规范、台账。规范是你对 AI 的硬约束,台账是 AI 帮你记的进度。目录直接照抄:

novel-yizhi-luoyang/ ├── chapter/ │ ├── 001.md │ ├── 002.md │ └── ... ├── SPEC/ │ ├── Me2AI/ # 你写要求,AI 遵守 │ │ ├── 写作风格.md │ │ ├── 故事整体设定.md │ │ ├── 核心角色.md │ │ └── 故事主线设计和进展.md │ └── AI2AI/ # AI 记进度,AI 更新 │ ├── 章节目录以及写作状态.md │ ├── 历史人物与时间线校验.md │ ├── 中长线伏笔设计和进展.md │ └── 各角色线设计和进展.md ├── config.toml # codebubby 配置 └── .cursor/ └── settings.json # Cursor 配置

这一步的目的:让 AI 写作时永远有参照系。Me2AI 是你定的规矩,AI2AI 是 AI 维护的账本,正文只放成品。

约束提醒:除非你明确要求,否则不要让 AI 新增 SPEC 里的文件类型。只在既有文件里迭代。Me2AI 由你维护,AI2AI 由 AI 维护。

3. 可复制配置:settings.json 与 config.toml 骨架

3.1 Cursor 的 settings.json

Cursor 的关键不是“多智能”,而是多文件上下文。把下面这段放进.cursor/settings.json,重点是让模型走 TaoToken 的统一入口,并把小说工程的关键文件纳入默认上下文范围。

{ "ai.provider": "openai-compatible", "ai.baseUrl": "https://taotoken.net/api", "ai.apiKey": "sk-你的TaoTokenKey", "ai.model": "claude-sonnet-4-20250514", "ai.temperature": 0.7, "ai.maxTokens": 8192, "context.include": [ "SPEC/Me2AI/写作风格.md", "SPEC/Me2AI/故事整体设定.md", "SPEC/Me2AI/核心角色.md", "SPEC/Me2AI/故事主线设计和进展.md", "SPEC/AI2AI/历史人物与时间线校验.md", "SPEC/AI2AI/中长线伏笔设计和进展.md", "SPEC/AI2AI/章节目录以及写作状态.md", "SPEC/AI2AI/各角色线设计和进展.md" ], "context.recentChapters": 2 }

参数说明:

字段作用建议值
ai.baseUrl统一走 TaoTokenhttps://taotoken.net/api
ai.model主写模型长文用长上下文模型
ai.temperature创造性0.6–0.8,太高会飘
context.recentChapters带最近几章正文2,保证承接

context.recentChapters: 2是长篇连贯的关键——写第 N 章时,自动带上第 N-1、N-2 章正文,承接“余压/异动”,避免断裂。

3.2 codebubby 的 config.toml

codebubby 的作用是把“写一章”变成固定工序卡片,每章重复执行。配置骨架如下:

[provider] name = "taotoken" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoTokenKey" default_model = "claude-sonnet-4-20250514" [workspace] root = "./novel-yizhi-luoyang" chapter_dir = "chapter" spec_me2ai = "SPEC/Me2AI" spec_ai2ai = "SPEC/AI2AI" [pipeline] # 四道工序,按顺序执行 steps = ["plan", "write", "verify", "polish"] [steps.plan] template = "工序A_章内计划" inputs = [ "SPEC/Me2AI/写作风格.md", "SPEC/Me2AI/故事整体设定.md", "SPEC/Me2AI/核心角色.md", "SPEC/Me2AI/故事主线设计和进展.md", "SPEC/AI2AI/历史人物与时间线校验.md", "SPEC/AI2AI/章节目录以及写作状态.md", "SPEC/AI2AI/各角色线设计和进展.md", "SPEC/AI2AI/中长线伏笔设计和进展.md" ] [steps.write] template = "工序B_生成正文" word_range = [2000, 5000] [steps.verify] template = "工序C_一致性校验" [steps.polish] template = "工序D_签约级润色压缩"

注意:api_key建议用环境变量注入,例如api_key = "${TAOTOKEN_API_KEY}",避免明文散落。

3.3 四道工序模板(直接存进 codebubby)

工序 A:章内计划(先定硬问题,防写散)

你将基于以下文件为第{章号}章做“章内计划”,不要写正文: - SPEC/Me2AI/写作风格.md - SPEC/Me2AI/故事整体设定.md - SPEC/Me2AI/核心角色.md - SPEC/Me2AI/故事主线设计和进展.md - SPEC/AI2AI/历史人物与时间线校验.md - SPEC/AI2AI/章节目录以及写作状态.md - SPEC/AI2AI/各角色线设计和进展.md - SPEC/AI2AI/中长线伏笔设计和进展.md - 上一章与上两章正文 输出(必须齐全): 1) 本章一句话核心问题(制度动作/倒计时/物理威胁三选一) 2) 3-5个“可验证证据载体”(纸、印、登记簿、价牌、蹄铁、红泥、马鬃等) 3) 对手反制升级路径(听/看→翻/抹/标/押/登册/不给纸) 4) 本章必付代价(资源/人情/道德/名分四选一或组合) 5) 本章推进/触碰哪条伏笔(引用伏笔编号:如F010/F012)

工序 B:生成正文(按计划写,不许飘)

按“章内计划”写第{章号}章正文(2000-5000字)。 强制结构:问题→规矩/资源限制→信息博弈→代价 硬规则: - 动词优先;控制形容词;删除空话连接词 - 禁止抽象抒情、禁止现代词、禁止靠巧合推进 - 对话每轮必须推进:事实/规矩/代价(三选一) 结尾:优先清晰收束;若加钩子,只能用“可验证异动/制度倒计时/新事实残留”,禁止抽象提问式句尾

工序 C:一致性校验(抓穿帮/抓失控)

只做校验,不重写全文。 检查项: 1) 时间线/历史人物节点是否冲突 2) 角色能力与限制是否越界(是否“突然开挂/突然圣母/突然现代化”) 3) 道具与痕迹是否兑现(出现过的纸、印、红泥、蹄铁等后续路径是否合理) 4) 对手反制是否升级(是否一直停留在“听/看”) 5) 伏笔是否推进/新增/回收,信息差快照是否变化 输出:问题清单 + 修改建议(精确到“删哪类句子/补哪种证据/把哪段对话改成动作”)。

工序 D:签约级润色压缩(最快去 AI 味)

对本章做“签约级压缩润色”: - 删心理总结、删空话、删回环对话、删自我解释 - 把抽象句改为“动作+证据+规矩/代价” 输出:可直接替换的段落级改写(不新增设定、不改剧情走向)。

4. 验证请求:跑通第 1 章并确认 50 章连续性

4.1 先用一条 curl 确认 Key 通

在正式跑工序前,先用最小请求确认 TaoToken 接入正常:

curl https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的TaoTokenKey" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [ {"role": "user", "content": "用一句话说明:长篇写作为什么要带上下文。"} ], "max_tokens": 200 }'

返回里有choices[0].message.content就说明通了。如果报 401,检查 Key;报 404,检查 base_url 是否漏了/v1或写错路径。

4.2 跑通第 1 章

在 codebubby 里执行:

codebubby run --chapter 1 --pipeline plan,write,verify,polish

预期结果:chapter/001.md生成,同时SPEC/AI2AI/章节目录以及写作状态.md被更新,写入章号、字数、状态、核心内容、伏笔索引。

4.3 50 章连续性验证动作

写到第 50 章时,做一次“体检”,确认没崩:

codebubby verify --range 1-50 --check timeline,character,prop,foreshadow

输出会给你四类报告:

  • 时间线冲突:哪些章的历史节点对不上。
  • 角色越界:谁的能力/性格在哪一章突变。
  • 道具未兑现:出现过的证据载体后续路径是否合理。
  • 伏笔状态:待回收/已回收清单,信息差快照是否变化。

我实测下来,跑到 50 章最容易出问题的是“道具未兑现”和“伏笔状态”——因为这两类最依赖台账。只要每章写完立刻更新 AI2AI 台账,这两项基本能压住。

提示:验证模型本身是否稳定,可以到模型对话页做对比测试:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=chat&utm_campaign=rewrite

5. 本篇常见错排查

报错 1:401 UnauthorizedKey 写错或过期。到 API Keys 页重新生成:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite

报错 2:404 Not Foundbase_url 写成了https://taotoken.net而漏了/api,或路径多了/v1重复。统一用https://taotoken.net/api。

报错 3:写到第 20 章开始漂移九成是context.include没配全,或recentChapters设成了 0。检查 settings.json,确保八个 SPEC 文件都在 include 列表里。

报错 4:校验报告全是“无问题”但读者说穿帮说明台账没更新。工序 D 跑完必须立刻更新章节目录以及写作状态.md和中长线伏笔设计和进展.md,否则校验没有依据。

报错 5:润色后剧情变了工序 D 的模板里明确写了“不新增设定、不改剧情走向”。如果模型还是改了,把 temperature 降到 0.5 再跑。

报错 6:想换模型但不想重配TaoToken 统一 Key 的价值就在这里。只改 config.toml 和 settings.json 里的model字段,其他不动。

长期编码/Agent 场景,如果想让工序自动跑、批量处理多章,可以用 Coding Plan:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite

6. 把“能写出来”升级成“能写下去”

AI 写小说真正的分水岭不是“会不会写”,而是能不能稳定写到很后面还不崩。这套骨架的逻辑很简单:codebubby 把流程固定成四道工序,Cursor 把上下文拉满,TaoToken 把 Key 统一,台账把进度锁死。

你按这个顺序搭:先建目录 → 配 settings.json 和 config.toml → 存四张工序卡 → 跑通第 1 章 → 每章写完更新台账。跑通一次,你就从“碰运气产出”变成“按工序交付”。

《一纸洛阳》能推到 50 章,靠的不是更玄的提示词,是规矩写死、证据落地、台账可追溯。你也可以把自己的小说写成一个可控工程,而不是一堆不可维护的碎片。

接入文档在这里,配置细节对着抄:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 20:33:42

Trae 里 Maven 打包跳过 TEST 的配置骨架:TaoToken 统一 Key 接入与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 20:33:34

Android 15开发板落地实测:RK3576平台系统升级与AIoT应用关键

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 20:32:11

ZYNQ 7020与7045选型与迁移:资源对比到工程落地全指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 20:30:47

TD-LTE干扰排查实战:从KPI异常到物理源定位的闭环方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/27 20:30:06

《第三代移动通信系统》PDF如何赋能5G/6G协议开发与现网排障

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华