将长篇网文拆解为章节节奏、故事片段与整体大纲的 CLI 工具
Project description
StoryAgent
长篇网文结构化拆书 CLI
将长篇小说拆成可阅读、可编辑、可复用的章节节奏与故事片段,导出为结构化 Markdown 和 Excel。
StoryAgent 面向网文拆书场景:先逐章提取章纲、节奏、故事线和亮点,再从已完成的章节拆解中滚动归纳故事片段、整体大纲与叙事循环。拆解结果可用于研究节奏、复盘爽点设计,或作为后续新小说构思的参考资料。
核心能力
- 单章拆解:并行分析每一章的约 600 字章纲、章节节奏、故事线和金句/梗/爆点。
- 滚动片段提取:按故事情节将连续章节归为片段;一个片段最多 10 章,不必等待全书拆解完成。
- 整体结构梳理:基于故事片段生成主线、支线、剧情爽点、阶段推进和底层循环公式。
- Excel 导出:将多章节奏合并为单元格,和逐章分析一起输出为可阅读、可二次编辑的拆书表。
- 断点续跑:自动跳过已完成内容;
extract --num可分批拆书,后续命令会接着处理尚未完成的章节。
拆书成果
exports/analysis.xlsx 包含两个工作表:
拆书表:章节序号、章节名称、多章节奏、单章节奏、单章简介、story_line与highlights。片段汇总:每个故事片段的章节范围、核心事件、读者观感、情绪节奏、高潮章节和概括。
其中“多章节奏”会按同一故事片段合并单元格;“单章节奏”会突出章节核心和情绪基调,方便快速观察节奏变化。
同时会导出:
exports/analysis.md:可直接人工校对和编辑的拆书 Markdown。exports/story_outline.md:故事主线、支线、剧情与爽点、阶段大纲和底层循环公式。
工作流程
- 章节切分:从小说 TXT 识别并保存章节。
- 单章拆解:每章生成章纲、章节节奏、故事线、文章亮点。
- 故事片段:读取已完成的章节拆解,按情节边界归纳不超过 10 章的片段。
- 整体大纲:从故事片段提炼主线、支线、爽点与循环公式。
- 导出:生成 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 中只重做指定阶段。 |
拆解维度
单章内容
每章会提取四部分内容:
- 章纲:约 600 字的章节故事简述。
- 章节节奏:章节核心内容与情绪基调,例如“危机加重 + 金手指使用成功 + 战斗 + 情绪”。
- 章节故事线:短语链式事件流,例如“主角穿越 + 初遇危机 + 配角登场 + 世界观铺垫 + 结尾悬念”。
- 文章亮点:可能引发读者评论的金句、梗和爆点。
故事片段与大纲
- 故事片段:归纳核心事件、读者观感、情绪节奏、高潮章节与片段概括。
- 整体大纲:梳理故事主线、支线和“剧情 + 爽点”的阶段推进。
- 细纲循环:提炼可重复的叙事机制,例如“危机发现 + 调查试探 + 修炼加点 + 暴力验证 + 资源收获 + 更高层威胁”。
命令参考
| 命令 | 说明 |
|---|---|
storyagent config |
创建全局模型配置文件。 |
storyagent list |
列出当前工作区。 |
storyagent split <工作区> --txt <小说路径> |
将 TXT 解析为章节。 |
storyagent extract <工作区> [--num N] |
并行拆解单章内容。 |
storyagent segments <工作区> |
基于已完成的单章拆解滚动提取故事片段。 |
storyagent outline <工作区> |
生成整体大纲与细纲循环。 |
storyagent export <工作区> |
导出 analysis.md 与 analysis.xlsx。 |
storyagent md2xlsx <工作区> |
将已编辑的 analysis.md 重新转换为 Excel。 |
storyagent run <工作区> --txt <小说路径> |
一键执行完整拆书流程。 |
关于作者
飞鸟 one the way — 探索者
微信公众号 · 飞鸟onTheWay
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42dc25425a3cccfcafab9941bc35523e67620249a97e5baeb5f0d880f6c1760c
|
|
| MD5 |
853953c62944770136cf5fd4a6a6cb3f
|
|
| BLAKE2b-256 |
a55a128afdf18a4a17354aa23187c32fcba735249c55fb5f4ad017cf3a4f3d15
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0422b031ba1a57bf3115b8fe7fadee799981b36a91c6d4a3504006571fe00f52
|
|
| MD5 |
6e0c36e4a0d326549abc6c6cd636e394
|
|
| BLAKE2b-256 |
3ae6b9d4659aa8a4db832712b6499427a002328208a071ee771e3340d65816fd
|