DSH 插件生态中,长篇小说创作依赖明确的设定和进度管理。dsh-novel 解决了这一点:它给 Agent 提供了 5 个 novel_* 工具,同时也提供了一个宿主原生席位面板,用于管理大纲、角色关系、剧情任务和章节进度。
核心功能¶
该插件将工作流分为两部分:一部分供 Agent 调用工具进行创作,另一部分供人类用户管理项目结构。
Agent 工具
给 Agent 提供 5 个工具,用于读写设定和正文:
* novel_list:列出所有小说及其章节、角色数。
* novel_read:读取设定文件(设定.json)、大纲、世界观、人物卡或特定章节正文。
* novel_context:一次取全「续写下一章」所需的完整上下文(包含设定、大纲、世界观、角色关系及最近章节)。
* novel_save_chapter:保存章节,文件名自动按章节编号。
* novel_cast:读取、增删改角色与人物关系。
宿主原生席位面板
为用户提供可视化的管理界面:
* 开书向导:支持模板补全,支持先开书再慢慢补全设定。
* 小说库:记住每本小说的阅读进度,支持搜索、排序和切换。
* 角色关系图:支持力导向布局,可上传图片头像。
* 剧情任务栏:管理情节点、挂载章节、卷纲领,支持手动标记完成。
* 一键续写 + 流式直播:模型生成时实时显示在面板上。
* 导出功能:支持导出 EPUB 和 Word 格式。
安装¶
在终端执行以下命令安装:
dsh plugin --profile web add github:wbb316/dsh-novel
安装完成后,重启 DSH Web 进程以使插件生效:
dsh web
使用示例¶
在对话中调用 Agent 时,可以使用以下方式调用工具:
- 使用
novel_context获取续写下一章所需的完整上下文:
{ "tool": "novel_context", "novel": "小说名", "chapter_count": 3 }
- 使用
novel_save_chapter保存章节,文件名会自动编号:
{ "tool": "novel_save_chapter", "novel": "小说名", "content": "本章正文..." }
- 使用
novel_cast增删改角色和关系,或上传头像:
{ "tool": "novel_cast", "novel": "小说名", "addCharacters": [{ "name": "角色名", "role": "配角" }] }
系统要求与注意事项¶
- DSH 版本:要求
>= 0.2.0-rc.1。 - Node 版本:要求
>= 20。 - 老宿主兼容:老版本宿主若无原生席位,面板会退回到
dsh-better-sidebar页签。 - 删除机制:删除操作为移入回收站,非真删除。
- 改名风险:改角色名会进行全文替换,操作前需确认。单个字的名字不进行全文替换。
总结¶
dsh-novel 通过结构化的数据管理(JSON 设定、角色关系、剧情表)和可视化的面板,降低了长篇小说创作中上下文维护和进度管理的难度。对于需要在 DSH 中构建小说写作流程的开发者,这是一个直接的集成方案。