voocel/ainovel-cli

✨多agent实现全自动AI小说生成

ainovel-cli – 自動化長編小説創作エンジン

何であるかainovel-cli は、人間の介入なしに完全な小説を生成するためのコマンドライン(およびオプションのTUI)アプリケーションです。決定論的な「エンジン」が 何をすべきか を決定し、実際にテキストを生成する3つの自律型エージェント(Architect、Writer、Editor)を統合するとともに、時折意味的な判断を行う軽量なArbiterを備えています。

主なアイデア

  • 決定論的な制御フロー – エンジンはJSON形式のストアを読み取り、静的ルーティングテーブルに従ってワーカーをディスパッチします。制御ロジックにはLLM呼び出しは一切使用しないため、プロセスは完全に再現可能かつテスト可能になります。
  • 3つのクリエイティブエージェント
    • Architect – 本のタイトル、あらすじ、アウトライン、キャラクターシート、世界観ルールを構築します。
    • Writer – 各章ごとに固定パイプラインを実行:コンテキスト読み込み → 前章の読込 → 章の計画 → 草稿作成 → 一貫性チェック → コミット。
    • Editor – 完成した章を7つの品質次元(一貫性、テンポ、伏線、引き込み、美意識など)でレビューし、再作成や磨きをトリガーできます。
  • Arbiter – 一度のLLM呼び出しで、どのプランナーを使用するか、ユーザーによる編集をどう扱うか、または行き詰まりから脱出するかを決定する関数です。その判断はログに記録され、再実行可能です。
  • ローリングウィンドウ計画 – 最初の2つの「ボリューム」と最初の「アーキ」のみを事前に計画します。物語が進むにつれて、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/ に保存されます。
  • Dockerghcr.io/voocel/ainovel-cli:latest をpullし、設定ファイルとワークスペースディレクトリをマウントします。TUIを使うには -it を、ヘッドレス実行には直接実行します。

設定 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ツールで、決定論的エンジンを用いて3つのLLMエージェント(Architect、Writer、Editor)とArbiterを統合し、長編小説(500章以上)を自動的に下書き、レビュー、磨き上げます。チェックポイント復旧、階層的コンテキスト要約、マルチモデル対応、Dockerイメージ、豊富な設定を備え、コードを書かずに利用可能です。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト