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/に保存されます。 - Docker –
ghcr.io/voocel/ainovel-cli:latestをpullし、設定ファイルとワークスペースディレクトリをマウントします。TUIを使うには-itを、ヘッドレス実行には直接実行します。
設定
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ツールで、決定論的エンジンを用いて3つのLLMエージェント(Architect、Writer、Editor)とArbiterを統合し、長編小説(500章以上)を自動的に下書き、レビュー、磨き上げます。チェックポイント復旧、階層的コンテキスト要約、マルチモデル対応、Dockerイメージ、豊富な設定を備え、コードを書かずに利用可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト