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,便於提交錯誤。
適合誰使用
- 希望擁有「共同作者」來生成大規模草稿並保持長期劇情一致性的作者。
- 需要大量背景設定或任務敘事的遊戲設計師。
- 探索多代理 LLM 協調與決定性流程的研究人員。
限制
- 系統依賴外部 LLM API;成本與速率限制取決於所選提供者。
- 質量仍取決於提示詞與底層模型;內建編輯器僅能標記問題,無法保證文學價值。
- 目前專注於中文生成(令牌估算邏輯提及 CJK),但架構本身語言無關。
TL;DR – ainovel-cli 是一個基於 Go 的 CLI/TUI 工具,運行一個決定性引擎,協調三個 LLM 代理(Architect、Writer、Editor)與 Arbiter,自動起草、審查與潤色長篇小說(500+ 章)。支援檢查點恢復、分層上下文摘要、多模型支援、Docker 影像與豐富設定,無需撰寫程式碼即可使用。
相關
- 專案
- 專案
- 專案
- 專案
- 專案