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.writerroles.architect 等),允许为分段使用廉价模型,为创作使用昂贵模型。
  • 风格预设(defaultsuspensefantasyromance)。
  • 自定义规则文件(rules/*.md),用于抑制“AI 口吻”或强制作者特定偏好,无需修改代码。

导入 / 导出

  • 导入/import <file>) – 导入现有小说,使用 LLM 进行分段、提取事实、构建新基础,然后继续写作。
  • 导出/export) – 将完成的章节写入纯文本 .txt.epub 文件,剥离内部元数据。

诊断 /diag 生成一份 Markdown 报告,涵盖工作流健康度、质量评分、规划状态和上下文一致性。报告也会匿名化保存为 meta/diag-export.md,便于提交 bug。

适合谁使用

  • 希望拥有“合作者”来生成大规模草稿并保持长期剧情一致性的作者。
  • 需要大量背景设定或任务叙事的游戏设计师。
  • 探索多代理 LLM 协调与决定性流水线的研究人员。

局限性

  • 系统依赖外部 LLM API;成本和速率限制取决于所选提供商。
  • 质量仍取决于提示词和底层模型;内置编辑器只能标记问题,无法保证文学价值。
  • 目前专注于中文生成(令牌估算逻辑提及 CJK),但架构本身语言无关。

TL;DRainovel-cli 是一个基于 Go 的 CLI/TUI 工具,运行一个决定性引擎,协调三个 LLM 代理(Architect、Writer、Editor)和一个 Arbiter,自动起草、审查和润色长篇小说(500+ 章)。支持检查点恢复、分层上下文摘要、多模型支持、Docker 镜像和丰富配置,无需编写代码即可使用。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目