GitHub:https://github.com/jermaine7511261/book-agent
摘要:book-agent 是一个零 Python 依赖、纯 Shell + Agent Prompt 驱动的 AI 长篇小说创作管线模板。6 个智能体协同 14 道工序,覆盖从大纲到多格式发布的全流程,已支撑 2 部小说共 34 章、38 万字的实战产出。本文全面介绍其架构设计、120 维质量体系、Truth 真值系统,以及从 Python 重依赖到纯 Agent 驱动的架构演进过程。
1. 项目起源:让 AI 写长篇小说的工程挑战
用大语言模型写出一条高质量长篇小说,面临三大核心挑战:长程一致性——200 页之后主角的年龄不能变;风格统一性——第三章的叙事节奏不能和第十五章截然不同;生产力瓶颈——靠一个 Prompt 写出整本书的幻想早已破灭,真正的生产力来源于系统化的管线设计。
book-agent 正是为应对这些挑战而生的低代码智能体小说系统。核心理念是:Prompt is Code, Wiki is Database——将知识存放在结构化 Wiki 中,而非散落在对话历史里;将创作流程编码为 Agent 的 Prompt,而非硬编码的业务逻辑。
项目地址:https://github.com/jermaine7511261/book-agent
2. 架构全景:6 Agent × 14 Flow
book-agent 核心架构概括为“六个智能体、十四道工序”。每道工序都有明确的输入、输出和质量标准,每个 Agent 都有清晰的职责边界。
2.1 六个 Agent 角色
| Agent | 角色 | 职责 |
|---|---|---|
| 🎬 导演 (Director) | 全局调度 | 定调定方向、修改闭环决策、多格式发布(Flow 0, 11, 13) |
| 🎭 编剧 (Screenwriter) | 剧本结构 | 将导演意图转化为可执行的剧本结构(Flow 1) |
| 📚 设定守护 (Lore Keeper) | 知识一致性 | 事实核查、设定一致性审计、120 维质量评分(Flow 2, 3, 4, 7, 8, 12) |
| ✍️ 主笔 (Writer) | 正文创作 | 按结构+风格+设定写出正文草稿(Flow 5) |
| ✨ 精修师 (Polisher) | 语言润色 | 120 维度精修、去 AI 味、文字锤炼(Flow 6) |
| 💬 反馈师 (Feedback) | 质量反馈 | 试读反馈、场景设计、AI 检测(Flow 9, 10) |
六个 Agent 遵循严格串行管线——前一道工序的输出是后一道的输入,每一步可审计、可回溯。
2.2 十四道工序
- 0_outline(导演笔记) — 章节定位、情绪基调、节奏要求、关键伏笔
- 1_world(剧本结构) — 段落分析表、悬念管理表、场景编排
- 2_characters(调研报告) — 逐项对照 truth 文件做事实核查
- 3_arcs(设定审核) — 章节间设定一致性交叉审计
- 4_truth(真值预检) — 在动笔前预填 truth 增量,锁定写作参数
- 5_drafts(正文草稿) — 核心创作,生成完整章节
- 6_polished(精修正文) — 120 维度质量精修
- 7_feedback(审计) — 120 维质量评分+分级审计
- 8_promotion(连贯性) — 跨章节一致性检查
- 9_iteration(试读反馈) — 模拟读者反馈
- 10_illustration(场景设计) — 关键场景视觉化
- 11_notes(修改闭环) — 导演审核修改建议并决定是否执行
- 12_beta(最终审计) — 全书一致性校验
- 13_release(发布) — 产出 .md / .html / .txt 三格式
3. 120 维质量体系:可量化的质量评分
book-agent 设计了一套可量化、可审计的 120 维质量评分体系——12 组 × 10 维 × 10 分 = 1200 分满分。
| 组 | 名称 | 关注领域 |
|---|---|---|
| A | 基础写作质量 | 语法、句式、错别字、标点 |
| B | 叙事结构 | 起承转合、情节密度、节奏 |
| C | 角色塑造 | 一致性、动机、对话贴合度 |
| D | 世界观一致性 | 设定逻辑、前后一致性 |
| E | 文风与语感 | 修辞、叙事视角、张力 |
| F | 去 AI 化 | 禁用句式检测、模板化表述 |
| G | 敏感内容检测 | 政治、伦理、合规检查 |
| H | 跨章连续性 | 时间线、人物状态、道具追踪 |
| I | 读者体验 | 悬念设置、信息释放、代入感 |
| J | 发布质量 | 排版、格式、目录结构 |
| K | 类型贴合度 | 类型元素完整度 |
| L | 创新性 | 叙事手法、设定创新 |
F 组(去 AI 化)维护精心设计的禁用句式黑名单,包括“在他的眼中”“他感受到……”“或许…或许…或许…”“深吸一口气”“瞳孔骤缩”“嘴角勾起一抹……”等 50+ 高频 AI 模板句式。配合 de-ai-scan.sh 脚本,数秒内扫描整章内容。
4. Truth 真值系统:为小说建立“数据库”
长篇小说最大杀手是前后矛盾。book-agent 的 Truth 系统由 8 个 JSON 文件组成结构化“事实数据库”:
| 文件 | 内容 |
|---|---|
| truth_characters.json | 角色信息:姓名、年龄、外貌、性格、关系 |
| truth_concepts.json | 核心概念:世界观设定关键术语 |
| truth_plot.json | 情节线:主线/支线的关键事件 |
| truth_power.json | 力量体系:能力等级、天赋、限制 |
| truth_props.json | 道具:关键物品、属性和出现章节 |
| truth_relationships.json | 关系网:角色间的情感/利益关系 |
| truth_tech.json | 科技:技术设定、设备参数 |
| truth_timeline.json | 时间线:事件发生的具体时间节点 |
5. 实战验证:两部小说的完整产出
5.1 判断权 — AI 时代的文学实验
类型:都市 / AI 伦理 / 文学小说 · 章节:24 章 · 字数:约 30 万字 · 状态:✅ 已完成并发布
《判断权》讲述程序员陈默在 AI 时代面对技术焦虑、职场生存和家庭责任的故事。经过 14 道工序打磨,产出了 72 个发布文件(每章 .md + .html + .txt),120 维质量体系平均得分 93 分。
5.2 峡谷至尊 — 电竞网文的自动化生产
类型:电竞 / CP 网文 · 章节:10 章 · 字数:约 8 万字 · 状态:🚧 进行中
峡谷至尊采用 book-agent 的项目继承机制——去除本地 prompt 副本,从 book-agent 模板继承所有 Agent 定义,仅在一个 project.json 中覆写 model 和 book_dir。
6. 架构演进:去 Python 化的必然之路
6.1 为什么要去 Python?
book-agent 早期版本包含 2,349 行 Python 代码——18 个审计工具、4 个测试文件、3 个辅助脚本,试图用程序化方式实现 120 维质量检查。但我们发现了根本性矛盾:
既然 Agent 本身已经通过 Prompt 执行质量检查,为什么还要再写一套 Python 实现同样的逻辑?
答案是不应该。维护两套并行逻辑意味着任何维度修改都需要同步更新 Python 代码和 Agent Prompt——在实践中几乎做不到,最终必然导致代码腐化。此外,pytest、mypy、flake8、pyyaml 这些开发工具在 Agent 驱动的管线中属于不必要的噪音。
6.2 去 Python 化的具体步骤
| 操作 | 影响范围 |
|---|---|
| 删除 18 个审计工具 | check_group_a.py ~ L.py, audit_120.py, auto_check.py 等 |
| 删除 4 个测试文件 | test_agent_config.py, test_pipeline_integrity.py 等 |
| 删除 Python 辅助脚本 | init_project.py, word_count.py, validate_yaml.py |
| 创建 Shell 替代 | word-count.sh, validate-yaml.sh |
| 重写 CI | Python 矩阵测试 → 纯 Shell 验证 |
| 精简 pyproject.toml | 63 行 → 6 行 |
6.3 统一 CLI:一个命令管理全流程
去 Python 化后,17 个 Shell 脚本通过统一的 book-agent 命令访问:
./scripts/book-agent start # 启动 Hermes Agent 服务
./scripts/book-agent status 24 # 管线状态检查
./scripts/book-agent produce 1 5 # 批量生产第1-5章
./scripts/book-agent de-ai src/ # AI味检测
./scripts/book-agent wc --by-file # 字数统计
./scripts/book-agent validate # YAML 语法验证
7. 项目结构
| 目录 | 内容 | 数量 |
|---|---|---|
| prompts/ | 6 个 Agent 完整提示词定义 | 24 文件 |
| scripts/ | 全流程 Shell 脚本 + 统一 CLI | 17 个 .sh |
| config/ | 管线配置、默认参数、审计配置 | 3 文件 |
| genres/ | 7 种小说类型创作指南 | 8 个 .md |
| style/ | 120 维质量体系 + 去 AI 规则 + 文风 | 9 文件 |
| truth/ | 设定事实模板(8 个 JSON) | 9 文件 |
| projects/ | 项目模板 + 注册表 | 8 文件 |
8. 快速开始
git clone https://github.com/jermaine7511261/book-agent.git
# 创建新小说项目
mkdir -p mynovel/config mynovel/truth
cp projects/templates/project.json.example mynovel/config/project.json
# 编辑 project.json 填入书名、类型、章节数
# 启动管线
./scripts/book-agent start
9. CI/CD
CI 仅 34 行,零 Python 依赖:
- Shell 语法检查 —
find . -name '*.sh' -exec bash -n {} \; - JSON 语法检查 —
jq empty - YAML 语法检查 —
scripts/validate-yaml.sh -q - Markdown 链接检查 — Shell 内联 grep/find
10. 当前数字
| 指标 | 数值 |
|---|---|
| Python 代码 | 0 行 |
| Shell 脚本 | 17 个 · 约 1,400 行 |
| 产出小说 | 2 部 · 34 章 · 38 万字 |
| Agent 数量 | 6 |
| 管线工序 | 14 |
| 质量维度 | 120 |
| 小说类型模板 | 7 种 |
| CI 步骤 | 4(全部 Shell) |
11. 核心方法论
- Prompt is Code — Agent 的 Prompt 是经过严格版本管理的结构化文档,修改 Prompt 等于修改代码
- 不要为 Agent 已做的事写代码 — 避免 Agent 和程序化工具之间的功能重复
- 文件结构即文档 — 目录命名直观反映内容,减少上下文切换成本
- 平台无关 — 统一使用正斜杠路径和占位符,消除环境故障
GitHub:https://github.com/jermaine7511261/book-agent
技术栈:Hermes Agent · Shell Script · JSON Schema · Markdown Wiki · Bash CI · 零 Python






