Install
openclaw skills install story-master剧情生成管道流技能。支持多剧集连续生成、图谱管理、AI质检+人工确认的双控机制。自动管理人物、场景、钩子的关联关系。
openclaw skills install story-master本技能实现一个完整的剧情生成管道:
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐
│ 生成第N集 │ -> │ AI质检 │ -> │ 图谱存储 │ -> │ 等待人工确认 │
└──────────┘ └──────────┘ └──────────┘ └──────────────┘
│ │ │ │
▼ ▼ ▼ ▼
查询图谱 通过/重试 存储关联 继续/修改/结束
用户:开始一个新的剧情管道,主题:中国小女孩逆袭,目标集数:10集
用户:继续剧情管道 [pipeline_id]
用户:通过,继续下一集
用户:修改:[具体意见]
用户:暂停
用户:结束
每集生成后,AI 自动检查:
| 检查项 | 说明 |
|---|---|
| 剧情连贯性 | 与前集衔接是否自然 |
| 人物一致性 | 角色行为是否符合设定 |
| 钩子处理 | 新增/闭环钩子是否合理 |
| 节奏控制 | 剧情推进是否恰当 |
| 情感曲线 | 情绪起伏是否合理 |
评分标准: 0-10分,低于7分触发重试(最多3次)
AI 审核通过后,展示预览并等待用户确认:
📋 第N集预览
━━━━━━━━━━━━━━━━━━━━━━━━
【剧情摘要】
...
✅ AI 评分:8.5/10
✅ 钩子状态:新增1个,闭环1个
请选择:
1️⃣ 通过,继续下一集
2️⃣ 需要修改(请说明)
3️⃣ 暂停
4️⃣ 结束
━━━━━━━━━━━━━━━━━━━━━━━━
生成第N集前,查询第N-1集的图谱:
graph_manager.query_graph(pipeline_id, episode=N-1)
返回:
用户确认后,存储当前集的完整内容:
graph_manager.save_graph(pipeline_id, episode=N, content)
存储内容:整集的生成结果(不拆分要素)
data/pipeline_state.json{
"pipelines": {
"pipeline_2026-03-05-001": {
"theme": "中国小女孩逆袭",
"target_episodes": 10,
"current_episode": 3,
"status": "waiting_user_confirm",
"created_at": "2026-03-05T15:00:00",
"updated_at": "2026-03-05T15:30:00",
"ai_review": {
"score": 8.5,
"checks": {...}
},
"last_output": {
"episode": 3,
"summary": "...",
"content": "完整内容..."
}
}
}
}
| 状态 | 说明 |
|---|---|
generating | 正在生成 |
ai_reviewing | AI 审核中 |
waiting_user_confirm | 等待人工确认 |
paused | 已暂停 |
completed | 已完成 |
error | 错误状态 |
URL: https://framedream.art/n8n/webhook-test/open_frame_construct
查询接口:
{
"action": "query",
"pipeline_id": "pipeline_2026-03-05-001",
"episode": 2
}
存储接口:
{
"action": "save",
"pipeline_id": "pipeline_2026-03-05-001",
"episode": 3,
"content": "第3集的完整生成内容..."
}
基于用户提供的主题和目标,生成:
基于图谱查询结果:
当达到目标集数或用户要求结束时:
用户:开始一个新管道,主题:修仙少年,目标20集
AI:好的,创建管道 pipeline_20260305160000
主题:修仙少年
目标:20集
风格:写实电影感
状态:已初始化,准备生成第1集
AI 调用 start_generation(pipeline_id) 获取生成提示词,然后根据提示词生成剧集内容。
AI 调用 submit_episode(pipeline_id, episode, content) 提交生成的内容,然后执行AI审核。
AI 调用 process_ai_review(pipeline_id, episode, ai_result, content) 处理审核结果。
如果审核不通过(得分<7),自动重试(最多3次)。
审核通过后,展示预览并等待用户确认:
📋 第1集预览
━━━━━━━━━━━━━━━━━━━━━━━━
【修仙之路开启】
少年李云在山中发现一块神秘玉佩,
从此踏上了修仙之路...
✅ AI 评分:9.0/10
✅ 新增钩子:H-001 神秘玉佩来历
━━━━━━━━━━━━━━━━━━━━━━━━
请选择:
1️⃣ 通过,继续下一集
2️⃣ 需要修改(请说明)
3️⃣ 暂停
4️⃣ 结束
用户确认后,AI 调用 user_confirm(pipeline_id, action, note):
重复步骤 2-6,直到达到目标集数或用户结束。
create_pipeline(theme: str, target_episodes: int, style: str = "写实电影感")
# 返回:{"success": True, "pipeline_id": "...", "message": "..."}
start_generation(pipeline_id: str)
# 返回:{"success": True, "episode": N, "prompt": "生成提示词"}
submit_episode(pipeline_id: str, episode: int, content: str)
# 返回:{"success": True, "review_prompt": "审核提示词"}
process_ai_review(pipeline_id: str, episode: int, ai_result: str, content: str)
# 返回:{"success": True, "passed": True/False, ...}
user_confirm(pipeline_id: str, action: str, note: str = None)
# action: "approve" / "modify" / "pause" / "end"
# 返回:{"success": True, "status": "...", ...}
get_status(pipeline_id: str)
# 返回:管道当前状态信息
list_pipelines()
# 返回:所有管道列表
resume_pipeline(pipeline_id: str)
# 返回:恢复结果
用户:开始一个新管道,主题:修仙少年,目标20集
AI:好的,创建管道 pipeline_20260305160000
正在生成第1集...
📋 第1集预览
━━━━━━━━━━━━━━━━━━
【修仙之路开启】
少年李云在山中发现一块神秘玉佩...
✅ AI 评分:9.0/10
✅ 新增钩子:H-001 神秘玉佩来历
请确认:通过/修改/暂停/结束
用户:通过
AI:正在存储图谱...
开始生成第2集...
data/pipeline_state.jsonresume_pipeline 恢复