Align context projection defaults with gm-first play model.

Richer synth fallbacks and context-order examples: gm gets narrative guide and history; narrator and auditor skip history; auditor reads settlement at turn end.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-25 00:51:47 +08:00
co-authored by Cursor
parent 8360e885bb
commit ac474bcd1a
7 changed files with 66 additions and 44 deletions
+21 -5
View File
@@ -498,20 +498,36 @@ const SYNTH_FALLBACK_CONTEXT: Record<
"设计.变量控制上下文",
],
dynamic: [
"运行.本轮.裁决",
"用户.最新输入",
"变量.当前",
"上下文.旁观.状态摘要",
"运行.本轮.工单",
],
skipHistory: true,
},
"world-simulator": {
static: ["设计.变量设计与更新规则"],
dynamic: ["变量.当前", "运行.事件流", "用户.最新输入", "上下文.角色态度"],
static: [
"设计.舞台骨架",
"设计.实现机制",
"设计.变量设计与更新规则",
"设计.生成规则",
"设计.叙事指南与故事推进",
],
dynamic: [
"变量.当前",
"运行.事件流",
"上下文.角色态度",
"用户.最新输入",
],
},
narrator: {
static: ["设计.叙事指南"],
dynamic: ["运行.本轮.裁决", "用户.最新输入"],
static: [
"设计.叙事指南与故事推进",
"设计.正文组成",
"设计.监控栏",
],
dynamic: ["运行.本轮.裁决"],
skipHistory: true,
},
"role-decide": {
static: [],
+1 -1
View File
@@ -90,7 +90,7 @@ export const PLAY_SLOT_ORDER: PlaySlotId[] = [
/** 这些槽的默认上下文不注入「对话.历史」长聊 */
export const PLAY_SLOTS_WITHOUT_DIALOGUE_HISTORY: ReadonlySet<PlaySlotId> =
new Set(["auditor"]);
new Set(["auditor", "narrator"]);
export function playSlotIdForRef(ref: string): PlaySlotId | undefined {
const trimmed = ref.trim();