voocel/ainovel-cli
✨多agent实现全自动AI小说生成
ainovel-cli – 自动化长篇小说创作引擎
是什么 – ainovel-cli 是一个命令行(可选 TUI)应用程序,通过协调多个 LLM 代理(Architect、Writer、Editor)来自动编写完整小说,无需人工干预。它结合了一个决定论的“引擎”,决定 做什么,以及三个自主代理(Architect、Writer、Editor)实际生成文本,还包含一个轻量级 Arbiter,用于偶尔进行语义决策。
核心理念
- 决定论控制流 – 引擎读取 JSON 格式的存储,遵循静态路由表并分派工作器。控制逻辑不使用任何 LLM 调用,使流程完全可重现且可测试。
- 三个创意代理
- Architect – 构建书籍的标题、前提、大纲、角色表和世界规则。
- Writer – 每章运行固定流水线:加载上下文 → 读取前一章 → 规划章节 → 起草 → 一致性检查 → 提交。
- Editor – 从七个质量维度(一致性、节奏、伏笔、钩子、美学质量等)审查已完成的章节,并可触发重写或润色。
- Arbiter – 单次调用的 LLM 函数,决定使用哪个规划器、如何处理用户注入的编辑,或如何摆脱死胡同。其决策会被记录并可重放。
- 滚动窗口规划 – 仅预先规划前两个“卷”和第一个“弧”。随着故事推进,Architect 使用摘要和角色快照扩展下一个弧/卷,避免了长篇作品中“一次性计划全部”的问题。
- 500+ 章节的上下文管理 – 采用分层摘要(章节 → 弧 → 卷)加上智能推荐系统,基于伏笔、角色出场、状态变化和关系,自动拉取相关早期章节。
- 检查点与恢复 – 每个工具完成后,都会写入检查点。崩溃后可精确恢复到计划/起草/检查/提交的任意步骤,不会丢失进度。
- 交互式与无头模式 – 基于 curses 的 TUI 允许用户实时观察并注入编辑;
--headless标志可在服务器、CI 流水线或 NAS 设备上无监督运行。 - 多模型支持 – 支持 OpenRouter、Anthropic、Gemini、OpenAI、Ollama、Bedrock 等。可通过配置文件的
roles部分为不同代理分配不同提供商/模型。
工作原理(高层次流程)
用户提示 → Arbiter 选择 Architect → Architect 创建骨架与首个弧 →
Writer 迭代编写章节 → Editor 审查每个弧 →
如需,Writer 重写 / Editor 润色 →
当一个弧结束,Architect 扩展下一个弧 → 重复直至书籍完成
所有状态(阶段、流程、草稿、摘要、检查点)均存储在 output/novel/ 下的简单文件系统存储中。
安装
# macOS / Linux 一键安装(无需 Go)
curl -fsSL https://raw.githubusercontent.com/voocel/ainovel-cli/main/scripts/install.sh | sh
# 或通过 Go 安装
go install github.com/voocel/ainovel-cli/cmd/ainovel-cli@latest
安装程序在提取二进制文件前会验证 SHA-256 清单。Windows 用户可下载预构建版本。
典型用法
- 交互式 – 运行
ainovel-cli,按屏幕向导选择提供商、输入 API 密钥,并输入一句话的故事构思。 - 无头模式 – 适合长时间运行:
日志输出至ainovel-cli --headless --prompt "写一本东方玄幻长篇,主角从边陲小城起步"logs/headless.log;生成的小说位于output/novel/。 - Docker – 拉取
ghcr.io/voocel/ainovel-cli:latest并挂载配置和工作目录。使用-it启动 TUI,或直接无头运行。
配置
JSONC 文件(~/.ainovel/config.json 或 ./.ainovel/config.json)中存储:
- 提供商选择与 API 凭据。
- 模型列表,可选每模型的上下文窗口大小。
- 默认推理努力级别(
off/low/medium/high/xhigh/max)。 - 角色特定覆盖(
roles.writer、roles.architect等),允许为分段使用廉价模型,为创作使用昂贵模型。 - 风格预设(
default、suspense、fantasy、romance)。 - 自定义规则文件(
rules/*.md),用于抑制“AI 口吻”或强制作者特定偏好,无需修改代码。
导入 / 导出
- 导入(
/import <file>) – 导入现有小说,使用 LLM 进行分段、提取事实、构建新基础,然后继续写作。 - 导出(
/export) – 将完成的章节写入纯文本.txt或.epub文件,剥离内部元数据。
诊断
/diag 生成一份 Markdown 报告,涵盖工作流健康度、质量评分、规划状态和上下文一致性。报告也会匿名化保存为 meta/diag-export.md,便于提交 bug。
适合谁使用
- 希望拥有“合作者”来生成大规模草稿并保持长期剧情一致性的作者。
- 需要大量背景设定或任务叙事的游戏设计师。
- 探索多代理 LLM 协调与决定性流水线的研究人员。
局限性
- 系统依赖外部 LLM API;成本和速率限制取决于所选提供商。
- 质量仍取决于提示词和底层模型;内置编辑器只能标记问题,无法保证文学价值。
- 目前专注于中文生成(令牌估算逻辑提及 CJK),但架构本身语言无关。
TL;DR – ainovel-cli 是一个基于 Go 的 CLI/TUI 工具,运行一个决定性引擎,协调三个 LLM 代理(Architect、Writer、Editor)和一个 Arbiter,自动起草、审查和润色长篇小说(500+ 章)。支持检查点恢复、分层上下文摘要、多模型支持、Docker 镜像和丰富配置,无需编写代码即可使用。
相关
- 项目
- 项目
- 项目
- 项目
- 项目