重构世界模拟器为模块化配方架构,完善创作编排、会话运行时与 Web UI,并清理过时技能。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-30 00:39:32 +08:00
parent 2b74c30d36
commit e670a5129c
167 changed files with 22955 additions and 5659 deletions

View File

@@ -1,5 +1,8 @@
# Skill 格式与存储
> **文档层级Skill 包格式(非系统架构)。**
> 系统级模块与调度边界见 [`architecture.md`](./architecture.md)。
## 1. 定位:两层 Skill
本项目有 **两种 Skill 文档**,不要混在一个文件里:
@@ -355,72 +358,63 @@ skills:
---
## 5. 会话启动:第一个询问是选 Skill
## 5. 会话启动:描述需求,而非选包
Skill 选择发生在**任何创作逻辑之前**
新建作品 **不再** 让用户输入 skill name 或列表编号。Runtime 自动加载默认 orchestrator`world-simulator`,见 `src/config/default-orchestrator.ts`),直接进入 intake
### 5.1 启动转移
```text
idle
session_started
→ waiting_user(skill_selection)
session_started { initialSkill }
→ waiting_user(intake)
```
新增 `waitingReason`
`session_started` 携带 `initialSkill` 时跳过 `skill_selection`
registry 中其它包仅供 `startWithOrchestrator` / 旧作品读档兼容。
**Legacy旧会话恢复**
```text
session_started无 initialSkill
→ waiting_user(skill_selection) # 仅旧快照可能出现
```
```ts
| { kind: "skill_selection"; availableSkills: SkillIndexEntry[] }
| { kind: "skill_selection"; availableSkills: SkillIndexEntry[] } // legacy
| { kind: "intake"; prompt: string }
```
### 5.2 向用户展示
来自 orchestrator `## 启动询问`,例如 world-simulator
```text
选择创作类型
用你自己的话描述想做什么,例如
【小说】Book 形态:卷 / 章)
1. novel-standard — 标准长篇:大纲 → 事件 → 正文
2. weird-rules-short — 短篇规则怪谈:核心 → 规则 → 成章
3. basic — 最小演示
- 西幻升级、长篇 AI 交互、世界推着走
- 部分代入:() 是指令,"" 是角色话,【】 是行动
- 或:仿写/扩写、规则怪谈、快节奏爽文……
【对话】Book 形态:回合 / 多角色)
4. theater-roleplay — 剧场式角色扮演
也可直接描述你想写什么,我会帮你匹配 skill name。
Agent 会根据你的描述推理需要哪些 Worker并产出 Worker 集。
```
### 5.3 用户回答方式
```text
输入编号或 namenovel-standard
输入自然语言:我想写一个剧场扮演
输入自定义:用 novel-standard但是偏悬疑
直接描述创作目标(一句话即可)
```
Runtime 解析为 `skill_selected` 事件:
Runtime 写入 `用户.需求`(或 skill 指定的 startupTargetKey确认后进入 design stage。
```ts
{ type: "skill_selected"; payload: { skillId: string; userHint?: string } }
```
然后:
### 5.4 两阶段启动(现行)
```text
加载 skills/{skillId}/SKILL.md
解析 ## 启动询问 → session.slots.activeSkill
→ waiting_user(input)
message 来自 SKILL.md「启动询问·向用户展示」
必收集项 / 写入目标 同样来自该节
阶段 1系统 自动绑定默认 orchestrator
阶段 2intake 启动询问 → 用户描述需求 → confirm → agent burst
```
### 5.4 两阶段启动
```text
询问 1系统 skill_selection 「用哪个 skill」→ registry / description
询问 2skill input 「启动询问」章节 → 每类内容问的不同
```
**只有询问 1 是系统固定的。询问 2 及之后所有创作逻辑,都在 SKILL.md 里。**
**Agent 根据需求推理 worker 集**`design-intake`),不再让用户在 registry 里四选一。
---
@@ -495,10 +489,10 @@ Creation Playbook概念
## 11. 第一版范围
```text
skills/ 目录 + 2 个示例 SKILL.mdnovel、theater
启动 → skill_selection → 用户选择 → 加载 skill
skills/ 目录 + 示例 orchestrator 包
启动 → 自动绑定默认 orchestrator → intake描述需求
总管 prompt 注入 skill 摘要
registry.yaml 可选
registry.yaml 可选legacy 包 / 读档兼容)
```
不做: