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,便於提交錯誤。

適合誰使用

  • 希望擁有「共同作者」來生成大規模草稿並保持長期劇情一致性的作者。
  • 需要大量背景設定或任務敘事的遊戲設計師。
  • 探索多代理 LLM 協調與決定性流程的研究人員。

限制

  • 系統依賴外部 LLM API;成本與速率限制取決於所選提供者。
  • 質量仍取決於提示詞與底層模型;內建編輯器僅能標記問題,無法保證文學價值。
  • 目前專注於中文生成(令牌估算邏輯提及 CJK),但架構本身語言無關。

TL;DRainovel-cli 是一個基於 Go 的 CLI/TUI 工具,運行一個決定性引擎,協調三個 LLM 代理(Architect、Writer、Editor)與 Arbiter,自動起草、審查與潤色長篇小說(500+ 章)。支援檢查點恢復、分層上下文摘要、多模型支援、Docker 影像與豐富設定,無需撰寫程式碼即可使用。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案