# novels-code **Repository Path**: xiaobaer/novels-code ## Basic Information - **Project Name**: novels-code - **Description**: AI 自动写小说引擎,以编码工具的方式,聊天式写小说 - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-06-24 - **Last Updated**: 2026-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# ⚡ Gangge Code **AI 小说创作引擎 · 本地编程助手 — 写小说、写代码,一个工具全搞定**

**📖 小说创作(Dramatica-Flow)· 💻 AI 编程助手 · 桌面 GUI** [English](./README_EN.md) | 中文 > 在中间聊天窗口用自然语言写小说:说「加个角色」「改大纲」「写下一章」,AI 自动调用对应工具。同时保留完整的 AI 编程能力。
--- ## 📖 核心功能:AI 小说创作引擎 Gangge Code 内置 **Dramatica-Flow** 完整小说创作系统,支持从构思到成稿的全流程: ### 🎯 聊天式创作 在主聊天窗口直接对话,AI 自动理解意图并操作: - 「给主角加一个青梅竹马」→ 自动修改角色配置 - 「第三章的剧情太无聊了,加点悬念」→ 调整章纲 - 「帮我看看现在的进度」→ 显示详细状态 - 「写下一章」→ 执行写作流水线 - **选书后自动注入上下文**:角色、大纲、伏笔、世界状态全部加载到 system prompt,LLM 精准理解你的项目 ### 🏗️ 五层写作流水线 1. **Architect 规划师** — 分析大纲、世界状态、前文摘要,生成章节蓝图 2. **Writer 作家** — 基于蓝图撰写正文,保持风格一致 3. **Post-write 校验** — 提取因果链、生成摘要、更新世界状态 4. **Auditor 审计员** — 检查逻辑漏洞、伏笔一致性、角色行为合理性 5. **Reviser 修订者** — 根据审计反馈自动修订,循环直到通过 ### 🔧 16 个专用工具 | 工具 | 功能 | |------|------| | `novel_init` | 创建新书籍项目 | | `novel_setup` | 配置角色/势力/地点/世界规则 | | `novel_outline` | 生成/重新生成故事大纲 | | `novel_chapter_outlines` | 展开每章详细节拍 | | `novel_write_chapter` | 写一章(支持快速模式) | | `novel_audit` | 审计已写章节 | | `novel_revise` | 根据反馈修订章节 | | `novel_status` | 查看详细进度和状态 | | `novel_edit` | 修改任意元素(角色/关系/伏笔/大纲/章节) | | `novel_export` | 导出全书(TXT/EPUB) | | `novel_list_books` | 列出所有书籍 | | `novel_navigate` | 快速定位读取文件(章节/角色/大纲/状态) | | `novel_graph_query` | 查询叙事知识图谱 | | `novel_consistency_check` | 全书一致性检查 | | `novel_graph_rebuild` | 重建叙事图谱 | | `novel_import` | 导入 TXT 小说进行仿写分析 | ### 📚 导入与仿写 - 支持导入几十万字的 TXT 小说文件 - 多区域采样分析写作风格(开头、中段、结尾) - 全文扫描提取角色信息 - 结构化分析剧情弧线、转折点、情感轨迹 - 动态风格锚定:根据当前写作进度匹配参考文本 - 大文件自动分块处理(>50 万字拆分为 10 万字块) ### ⚡ 性能优化 - **快速模式**:跳过 Architect 规划和 Audit-Revision 循环,速度提升 3x+ - **并行 LLM 调用**:因果链提取和摘要生成并行执行 - **直接执行**:绕过 Agentic Loop 开销,直接调用工具 - **上下文压缩**:长篇小说自动压缩历史摘要,保持上下文窗口可控 - **定期深度审查**:每 N 章触发全量一致性检查 ### 🎨 专业 UI 面板 - **仪表盘 Dashboard** — 总览进度、统计、快捷操作 - **角色 Characters** — 可视化管理角色、编辑属性、查看弧线 - **大纲 Outline** — 树形展示故事弧线、拖拽调整顺序 - **章节 Chapters** — 列表管理所有章节、一键写作/审计/修订 - **世界观 Worldview** — 地点、势力、世界规则一览 - **追踪 Tracking** — 伏笔管理、因果链可视化、情感曲线 - **词库 Word Bank** — 自定义词汇库、风格参考 ### 🧠 叙事知识图谱 - 基于 CodeGraph 架构设计的叙事建模系统 - 角色、事件、关系作为图节点和边存储 - SQLite 持久化,支持复杂查询 - 自动追踪因果关系链和伏笔闭合状态 --- ## ✨ 特色对比 | | Gangge Code | ChatGPT / Copilot | Claude Code | 专用写作软件 | |--|--|--|--|--| | **AI 小说创作** | ✅ Dramatica-Flow | ❌ | ❌ | ❌ 无 Agent 能力 | | **聊天式写小说** | ✅ 自然语言驱动 | ❌ | ❌ | ❌ 固定流程 | | **五层写作流水线** | ✅ 自动规划→写→审→改 | ❌ | ❌ | ❌ 单层输出 | | **导入仿写** | ✅ 几十万字 TXT | ❌ | ❌ | ❌ 小文件限制 | | **叙事知识图谱** | ✅ 因果链+伏笔追踪 | ❌ | ❌ | ❌ | | 自主调用工具 | ✅ | ❌ 只输出代码 | ✅ | ❌ | | 本地完全运行 | ✅ | ❌ | ❌ 需订阅 | ❌ 云端依赖 | | DeepSeek 原生支持 | ✅ 成本低 10x | ❌ | ❌ | ❌ | | 桌面 GUI | ✅ PyQt6 | ❌ | ❌ | 部分 | | Shadow Git 回滚 | ✅ | ❌ | ✅ | ❌ | | Memory Bank 跨会话 | ✅ | ❌ | ✅ | ❌ | | LSP 语法检查 | ✅ | ❌ | ❌ | ❌ | | 批量任务队列 | ✅ | ❌ | ❌ | ❌ | | MCP 外部工具接入 | ✅ | ❌ | ✅ | ❌ | | 完全开源可改 | ✅ | ❌ | ❌ | ❌ | --- ## 🚀 快速安装 ### 1. 克隆项目 ```bash git clone https://github.com/ydsgangge-ux/gangge-code.git cd gangge-code ``` ### 2. 安装(三选一) ```bash # 方式 A:最小安装(CLI + TUI + 小说创作) pip install -e . # 方式 B:带桌面 GUI(推荐) pip install -e ".[gui]" # 方式 C:全部安装(GUI + 开发工具) pip install -e ".[all]" ``` ### 3. 配置 API Key ```bash cp .env.example .env # 编辑 .env,填入你的 API Key ``` 最小配置(DeepSeek): ```ini LLM_PROVIDER=deepseek DEEPSEEK_API_KEY=sk-xxx ``` ### 4. 开始使用 ```bash # 桌面 GUI(推荐,完整体验小说创作+编程) python desktop/app.py # 或 Windows 双击 desktop/run.bat # 单次任务(编程模式) gangge "创建一个带用户认证的 FastAPI 项目" # 交互式 REPL gangge ``` --- ## 📖 小说创作使用流程 ### 第一步:创建书籍 1. 启动桌面 GUI 2. 左侧面板点击「新建书籍」 3. 填写书名、题材、目标章数、每章字数 ### 第二步:配置世界观 1. 切换到「角色」tab,添加主要角色(姓名、身份、性格、人物弧线) 2. 切换到「世界观」tab,添加重要地点和势力 3. 或直接让 AI 自动生成:「帮我配一套仙侠小说的角色和世界观」 ### 第三步:生成大纲 1. 切换到「大纲」tab 2. 点击「生成大纲」按钮 3. Architect 会基于角色和世界观生成完整的故事弧线 4. 可以手动编辑或让 AI 调整:「在大纲里加一个反转」 ### 第四步:展开章纲 1. 点击「展开章纲」 2. 每章会生成详细的节拍清单(场景、冲突、情感走向) ### 第五步:开始写作 1. 切换到「章节」tab 2. 选择要写的章节,点击「写章节」(可开启快速模式加速) 3. Writer 基于章纲和前文撰写正文 4. Auditor 自动检查质量,不通过则自动修订 ### 第六步:聊天式调整(随时可用) 在中间聊天窗口直接输入: - 「第五章的主角反应不够强烈,改一下」 - 「加一个伏笔,关于主角的身世」 - 「看看现在的整体进度」 - 「导出前十章」 ### 高级功能:仿写模式 1. 点击「导入小说」上传 TXT 文件 2. 系统自动分析原文的写作风格、角色、结构 3. 创建新书时选择「仿写模式」 4. 写作时自动模仿目标风格 --- ## 🎬 运行效果

Gangge Code 桌面端界面
桌面端 GUI — 小说创作面板 + AI 编程助手

``` 📋 任务分析 技术栈:FastAPI + SQLAlchemy + SQLite ✅ 任务清单 (0/6) 1. [ ] 创建项目结构 — app/, routes/, models/ 2. [ ] 数据模型层 — models/user.py 3. [ ] 认证模块 — routes/auth.py ... ▶ 开始执行第 1 步 ▶ bash(mkdir -p app/routes app/models) ✓ write_file: 已写入 app/models/user.py (42 行) ✅ 1/6 已完成 ``` --- ## 🛠️ 编程助手功能 ### Agent 引擎 - **30 轮 Plan & Execute 循环** — 分析 → 调工具 → 看结果 → 继续,直到完成 - **首轮必出规划** — 模块清单 + 任务步骤 + 文件结构 - **ask_user 暂停等待** — AI 需要信息时暂停提问,用户回答后继续 - **测试验证保障** — 文件写完自动运行 pytest,失败自动修复 - **上下文管理** — 滑动窗口 + 工具结果截断 + 文件索引懒加载,节省 Token - **进度发射器** — 每步执行自动推送进度,实时可见 ### 13+ 个内置编程工具 `bash` · `read_file` · `write_file` · `edit_file` · `grep` · `glob` · `list_dir` · `web_fetch` · `ask_user` · `lint_check` · `find_symbol` · `find_references` · `create_tool` ### 符号导航 - **`find_symbol`** — 按名称查找类、函数、方法,精确定位文件、行号和类型 - **`find_references`** — 查找符号的所有引用位置,支持跨文件追踪 - **仓库索引** — 基于 AST 的多语言符号扫描(Python/JS/TS/JSX/TSX),增量缓存至 `.gangge/repo_index.json` ### 安全与回滚 - **Shadow Git Checkpoint** — AI 修改前自动创建 Git 检查点,一键回滚 - **LSP 语法检查** — 写完代码自动运行 pyright/ruff 检查,错误即时修复 - **权限控制** — 规则引擎 + 危险检测,系统目录写入自动拦截 - **批判者自检** — System Prompt 内置自检规范,提交前检查语法/逻辑/依赖/风格 ### AI 自建工具 - **`create_tool`** — AI 在运行时自行创建新工具,4 重安全门检测(危险代码 → 接口合规 → 重复检测 → 动态加载验证) - **插件系统** — 自建工具自动保存到 `.gangge/plugins/`,下次启动自动加载恢复 ### 项目管理 - **Memory Bank** — `.gangge/` 目录跨会话记录项目进度 + 决策日志 - **Decision Log** — 记录"为什么这么做",防止 AI 重复犯错 - **会话持久化** — SQLite 存储,随时恢复历史会话 - **文件变更 Diff** — 每次修改自动生成 unified diff,绿色新增 / 红色删除 ### 四种使用形态 | 形态 | 命令 | 适合场景 | |------|------|---------| | **单次执行** | `gangge "任务描述"` | 快速任务,CI/CD | | **管道模式** | `cat error.log \| gangge "分析"` | 日志分析,Shell 脚本 | | **交互 REPL** | `gangge` | 多轮对话,持续开发 | | **桌面 GUI** | `python desktop/app.py` | 小说创作 + 完整项目开发 | ### 桌面 GUI 专属功能 - **VSCode 风格三栏布局** — 左侧(会话+文件) | 中间(聊天+输入) | 右侧(预览+工具) - **独立文件预览** — 点击文件在右侧面板预览,不污染聊天记录 - **一键停止** — 执行中随时点击红色停止按钮取消任务 - **批量任务队列** — 多行输入,依次自动执行 - **计划确认** — 规划模式下先出方案,你批准后再执行 - **Diff 回滚** — 查看变更 Diff 并一键回滚到修改前状态 - **国际化** — 内置中英文语言包,根据系统语言自动切换 ### 可扩展性 - **`.ganggerules`** — 项目根目录定义编码规范、测试要求、架构约定 - **MCP 协议支持** — 完整的 MCP 客户端管理器,支持 stdio 和 SSE 两种传输方式 - **MCP Server 接入** — 通过 `.gangge/mcp_servers.json` 配置,自动连接并注册工具(AutoCAD、FreeCAD、数据库、浏览器...) - **ComfyUI 集成** — 启动时自动检测本地 ComfyUI 实例,检测到后自动激活图像生成工具 --- ## 📐 架构 ``` 用户界面层 (Layer 1) CLI gangge "任务" ──┐ 管道 cat x | gangge ─┤ REPL gangge ─┤──► AgenticLoop(核心引擎 Layer 3) TUI terminal.py ─┤ │ GUI desktop/app.py ─┘ ├─ 工具执行层 (Layer 3 tools) │ bash · file_ops · grep · glob · list_dir │ web_fetch · ask_user · lint_check │ find_symbol · find_references · create_tool │ └── 插件工具 (.gangge/plugins/) │ └── 小说工具 (16个) ← Dramatica-Flow │ novel_* 系列 ├─ MCP 工具层 (Layer 4) │ MCP Client (stdio/SSE) → 外部 Server │ └── ComfyUI 图像生成 ├─ 会话管理层 (Layer 2) │ 持久化 · Memory Bank · 压缩 ├─ 权限安全层 (Layer 4) │ 规则引擎 · 危险检测 · Shadow Git └─ LLM 适配层 (Layer 5) DeepSeek · OpenAI · Claude · Ollama ``` --- ## ⚙️ 配置 **`.env` 环境变量** ```ini LLM_PROVIDER=deepseek # deepseek / openai / anthropic / ollama DEEPSEEK_API_KEY=sk-xxx DEEPSEEK_MODEL=deepseek-chat MAX_ROUNDS=30 # 最大工具调用轮数 MAX_TOKENS=8192 TEMPERATURE=0.0 ``` **`.ganggerules` 项目规则**(放项目根目录) ```markdown # 编码规范 - 所有注释用中文 - 每个新函数必须写 pytest 测试 - 数据库操作只在 repositories/ 目录 ``` --- ## 📁 项目结构 ``` gangge-code/ ├── desktop/ │ ├── app.py # PyQt6 桌面主程序(含小说创作面板) │ ├── run.bat # Windows 一键启动 │ └── run.ps1 # PowerShell 启动 ├── src/gangge/ │ ├── cli.py # CLI 入口 │ ├── cli_repl.py # 交互式 REPL │ ├── pricing.py # Token 计费统计 │ ├── layer1_ui/ # TUI 界面(Textual 框架) │ ├── layer2_session/ # 会话管理(SQLite + Memory Bank) │ │ ├── manager.py # 会话管理器 │ │ ├── context.py # 上下文压缩 │ │ ├── state.py # 会话状态 │ │ └── storage.py # SQLite 持久化 │ ├── layer3_agent/ # 核心引擎 │ │ ├── loop.py # Agentic Loop │ │ ├── planner.py # Plan & Execute 规划器 │ │ ├── progress_emitter.py # 进度推送 │ │ ├── prompts/ │ │ │ └── system.py # System Prompt │ │ └── tools/ │ │ ├── base.py # 工具基类 + ToolResult │ │ ├── registry.py # 工具注册中心(统一管理 33+ 工具) │ │ ├── bash.py # Shell 命令执行 │ │ ├── file_ops.py # 文件读写编辑 │ │ ├── search.py # grep/glob/list_dir 搜索 │ │ ├── web.py # 网页内容获取 │ │ ├── ask_user.py # 用户提问 │ │ ├── lint_check.py # LSP 语法检查 │ │ ├── symbol.py # 符号查找 + 引用追踪 │ │ ├── create_tool.py # AI 自建工具 │ │ ├── comfyui_tool.py # ComfyUI 图像生成 │ │ └── novel.py # ★ 小说创作工具集(16个) │ ├── dramatica/ # ★ Dramatica-Flow 小说引擎 │ │ ├── pipeline.py # 五层写作流水线 │ │ ├── agents/ # Architect/Writer/Auditor/Reviser │ │ ├── state/ # StateManager 世界状态管理 │ │ ├── narrative/ # 叙事模块(因果链/伏笔/情感弧) │ │ └── validators/ # 一致性校验器 │ ├── layer4_permission/ # 权限安全 │ │ ├── guard.py # 安全守卫 │ │ ├── rules.py # 规则引擎 │ │ └── danger.py # 危险操作检测 │ ├── layer4_tools/ # 基础设施工具 │ │ ├── shadow_git.py # Git 检查点 / 回滚 │ │ ├── mcp_client.py # MCP 客户端 (stdio + SSE) │ │ ├── repo_index.py # 仓库符号索引 │ │ └── plugin_loader.py # 插件加载器 │ └── layer5_llm/ # LLM 适配(4 种 provider) │ ├── base.py # 基类 + ToolDefinition │ ├── registry.py # Provider 注册 │ ├── deepseek.py # DeepSeek 适配 │ ├── anthropic.py # Claude 适配 │ └── openai_compat.py # OpenAI / Ollama 适配 ├── tests/ │ ├── test_core.py # 核心模块测试 │ ├── test_architecture.py # 架构分层合规测试 │ ├── test_mcp_integration.py # MCP 集成测试 │ └── test_items.py # 桌面 GUI 路由测试 ├── .env.example # 环境变量模板 ├── pyproject.toml # 项目配置 ├── requirements.txt # 依赖列表 └── LICENSE # MIT 开源协议 ``` --- ## 🧪 测试 ```bash # 运行全部测试 pytest tests/ -v # 运行核心模块测试 pytest tests/test_core.py -v # 只运行 AgenticLoop 测试 pytest tests/test_core.py -v -k "test_loop" # 架构分层合规测试 pytest tests/test_architecture.py -v # MCP 集成测试 pytest tests/test_mcp_integration.py -v # 带覆盖率 pytest tests/ --cov=src/gangge --cov-report=term-missing ``` --- ## 🗺️ Roadmap - [x] ★ Dramatica-Flow 小说创作引擎集成 - [x] ★ 16 个专用小说工具 - [x] ★ 聊天式自然语言创作 - [x] ★ 导入仿写(大文件 TXT 支持) - [x] ★ 叙事知识图谱 - [x] ★ 五层写作流水线 - [x] ★ 小说专用 UI 面板(7 个 tab) - [x] CLI / REPL / TUI / PyQt6 桌面端 - [x] Memory Bank 跨会话上下文 + Decision Log - [x] Shadow Git 检查点(每步可回滚) - [x] LSP 语法检查(pyright/ruff/pylint) - [x] ask_user 暂停等待用户输入 - [x] VSCode 风格桌面 GUI(三栏布局 + 文件预览 + 停止按钮) - [x] 符号查找 + 引用追踪(find_symbol / find_references) - [x] AI 自建工具(create_tool + 插件系统) - [x] MCP 完整协议支持(stdio + SSE 双传输) - [x] ComfyUI 图像生成(自动检测激活) - [ ] 国际化 (i18n) 英语语言包 - [ ] Web UI(远程访问) - [ ] 向量索引 (RAG) 局部上下文 - [ ] EPUB 导出格式支持 - [ ] 多人协作写作 - [ ] 小说云端同步 --- ## 🤝 Contributing 欢迎 PR 和 Issue! 如果觉得有用,请点个 ⭐ — 这对项目帮助很大。 --- ## 📜 License MIT © [ydsgangge-ux](https://github.com/ydsgangge-ux)