
CLI sáng tác tiểu thuyết AI đa agent — Bản tiếng Việt của voocel/ainovel-cli
CLI sáng tác tiểu thuyết AI đa agent — Bản tiếng Việt của voocel/ainovel-cli
Công cụ dòng lệnh (CLI) sáng tác tiểu thuyết dài kỳ tự động bằng AI với kiến trúc Đa Agent (Multi-Agent)
/config, /model) đến thông báo lỗi và phím tắt đều được dịch sang Tiếng Việt chuẩn mực, tự nhiên."language": "vi" hoặc "language": "zh" trong cấu hình.assets/voice.md) giúp hành văn sống động, gãy gọn, có chiều sâu, bài trừ các mẫu câu sáo rỗng của AI.Coordinator → Architect → Writer → Editor → Arbiter), Prompt Caching 3 tầng, quy hoạch cuộn 2 tầng (Rolling planning), điểm phục hồi step-level, và toàn bộ 14 lệnh slash commands.git clone https://github.com/kentjuno/ainovel-cli.git
cd ainovel-cli
# Tạo thư mục chứa cấu hình và thư mục chứa truyện
mkdir -p config workspace novelsdocker compose build(Nếu build từ source Go: go build -o ainovel-cli ./cmd/ainovel-cli)
docker compose run --rm ainovel(Nếu chạy từ file binary: ./ainovel-cli)
Lần đầu chạy, hệ thống sẽ tự động bật Setup Wizard tương tác bằng Tiếng Việt để bạn chọn Provider, nhập API Key/Base URL, chọn Model và Ngôn ngữ sáng tác.
Trong file cấu hình config/config.json, bạn có thể chỉ định trường "language":
"language": "vi" (Mặc định): Toàn bộ dàn ý, nhân vật, bối cảnh thế giới, quy chuẩn văn phong chống AI và nội dung từng chương sẽ được sinh ra bằng Tiếng Việt tự nhiên, mượt mà."language": "zh": Nội dung truyện được sinh ra bằng Tiếng Trung nguyên bản (phù hợp nếu bạn viết truyện Trung hoặc muốn dùng công cụ dịch sau).Ghi chú: Bảng điều khiển TUI, thanh trạng thái, menu và các thông báo lỗi luôn hiển thị 100% bằng Tiếng Việt.
File cấu hình đặt tại config/config.json:
@"
FROM qwen2.5:14b
PARAMETER num_ctx 65536
"@ | Out-File -FilePath "$env:TEMP\ainovel.Modelfile" -Encoding ascii
ollama create ainovel-qwen -f "$env:TEMP\ainovel.Modelfile"config/config.json:{
"language": "vi",
"provider": "ollama",
"model": "ainovel-qwen",
"providers": {
"ollama": {
"base_url": "http://host.docker.internal:11434/v1",
"stream_idle_timeout": "300s"
}
},
"context_window": 65536,
"thinking": "off",
"style": "default"
}⚠️ Lưu ý mạng Docker: Khi chạy bằng Docker, bắt buộc dùng
http://host.docker.internal:11434/v1. Nếu chạy binary trực tiếp trên máy không qua Docker, dùnghttp://localhost:11434/v1.
{
"language": "vi",
"provider": "openrouter",
"model": "anthropic/claude-3.5-sonnet",
"providers": {
"openrouter": {
"api_key": "sk-or-v1-YOUR_OPENROUTER_API_KEY"
}
},
"context_window": 128000,
"thinking": "off",
"style": "default"
}{
"language": "vi",
"provider": "gemini",
"model": "gemini-2.5-pro",
"providers": {
"gemini": {
"api_key": "YOUR_GEMINI_API_KEY"
}
},
"context_window": 1000000,
"style": "default"
}{
"language": "vi",
"provider": "deepseek",
"model": "deepseek-chat",
"providers": {
"deepseek": {
"api_key": "YOUR_DEEPSEEK_API_KEY"
}
},
"context_window": 64000,
"style": "default"
}Hệ thống cho phép gán model mạnh (Claude 3.5 Sonnet / DeepSeek Reasoner) làm Biên tập / Kiến trúc sư và model rẻ/nhanh (DeepSeek Chat / Ollama) làm Người viết:
{
"language": "vi",
"provider": "ollama",
"model": "ainovel-qwen",
"providers": {
"ollama": { "base_url": "http://host.docker.internal:11434/v1" },
"openrouter": { "api_key": "sk-or-v1-YOUR_KEY" }
},
"roles": {
"architect": { "provider": "openrouter", "model": "anthropic/claude-3.5-sonnet" },
"editor": { "provider": "openrouter", "model": "anthropic/claude-3.5-sonnet" },
"writer": { "provider": "ollama", "model": "ainovel-qwen" }
},
"context_window": 65536,
"style": "default"
}Chạy lệnh:
docker compose run --rm ainovelTại màn hình chào mừng:
/: Mở thanh tìm kiếm và thực thi lệnh nhanh (Slash Commands).Ctrl+C 2 lần: Lưu an toàn toàn bộ trạng thái và thoát ra.Khi đang ở trong giao diện TUI, bạn có thể gõ / để mở bảng chọn lệnh:
| Lệnh | Mô tả |
|---|---|
/help |
Mở bảng trợ giúp tra cứu danh sách lệnh và phím tắt |
/model |
Chuyển đổi Model hoặc mức độ suy luận (reasoning/thinking) |
/config |
Quản lý cấu hình Provider, Model ID, API Key, Base URL, Context Window |
/diag |
Xem báo cáo chẩn đoán toàn diện về sức khỏe, tiến độ và chất lượng truyện |
/review [on|off] |
Bật/tắt chế độ nghiệm thu từng chương (dừng lại sau mỗi chương để bạn duyệt) |
/next |
Phê duyệt cho phép viết chương tiếp theo (khi ở chế độ nghiệm thu) |
/start |
Đọc tệp dàn ý / ý tưởng bên ngoài để bắt đầu truyện mới |
/import |
Nhập tiểu thuyết từ bên ngoài vào để AI phân tích và viết tiếp |
/reopen |
Viết tiếp tập mới sau khi tác phẩm đã hoàn thành |
/cocreate |
Tạm dừng để vào chế độ đồng sáng tác định hướng giai đoạn tiếp theo |
/simulate |
Phân tích các file văn mẫu trong ./simulate để mô phỏng văn phong |
/importsim |
Nhập hồ sơ mô phỏng văn phong từ tệp json |
/sync |
Đồng bộ các chỉnh sửa thủ công của bạn trên các file chương vào hệ thống |
/export |
Xuất tác phẩm thành file văn bản hoàn chỉnh (.txt hoặc .epub) |
Trong lúc AI đang viết, bạn có thể nhập trực tiếp ý kiến sửa đổi vào ô nhập liệu bên dưới bất cứ lúc nào mà không cần tạm dừng hay khởi động lại:
❯ Cho nhân vật phụ A hy sinh ở cuối chương này để tạo bước ngoặt cảm xúc lớnSau khi nhấn Enter, Arbiter sẽ tự động đánh giá phạm vi ảnh hưởng và điều phối Writer/Editor cập nhật mạch truyện.
Dành cho việc chạy tự động trên VPS, Server hoặc CI:
# Bắt đầu truyện mới
docker compose run --rm ainovel --headless --prompt "Tiểu thuyết huyền nghi đô thị phá án"
# Viết tiếp truyện đang dở trong thư mục hiện tại
docker compose run --rm ainovel --headlessMặc định output sẽ lưu vào thư mục workspace/. Để viết nhiều bộ truyện khác nhau mà không bị xung đột, hãy đặt biến môi trường NOVEL_DIR:
# Trên Windows PowerShell:
$env:NOVEL_DIR = ".\novels\tien-hiep-ky"
docker compose run --rm ainovel
# Viết bộ truyện khác:
$env:NOVEL_DIR = ".\novels\do-thi-di-nang"
docker compose run --rm ainovelCấu trúc thư mục đầu ra của mỗi truyện:
novels//output/novel/
├── chapters/ # Các chương hoàn chỉnh đã duyệt (.md)
├── drafts/ # Bản nháp và dàn ý chi tiết từng chương
├── reviews/ # Báo cáo đánh giá của Editor
├── summaries/ # Tóm tắt từng Cung và Tập
├── premise.md # Ý tưởng & tiền đề cốt truyện
├── characters.md # Hồ sơ thiết lập nhân vật
├── world_rules.md # Thiết lập quy tắc thế giới
└── meta/ # Checkpoint, tiến độ, nhật ký token/diag)Gõ /diag trong TUI để hệ thống tự động kiểm tra toàn bộ truyện theo 4 chiều:
/simulate)Đặt các file văn mẫu (truyện của tác giả bạn yêu thích) vào thư mục simulate/ rồi gõ /simulate. AI sẽ phân tích nhịp điệu, cách dùng từ, cấu trúc câu v
No open issues yet, or sync has not completed.