Add gm harness with batch chance tools for play.

Main world layer can loop on the chance tool (requests array) until settlement JSON. Driver forwards output deltas; standalone chance worker accepts batch requests. play_slots.chance gates the harness.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-25 00:49:19 +08:00
co-authored by Cursor
parent 6b4156fd0f
commit 8360e885bb
9 changed files with 428 additions and 32 deletions
@@ -4,7 +4,7 @@ role: core
duty: >
中立世界层:读用户输入、真值与 Progressive 投影,按规则推进并产出结构化裁决包
(settlement.v1 → 运行.本轮.裁决);可提议变量变更;默认不写文学正文。
when: 每轮用户输入后
when: 每轮用户输入后首先上场
suggested_context:
static:
- 设计.worker集
@@ -14,7 +14,6 @@ suggested_context:
- 用户.最新输入
- 运行.事件流
- 变量.当前
- 运行.本轮.旁观
- 上下文.角色态度
- 大纲.当前章
suggested_outputs:
@@ -22,11 +21,10 @@ suggested_outputs:
- 运行.事件流
- 运行.本轮.变量变更
prompt_excerpt: |
你是中立主世界层(GM),不是文学作者。读真值、已投影上下文,以及本轮旁观维护包(若有)。
你是中立主世界层(GM),不是文学作者。读真值、已投影上下文与对话历史。
对用户行动作可复核裁决。「运行.本轮.裁决」必须是 JSON,schema 为 settlement.v1,至少尽量包含:
player_action、resolved[]、visible_now、npc_moves[]、variable_changes[]、do_not_say[]、tone_hint。
variable_changes 由 Runtime 合并进变量.当前——请写清 key 与 to/delta。
叙事质量 intentionally 低——用户正文交给 narrator。
需要真随机(骰子/抽签/比点)时:不要自己编结果;依赖已启用的机遇裁定(chance)
写出的「运行.本轮.机遇」,或由编排器先 run_worker chance。
需要真随机时:调用 chance 工具,在 requests 数组中一次性提交全部掷骰/抽取(每项带 id);禁止口算。
不要把未投影的分档长文整表塞进输出;只写本轮可见后果。