你没有看错,AI编程助手不仅可以写代码,其强大的Agent能力也可以用于文学创作。写小说和写代码有许多相似之处,本质上都是生成文字段落。长篇小说和软件工程一样需要前期构思,中间反复推敲打磨,最终校阅定稿的过程;只是小说对于语法词法的精确性要求不高,但其复杂的情节和人物关系逻辑可不亚于软件工程。两者的评价规则也有所不同,比如说代码中相同或高度相似的语句可以认为是符合强一致性规范的最佳实践,而小说中雷同的文字则令人感到枯燥乏味。本文就将演示使用字节跳动的TRAE(或腾讯的CodeBuddy)创作一篇长达100万字(是5万)的全新的葫芦娃史诗级长篇巨作!(对不起腾讯,我的免费额度用完了)。在文末,我将把这个创作过程映射到我们真实的AI编程场景,也就是说用这种写小说的方式其实完全也可以用来写代码,这是我认为它很有意思的地方。这个创意并非我原创,由腾讯的余多老师在「AI研习社」系列讲解分享,有兴趣的朋友可以自行搜索。我在其基础上,以个人理解做了一些增减调整,并测试定制的多Agent协作。(再次对腾讯抱歉,接下来我用字节的产品开始开工。)
环境准备
首先环境准备下载腾讯的CodeBuddy copilot.tencent.com 或字节的TRAE www.trae.cn 安装并注册会员后才能使用。(安装步骤略)TRAE中可以设置代码审查,改为无需审查。这样AI生成的文本不需要人工逐一确认接受。
小说创作开始
规则定义
首先让TRAE打开一个空文件夹作为项目的工作空间。创建Rules(项目规则)。Rules中描述了本项目的基本背景,规定了AI如何按要求去进行小说创作。简单地说就是最高级别的系统提示词,AI每次干活时都会去打开这个Rules遵循其中的指令。Rules文件解释了项目的基本文件目录结构,具体小说的写法要如何找到并遵守SPEC(说明书)进行完成,其完整定义如下
- 本工程用于长篇小说创作,而非编程,不生成任何代码
- 本工程小说通过双层SPEC方法,由AI逐章节创作,SPEC文件夹中所有文件均为AI阅读,需设计完整但简洁而清晰明了
- 全部spec存放在./SPEC文件夹下,除非我直接要求,不要增加新的spec以及在spec内扩展新的内容种类
- spec分为Me2AI和AI2AI两层,分别置于./spec/Me2AI和.spec/AI2AI目录。Me2AI完全由我来维护,AI2AI完全由你来维护
- Me2AI中的文档是我对小说的写作要求。每写一个新的章节时,你需要完整阅读其中内容并遵循-./SPEC/Me2AI/故事整体设定.md-./SPEC/Me2AI/核心角色.md-./SPEC/Me2AI/写作风格.md
- AI2AI中的文档为你的创作架构和状态记录。当第一次开始创作时,先构思并初始化每一个文件。其后在开始创作每一章节时,先读取本目录全部内容了解故事的发展情况。并在完成一章写作后,更新这里的每一个文件内容。-./SPEC/AI2AI/章节目录一览.md: 记录所有章节标题及其故事大纲以及完成情况-./SPEC/AI2AI/故事主线设计和进展.md :记录每一章节创作完成后的剧情摘要汇总, 下一章提要和需要回收的伏笔。本章已回收的伏笔需要删除
- 每章写作完后,再进行一次文字校对与润色,对比AI2AI目录中的文件, 修正文字段落重复, 逻辑错误等问题
SPEC Me2AI
SPEC分为两类,Me2AI SPEC是人类向AI下达的基本指示,说明了小说内容的需求。创建以下3个指定的文件,然后输入小说的基本设定,读者也可自行更改。md文件格式不是必须的,只是让AI阅读起来结构层次更分明,使用普通txt文本也可以。
-
./SPEC/Me2AI/故事整体设定.md
-
./SPEC/Me2AI/核心角色.md
-
./SPEC/Me2AI/写作风格.md
我的故事整体设定内容如下图
核心角色节选,自由发挥即可。
写作风格节选,给定创作的约束限制。
SPEC AI2AI
第2类SPEC叫做AI2AI,用于AI工作中的信息记录和共享,相当于AI的长期记忆。我们可以创建如下两个空文件,具体内容AI会自动填充。如果你已经有完整的想法,也可以自行创作章节目录一览,让AI按照你的大纲写具体内容。
- ./SPEC/AI2AI/章节目录一览.md
- ./SPEC/AI2AI/故事主线设计和进展.md
开始运行
TRAE点击进入SOLO模式,聊天窗口中我们不要用Auto模型,手动选择模型GLM 4.7,看下全球大模型第一股智谱的表现。智能体保持默认的SOLO Coder即可(虽然他的定义是用来编程)。随后直接输入任务命令"开始创作第一章",可以看到SOLO Coder思考后按Rules和SPEC的要求,有条不紊地分步骤开始执行创作任务了。由于超长上下文窗口处理的瓶颈,实测建议每一章都开启新的任务(聊天窗口)创作,否则容易遇到并行创作混乱,内容大量重复等问题。为节省时间,本次测试限定创作20章内容,每章在2000-2500字。
错误示例
第一次测试时,睡觉前我想让他彻夜直接写完50章。结果就开始并行章节输出,AI可会偷懒了,最终效果造成内容大量重复和冲突。正确示例每次任务只创作一个章节
运行时可能会遇到排队问题,高峰期可能需要几分钟的耐心等待。
工作效果观察
每次创作完成后,进入代码变更页面,可以看到AI不仅创作了新的章节,还按要求更新了章节目录和故事进展,为下一章创作做好准备。
成果预览
进入编辑器,资源管理器中右击"打开预览"即可看到创作成果。虽说离完美还差很远,小毛小病不少,基本还是具有一定可读性的。至此,如果顺利,每章花费10分钟(包括等待时间)不到的时间,一篇完整的小说就完成了!接下来我们复盘一下遇到的问题。
TRAE工具问题
任务运行一整晚卡死,只能手工停止重新执行。工具迭代更新太快,有不少Bug。有部分情况,能检测到问题后与用户交互重启任务。也有直接报错。
大模型问题
经典的无限循环bug仍然存在,好在TRAE中自动检测到了该问题。
任务执行中随机会出现一些更新遗漏,可能影响后续章节创作,需要手动提示修正。
尽管采用了分批单任务执行,偶尔仍然存在语句重复跨章节来看,一些表述方式也及其雷同。比如清晨的阳光开头方式出现了7次。可能是长上下文中模型的注意力坍缩问题导致。
逻辑错误
灵儿这一角色未在Me2AI SPEC中明确定义她与葫芦娃的身份关系,导致一些逻辑混乱。
直到倒数第2章,BOSS的分身被净化后加入了葫芦娃。随后逻辑急转成八个葫芦娃出来了,需要手工拯救一下。好了,关于小说创作就分享到这里。下一章节,如果对软件开发编程没有兴趣的读者可以直接点赞收藏后离开了。
AI编程的启发应用
用AI写小说,这个例子不仅仅是好玩,其中的方法论也适用于AI编程。如果对应到软件开发,我们的Rules和SPEC可以对应到下表
| Rules | 介绍工程背景,定义团队工作流程规范 |
|---|---|
| Me2AI SPEC | 产品需求说明书PRD,开发规范约束 |
| AI2AI SPEC | AI员工摸索出的规则与工程理解 |
如下图:整体流程分工借鉴了人类开发团队的工作模式。技术管理者给到基本的Rules和产品需求规定,实际干活的AI在过程中也会总结出新的规则,给到其他AI参考,进行知识分享协同工作。
进阶功能
刚才的简单例子中我们让SOLO Coder一个人规划拆解任务干活,但实际的工程中可能更复杂,需要解决更多的问题。这就需要引入Multi-Agent,MCP和Skills了。那么假设我们为了解决之前例子中遇到的一些问题,可以在TRAE中创建2个自定义的Agent,让他们协同工作
-
玄幻小说家:专业人才,用于专门负责创作小说
-
小说校阅编辑:用于在小说家完工后对内容进行检查重复,世界观设定校准,润色语句等工作
在TRAE中可以使用简单描述来一键智能创建Agent。创建完成后,可以通过SOLO Coder智能调用它们,也可以在Rules中明确指明需要在什么时机调用哪个Agent。但目前TRAE的调用效果极不稳定,不是每次都能正确调用到所需的Agent。实际协作时的效果如下,由于时间限制,还没有用此方法进行完整创作。
总的来说,诸如TRAE一类的AI编程工具已经非常强大,但如果想要让它7 * 24小时无人值守地执行编码任务仍有一定差距,人工监控指导还少不了。