Skip to main content

将长篇网文拆解为章节节奏、故事片段与整体大纲的 CLI 工具

Project description

StoryAgent

长篇网文结构化拆书 CLI

Python 3.7+ StoryAgent CLI

将长篇小说拆成可阅读、可编辑、可复用的章节节奏与故事片段,导出为结构化 Markdown 和 Excel。


StoryAgent 面向网文拆书场景:先逐章提取章纲、节奏、故事线和亮点,再从已完成的章节拆解中滚动归纳故事片段、整体大纲与叙事循环。拆解结果可用于研究节奏、复盘爽点设计,或作为后续新小说构思的参考资料。

核心能力

  • 单章拆解:并行分析每一章的约 600 字章纲、章节节奏、故事线和金句/梗/爆点。
  • 滚动片段提取:按故事情节将连续章节归为片段;一个片段最多 10 章,不必等待全书拆解完成。
  • 整体结构梳理:基于故事片段生成主线、支线、剧情爽点、阶段推进和底层循环公式。
  • Excel 导出:将多章节奏合并为单元格,和逐章分析一起输出为可阅读、可二次编辑的拆书表。
  • 断点续跑:自动跳过已完成内容;extract --num 可分批拆书,后续命令会接着处理尚未完成的章节。

拆书成果

exports/analysis.xlsx 包含两个工作表:

  1. 拆书表:章节序号、章节名称、多章节奏、单章节奏、单章简介、story_linehighlights
  2. 片段汇总:每个故事片段的章节范围、核心事件、读者观感、情绪节奏、高潮章节和概括。

其中“多章节奏”会按同一故事片段合并单元格;“单章节奏”会突出章节核心和情绪基调,方便快速观察节奏变化。

StoryAgent 导出的小说拆书 Excel 示例

StoryAgent 导出的小说拆书 Excel 示例

同时会导出:

  • exports/analysis.md:可直接人工校对和编辑的拆书 Markdown。
  • exports/story_outline.md:故事主线、支线、剧情与爽点、阶段大纲和底层循环公式。

工作流程

  1. 章节切分:从小说 TXT 识别并保存章节。
  2. 单章拆解:每章生成章纲、章节节奏、故事线、文章亮点。
  3. 故事片段:读取已完成的章节拆解,按情节边界归纳不超过 10 章的片段。
  4. 整体大纲:从故事片段提炼主线、支线、爽点与循环公式。
  5. 导出:生成 Markdown 与 Excel 拆书表。

环境要求

  • Python 3.7+
  • 支持 OpenAI 兼容接口的 LLM 服务,例如 DeepSeek、智谱 GLM、Kimi 等

安装

直接通过 pip 安装

pip install storyagent

安装完成后,storyagent 命令即可使用:

storyagent --help

本地开发安装

git clone https://github.com/XTmingyue/StoryAgent.git
cd StoryAgent
python -m pip install -e .

配置模型

storyagent config

编辑 ~/.storyagent/.env

STORYAGENT_MODEL=deepseek-v4-flash
STORYAGENT_BASE_URL=https://api.deepseek.com
STORYAGENT_API_KEY=your-api-key

也可以用同名环境变量覆盖文件配置。

快速开始

storyagent run 小说拆书 --txt /path/to/小说.txt --max-chapters-per-segment 10

命令会在当前目录创建 workspaces/小说拆书/,依次完成章节切分、单章拆解、故事片段、整体大纲和 Excel 导出。

workspaces/小说拆书/
├── data/
│   ├── chapters.json
│   ├── chapter_extracts/
│   ├── chapter_extracts.json
│   ├── segment_plan.json
│   ├── segment_state.json
│   └── story_outline.json
└── exports/
    ├── analysis.md
    ├── analysis.xlsx
    └── story_outline.md

分步执行

# 1. 解析原始小说,不调用模型
storyagent split 小说拆书 --txt /path/to/小说.txt

# 2. 首次只拆解最靠前的 100 个未完成章节。再执行一次,会继续拆解后续 100 个未完成章节
storyagent extract 小说拆书 --num 100

# 4. 基于当前已拆解的章节,滚动提取故事片段
storyagent segments 小说拆书 --max-chapters-per-segment 10

# 5. 提取整体大纲与细纲循环
storyagent outline 小说拆书

# 6. 导出 Markdown 和 Excel
storyagent export 小说拆书

常用参数

参数 说明
--num N 本次拆解最靠前的 N 个尚未完成章节;适用于 extract
--extract-batch-size N 每批提交给模型拆解的章节数,默认 10。
--max-workers N 单章拆解阶段的最大并发请求数。
--chapter-char-limit N 单章输入给模型的最大字符数。
--segment-load-size N 每轮故事片段提取新加载的章节数。
--max-chapters-per-segment N 单个故事片段最大章节数,默认 10。
--force 强制重跑当前命令对应的已有结果。
--force-extract / --force-segments / --force-outline run 中只重做指定阶段。

拆解维度

单章内容

每章会提取四部分内容:

  1. 章纲:约 600 字的章节故事简述。
  2. 章节节奏:章节核心内容与情绪基调,例如“危机加重 + 金手指使用成功 + 战斗 + 情绪”。
  3. 章节故事线:短语链式事件流,例如“主角穿越 + 初遇危机 + 配角登场 + 世界观铺垫 + 结尾悬念”。
  4. 文章亮点:可能引发读者评论的金句、梗和爆点。

故事片段与大纲

  • 故事片段:归纳核心事件、读者观感、情绪节奏、高潮章节与片段概括。
  • 整体大纲:梳理故事主线、支线和“剧情 + 爽点”的阶段推进。
  • 细纲循环:提炼可重复的叙事机制,例如“危机发现 + 调查试探 + 修炼加点 + 暴力验证 + 资源收获 + 更高层威胁”。

命令参考

命令 说明
storyagent config 创建全局模型配置文件。
storyagent list 列出当前工作区。
storyagent split <工作区> --txt <小说路径> 将 TXT 解析为章节。
storyagent extract <工作区> [--num N] 并行拆解单章内容。
storyagent segments <工作区> 基于已完成的单章拆解滚动提取故事片段。
storyagent outline <工作区> 生成整体大纲与细纲循环。
storyagent export <工作区> 导出 analysis.mdanalysis.xlsx
storyagent md2xlsx <工作区> 将已编辑的 analysis.md 重新转换为 Excel。
storyagent run <工作区> --txt <小说路径> 一键执行完整拆书流程。

关于作者

飞鸟 one the way — 探索者

公众号二维码

微信公众号 · 飞鸟onTheWay

社交平台 · 小红书 潮声明月· 知乎 飞鸟在路上

License

GPL-3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

storyagent-0.1.0.tar.gz (73.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

storyagent-0.1.0-py3-none-any.whl (60.3 kB view details)

Uploaded Python 3

File details

Details for the file storyagent-0.1.0.tar.gz.

File metadata

  • Download URL: storyagent-0.1.0.tar.gz
  • Upload date:
  • Size: 73.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for storyagent-0.1.0.tar.gz
Algorithm Hash digest
SHA256 42dc25425a3cccfcafab9941bc35523e67620249a97e5baeb5f0d880f6c1760c
MD5 853953c62944770136cf5fd4a6a6cb3f
BLAKE2b-256 a55a128afdf18a4a17354aa23187c32fcba735249c55fb5f4ad017cf3a4f3d15

See more details on using hashes here.

File details

Details for the file storyagent-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: storyagent-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 60.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for storyagent-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0422b031ba1a57bf3115b8fe7fadee799981b36a91c6d4a3504006571fe00f52
MD5 6e0c36e4a0d326549abc6c6cd636e394
BLAKE2b-256 3ae6b9d4659aa8a4db832712b6499427a002328208a071ee771e3340d65816fd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page