#技巧便利店 # Novel Deduction Skill 小说推演Skill
介绍
Novel Deduction 是一个用于创建交互式树杈形叙事结构的Skill。当你在Trae中开发小说系统、剧情推演功能或故事分支逻辑时,可以调用此Skill获取指导。
使用介绍
何时使用
当你需要以下场景时,调用此Skill:
| 场景 | 说明 |
|---|---|
| 创建交互式故事系统 | 需要用户选择分支的叙事应用 |
| 实现剧情分支逻辑 | 游戏、小说阅读器、角色扮演等 |
| 人物弧线追踪 | 跟踪角色情感变化和成长 |
| 故事演进系统 | 自动生成下一步剧情 |
| 多结局设计 | 同一开头不同走向的结局 |
如何使用
在Trae中直接描述你的需求,例如:
我想创建一个玄幻小说的推演系统,主角需要经历觉醒、修炼、决战三个阶段,中间可以穿插感情线和支线任务。
Skill会基于你的描述提供:
- 数据结构设计建议
- 分支算法逻辑
- 代码实现方案
- API设计指导
实现介绍
核心架构
┌─────────────────────────────────────────────────────┐
│ AI Service │
│ (GLM / Doubao API) │
└─────────────────┬───────────────────────────────────┘
│
┌─────────────────▼───────────────────────────────────┐
│ Branch Recommendation Service │
│ 树杈形推荐算法 - 计算分支优先级和收敛度 │
└─────────────────┬───────────────────────────────────┘
│
┌─────────────────▼───────────────────────────────────┐
│ Story Evolution Service │
│ 故事演进服务 - 管理节点树和剧情推进 │
└─────────────────┬───────────────────────────────────┘
│
┌─────────────────▼───────────────────────────────────┐
│ Character Plotline Service │
│ 人物主线服务 - 追踪角色弧线和情感状态 │
└─────────────────┬───────────────────────────────────┘
│
┌─────────────────▼───────────────────────────────────┐
│ MongoDB Models │
│ Story / StoryNode / Character │
└─────────────────────────────────────────────────────┘
数据模型
Story (故事)
{
title: string; // 故事标题
description: string; // 故事背景
startNodeId: ObjectId; // 起始节点
endNodeIds: ObjectId[]; // 结局节点列表
mainCharacters: ObjectId[]; // 主要人物
}
StoryNode (故事节点)
{
storyId: ObjectId; // 所属故事
content: string; // 节点内容
type: 'main' | 'branch' | 'choice' | 'ending';
branchType: 'main' | 'character_arc' | 'sub_story';
parentNodeId: ObjectId; // 父节点
childNodeIds: ObjectId[]; // 子节点列表
depth: number; // 深度层级
isRecommended: boolean; // 是否推荐路径
}
Character (人物)
{
storyId: ObjectId;
name: string;
description: string;
mainPlotlineNodeId: ObjectId; // 主线节点
arcNodes: ObjectId[]; // 弧线节点列表
relationships: [{
characterId: ObjectId;
relationshipType: string;
}];
}
分支推荐算法
function calculateRecommendation(context, characterStates) {
// 1. 主线优先 - 越深越收敛向主线
if (depth > maxDepth * 0.7) {
score.main += 30;
}
// 2. 人物弧线 - 根据角色情感状态
if (characterEmotionChanged) {
score.character_arc += 20;
}
// 3. 支线探索 - 控制数量避免泛滥
if (subStoryCount < 2) {
score.sub_story += 10;
}
// 4. 最终排序返回
return sortByScore(recommendations);
}
API 接口
| 接口 | 方法 | 功能 |
|---|---|---|
/api/story |
POST | 创建新故事 |
/api/story |
GET | 获取故事树结构 |
/api/branch |
POST | 推进剧情 |
/api/character |
POST | 创建人物 |
/api/character |
GET | 获取人物弧线 |
包含文件
novel-deduction/
├── SKILL.md # Skill定义文件
└── README.md # 使用和实现介绍
依赖环境
- Node.js 18+
- MongoDB
- GLM API Key 或 Doubao API Key
欢迎
提供建议和意见!保证不 改!
许可
MIT License
Skill下载地址:
https://hanhoo.feishu.cn/wiki/UlLdwKPgxiAAfnkSK7RcNt9Tn1c?fromScene=spaceOverview
【暂时没有上传github,等我推演系统UI和逻辑完善,再一并上传】
【原本想要开发一个系统】
框架已经搭好,但是没有token了。先把逻辑框架搭个skill用着吧。【你看这个UI,一看就UI风,看两眼都不想用。】