Update docs for gm-first play pipeline and harness chance.

Sweep glossary, progressive design, worker-spec/refine prompts, and play-dm-auditor streaming notes.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-25 01:02:23 +08:00
co-authored by Cursor
parent 123c44ec49
commit 872f742d3e
11 changed files with 33 additions and 27 deletions
+2 -2
View File
@@ -17,7 +17,7 @@
| `modules/context-order/prompt.md` | **骨架已写**(`context-order.v1`) |
| `docs/context-fragment-design.md` | **已写**;范例技能已对齐 `context-fragment.v1` |
| 程序:片段解析 / 扁平投影序 / `对话.历史` 可投影 | **已落地**(非硬双锚) |
| `orchestrator.md` | **已改**:play 调度 auditor → perspective? → gm → narrator |
| `orchestrator.md` | **已改**:play 调度 gm → perspective? → narrator → auditor |
## 优先级 P1(能力归属 feeds)
@@ -56,7 +56,7 @@
```json
// 设计.worker集(世界模拟)
{
"play_slots": { "auditor": true, "gm": true, "narrator": true, "perspective": false },
"play_slots": { "auditor": true, "gm": true, "narrator": true, "perspective": false, "chance": false },
"tables": { "side_effects": [/* 来自变量设计 */] },
"workers": [/* 可空,由程序按槽展开;或覆盖 context/outputs */]
}
+1 -1
View File
@@ -198,7 +198,7 @@
| 记忆 / 长线 / 大纲 / 随机分支 / 人设阶段 | **统一用表**(§5):维护 + 显隐 + 副作用插换上下文 |
| 信息差玩法 | 分角 worker;极贵,慎用 |
| 格式 | 程序拼 |
| 真随机 / 骰子卡组计算 | 固定按需槽 `chance`(程序工具:roll/compare/draw/pick)→ `运行.本轮.机遇`;`play_slots.chance` 开启后由编排器 run_worker;禁止临时造 LLM「骰子演员」 |
| 真随机 / 骰子卡组计算 | 主世界层 harness 批量 `chance` 工具(`requests[]`);`play_slots.chance` 开关;禁止临时造 LLM「骰子演员」;可选保留按需 `chance` worker 供显式 run_worker |
| 用户不应知道的信息 | 程序固定注入,不进可见区;非 input 整理 worker |
| 输入协议 | 常驻上下文(`()` 元要求、`""` 对白、无包裹=事实等) |
+7 -1
View File
@@ -63,7 +63,13 @@ DM 出裁决包(含变量变更)→ 旁观只动表/触发生成 → 程序
- 旁观要不要能说「该按某条规则补东西」?→ **要**,就得看见规则目录/格式。
- 旁观要不要会写角色描写?→ **不要**,所以描写长文不必进旁观上下文。
## 5. 一句话
## 5. 上下文与思考流(UI 对接)
主世界层游玩期走 **gm harness**(tool loop):与普通 worker 相同,经 `onThinkingDelta` / `onOutputDelta` 把推理与正文增量推到前端;机遇工具往返也在同一气泡时间线内展示,不另开隐藏通道。
转述、旁观仍各是一次 worker 调用,各自独立流式输出;**不要**把旁观维护当成 gm 的 tool。
## 6. 一句话
**主世界层断事;转述说话;旁观在回合末对表,改表给下一轮。**
交互上优先「一次裁决 + 延后轻维护」,不优先「来回多轮 LLM 传话」。
+1 -1
View File
@@ -1,7 +1,7 @@
# 游玩呈现壳 · 可微调前端模板
> **阶段**:P1 = 定类与契约;**P2** = 程序/样式适配与灌数。
> 上游:游玩管线 `auditor → gm → narrator`。
> 上游:游玩管线 `gm → perspective? → narrator → auditor`。
> 创作挂钩:`设计.正文组成` / `设计.监控栏`;终稿 tag 通常 `输出.用户展示`。
> **创作定位:基于固定壳做适配微调,不是从零设计前端。**
> 预览:`/shells.html`
+5 -5
View File
@@ -70,7 +70,7 @@ Progressive 投影 本轮主世界层只看见「当前档」;未
3. 程序:在边沿或回合结算时抽一条 → 写入 `运行.事件流` 或投影 tag;主世界层只演绎已抽中的条目。
4. once / fired:同一事件 id 不重复(除非规则允许)。
(真随机:启用 `play_slots.chance`,由按需执行单元 `chance` 程序掷骰/抽签/比点,结果在 `运行.本轮.机遇`;主世界层只演绎已出的结果。事件池权重抽签也可走 chance.pick。)
(真随机:主世界层 harness 内调用批量 `chance` 工具(`requests[]` 一次交齐);由 `play_slots.chance` 开关(默认 false 关闭;规格未写 `play_slots` 时 harness 默认开启)。结果可落 `运行.本轮.机遇`;主世界层只演绎已出的结果。旁观 `need_generate` 走程序抽样 → `运行.本轮.旁观.生成抽样`。事件池权重抽签也可走 chance.pick。)
## 4. 哪些需要变量(判定)
@@ -94,10 +94,10 @@ Progressive 投影 本轮主世界层只看见「当前档」;未
```text
用户输入
→ 主世界层(世界推演):读变量 + 已投影 data,交事件/改真值(按规则)
→(可选)叙事转述:把裁决写成用户可见正文
→ 旁观维护(副 LLM):合同+表+本轮裁决;默认空操作(maintain.v1)
→ 主世界层(世界推演):读变量 + 已投影 data,交事件/改真值(按规则);可经 harness 批量调 chance 工具
→(可选)角色视角:强信息隔离时出反应建议(默认关,插在主世界层之后)
→(可选)叙事转述:把裁决写成用户可见正文
→ 旁观维护(副 LLM):合同+表+本轮裁决;默认空操作(maintain.v1);改表供下一轮主世界层读取
```
| 内容 | 给谁 | 不要做成 |
@@ -111,7 +111,7 @@ Progressive 投影 本轮主世界层只看见「当前档」;未
用户可见名:`ui-glossary.md`(主世界层、旁观维护、叙事转述…)。作者文档可称 **主世界层 / 旁观维护**,与酒馆「主 GM + auditor」同构;**不要**对用户改称整套系统为「GM 框架」而废弃「执行单元」。
**维护路径(不是 chance toolcall)**:主世界层输出 settlement.v1 → Runtime 合并 `variable_changes` 进 `变量.当前` → `side_effects` 换投影;旁观维护输出 maintain.v1 → Runtime 按需合并 `table_ops`;chance 只负责骰子/抽签。
**维护路径(不是 gm 的 chance toolcall)**:主世界层输出 settlement.v1 → Runtime 合并 `variable_changes` 进 `变量.当前` → `side_effects` 换投影;旁观维护输出 maintain.v1 → Runtime 按需合并 `table_ops` / `need_generate` 程序抽样。gm harness 的 `chance` 只负责本回合裁决前的骰子/抽签。
## 6. 世界模拟器技能落点
+3 -3
View File
@@ -125,7 +125,7 @@
| `role-decide` | **角色决策** |
| `world-simulator` | **主世界层**(旧称:世界推演) |
| `auditor` | **旁观维护**(表/规则检查;默认空操作) |
| `chance` | **机遇裁定**(按需:骰子/抽签/比点;程序工具) |
| `chance` | **机遇裁定**(主世界层 harness 批量工具;非每轮独立 LLM) |
| `round-present` | **回合呈现** |
配方选项展示名示例:`world-simulator`(recipe)→ **世界模拟器**;`expand-assistant` → **扩写助手**。
@@ -143,10 +143,10 @@
| **旁观维护** | `auditor` | 副 LLM:表/规则检查与按需补充;默认每轮上场、多数轮空操作;不写真相 |
| **主世界层** | `world-simulator` | 读变量与 Progressive 投影、按规则改真值/交事件;多数世界观与查表归这里 |
| **叙事转述** | `narrator` | 把裁决写成用户可见正文(若规格拆了呈现) |
| **机遇裁定** | `chance` | 按需程序工具(掷骰/比点/抽签);不进每轮管线;结果 tag `运行.本轮.机遇` |
| **机遇裁定** | `chance` | 主世界层 harness 内批量程序工具(掷骰/比点/抽签);`play_slots.chance` 为 false 时关闭;结果可写入 `运行.本轮.机遇`;非每轮独立上场 |
| **角色视角** | `role-decide` | 仅强信息隔离;只出反应建议 |
推荐调度:`auditor → perspective? → gm → narrator`。
推荐调度:`gm → perspective? → narrator → auditor`。
默认少拆:百科、分档性格、章大纲投影 → 主世界层 + 表副作用,**不要**再拆「世界观执行单元」「性格执行单元」。详见 `docs/progressive-data-design.md` §5。
+1 -1
View File
@@ -178,7 +178,7 @@ recipes/world-simulator|expand-assistant/recipe.yaml
| 编排器 | 状态 |
|------|------|
| 世界模拟器 | 创作链路已写;**play**:`auditor → perspective? → gm → narrator`;settlement/maintain 合并变量已接 |
| 世界模拟器 | 创作链路已写;**play**:`gm → perspective? → narrator → auditor`;gm harness 批量 chance;settlement/maintain 合并变量已接 |
| 扩写助手 | 方法论已写;起点:美学纲领与交互范式;勿默认套世界模拟全套 |
---