Initial commit
This commit is contained in:
441
skills/dialogue/roleplay-game-theory/orchestrator.md
Normal file
441
skills/dialogue/roleplay-game-theory/orchestrator.md
Normal file
@@ -0,0 +1,441 @@
|
||||
---
|
||||
name: roleplay-game-theory
|
||||
description: >-
|
||||
何时选用:用户想模拟多个不同角色在简单博弈/思想实验处境下的决策与互动
|
||||
(如囚徒困境、最后通牒、公共池、信任游戏等)。
|
||||
不适用:自由剧场扮演、写小说章节、长篇叙事、需要复杂世界观的 RPG。
|
||||
产出:结构化博弈实例 +(后续 run 阶段)多角色决策模拟记录。
|
||||
category: dialogue
|
||||
bookKind: dialogue
|
||||
version: 1
|
||||
tags:
|
||||
- game_theory
|
||||
- roleplay
|
||||
- simulation
|
||||
workers:
|
||||
- setup-scenario
|
||||
- world-engine
|
||||
- role-decide
|
||||
- present-round
|
||||
sharedContext: shared-context.md
|
||||
---
|
||||
|
||||
# 角色扮演博弈 · 总管
|
||||
|
||||
你是本 skill 的 **总管**,只负责 **流程调度**:读黑板 → 判断阶段 → `run_worker` / `ask_user` / `finish`。
|
||||
不写角色决策、不替 worker 模拟回合——执行细节在包内 `workers/*/SKILL.md`。
|
||||
固定体裁规则在 `shared-context.md`,由 Runtime 注入 **本包所有 worker**,总管不读。
|
||||
|
||||
**当前进度:** instantiate + run(单轮/多轮 simulate + present-round)已定义;`semi_auto` 推进与 programmatic 验收待接入。
|
||||
|
||||
设计方法见 `docs/skill-design-guide.md`(抽象循环 → L0~L3 分层 → 倒推标签)。
|
||||
|
||||
---
|
||||
|
||||
## 架构:三实体 + 展示 + 信息隔离
|
||||
|
||||
```text
|
||||
world-engine 中立世界机:发 L3 可见信息 → 收齐行动 → 裁决 → 追加 L2 事件流
|
||||
role-decide 各角色独立决策:读 L0~L3 → 写 `.思考`(仅用户)与 `.行动`(agent 可见)
|
||||
present-round 展示:读 L0 + 本轮产物 + 思考 → 写 `输出.用户展示`
|
||||
总管 调度轮次;role-decide 须带 workerContext.roleId
|
||||
```
|
||||
|
||||
**抽象循环:** 角色行动 → 世界反应 → 角色行动 → …(每轮末 present-round → 用户验收)
|
||||
|
||||
**分工:** 角色内心由 `role-decide` 产出;世界只写客观事实;**用户可见编排由 present-round 产出**,总管不拼长文。
|
||||
|
||||
**多 AI 博弈(可选):** 包内 `llm-bindings.yaml` 为 `role-decide.byRole` 指定不同 `ApiProfile.id`;默认全部用会话同一 API。
|
||||
|
||||
---
|
||||
|
||||
## 启动询问
|
||||
|
||||
选定本 skill 后,**第一个创作询问**。系统从本节读取问什么、写入哪。
|
||||
|
||||
**向用户展示:**
|
||||
|
||||
```text
|
||||
你选择了「角色扮演博弈」。在开始模拟之前,请告诉我:
|
||||
|
||||
1. 实验情境
|
||||
- 可直接说经典名(囚徒困境、最后通牒、公共池、信任游戏……)
|
||||
- 或用自己的话描述一个「每人要选行动、结果取决于组合」的简单局面
|
||||
|
||||
2. 参与角色(2~4 人即可)
|
||||
- 每个角色用一句话说明策略倾向(如:算计型、讲公平、怕吃亏、爱冒险)
|
||||
- 若有想用的称呼可一并说
|
||||
|
||||
3. 进程
|
||||
- 单轮定胜负 / 重复多轮 / 有限 N 轮 / 直到某条件(如有人破产)
|
||||
|
||||
4. 信息结构(可选)
|
||||
- 大家知道的都一样?有无私密信息或误解?
|
||||
|
||||
5. 输出偏好(可选)
|
||||
- 要不要看角色思考(`.思考` tag,仅你可见)?
|
||||
- 偏冷静报告还是带一点场景描写?
|
||||
|
||||
6. 特殊规则或收益(可选)
|
||||
- 例如:背叛惩罚加倍、允许口头承诺但不具约束力
|
||||
|
||||
可以一次说完。不必懂博弈论术语——我会整理成可模拟的结构。
|
||||
```
|
||||
|
||||
**必须收集:**
|
||||
|
||||
- 情境(玩什么局面:经典名或自定义)
|
||||
- 角色(至少 **2 个**参与者,各一句策略倾向)
|
||||
- 进程(怎么进行、何时结束;未说明时 setup 按单轮默认并标注)
|
||||
|
||||
**可选收集:**
|
||||
|
||||
- 信息结构
|
||||
- 输出偏好(思考可见性、叙事风格)
|
||||
- 特殊规则或收益改动
|
||||
|
||||
**写入目标:** `用户.博弈需求`
|
||||
|
||||
**足够进入 setup 当:** 上述 3 项必要填空已齐,用户确认后写入 `用户.博弈需求`,再调度 setup-scenario。
|
||||
|
||||
---
|
||||
|
||||
## 实例化
|
||||
|
||||
**职责:** 把 `用户.博弈需求` 整理为结构化 prerequisite tags,供后续 run 阶段模拟 worker 使用。
|
||||
|
||||
### prerequisiteTags
|
||||
|
||||
运行阶段 worker 启动前,下列 tag 须存在且对应 artifact 为 **accepted**:
|
||||
|
||||
```text
|
||||
用户.博弈需求
|
||||
情境.实验.设定
|
||||
博弈.规则.草稿
|
||||
博弈.参数.草稿
|
||||
博弈.角色列表
|
||||
角色.*.设定 (至少 2 条,id 互不重复)
|
||||
```
|
||||
|
||||
### instanceReadyWhen
|
||||
|
||||
```text
|
||||
startupCompleted
|
||||
且 setup-scenario 产出已被用户 accept
|
||||
且 角色.*.设定 匹配条目数 ≥ 2
|
||||
```
|
||||
|
||||
等价说法:**instantiate 阶段完成 = 用户确认结构化实例,可进入 run。**
|
||||
|
||||
### setupWorkers
|
||||
|
||||
| worker | 时机 | 说明 |
|
||||
|--------|------|------|
|
||||
| setup-scenario | `用户.博弈需求` 已写入,尚无 accepted 的 `情境.实验.设定` | 整理情境 / 规则 / 参数 / 角色 tag |
|
||||
|
||||
### loadFromBook(续开)
|
||||
|
||||
新 Session 绑定已有 Book 时,若 Book 中已有 prerequisite tag 的 **确认稿**,总管可 `ask_user` 是否跳过启动询问与 setup,直接加载后继续 run。
|
||||
|
||||
**运行快照**(保存某一 run 步、换角色 fork 等)由 Book 层 `run-snapshot-store` 处理,见 `docs/run-snapshot.md`——**不**写进本 orchestrator。
|
||||
|
||||
---
|
||||
|
||||
## 产物说明
|
||||
|
||||
| 产出 | 黑板 tag | 写入者 | 阶段 | 对用户可见 |
|
||||
|------|----------|--------|------|------------|
|
||||
| 用户原始需求 | 用户.博弈需求 | 启动询问 / 用户 | instantiate | 是 |
|
||||
| 实验情境 | 情境.实验.设定 | setup-scenario | instantiate | 是 |
|
||||
| 博弈规则 | 博弈.规则.草稿 | setup-scenario | instantiate | 是 |
|
||||
| 模拟参数 | 博弈.参数.草稿 | setup-scenario | instantiate | 是 |
|
||||
| 角色列表 | 博弈.角色列表 | setup-scenario | instantiate | 是 |
|
||||
| 角色设定 | 角色.{id}.设定 | setup-scenario | instantiate | 是 |
|
||||
| 世界状态 | 世界.当前状态 | world-engine | run | 是 |
|
||||
| 当前轮次 | 世界.当前轮次 | world-engine | run | 是 |
|
||||
| 事件流(L2 记忆) | 运行.事件流 | world-engine | run | 内部(追加式) |
|
||||
| 角色可见信息(L3) | 角色.{id}.可见信息 | world-engine | run | 内部 |
|
||||
| 思考 | 角色.{id}.思考 | role-decide | run | **仅用户**(经 present-round) |
|
||||
| 行动 | 角色.{id}.行动 | role-decide | run | 用户 + 其他 agent(经 world-engine 公开) |
|
||||
| 裁决记录 | 世界.裁决.记录 | world-engine | run | 是(仅规则与状态,无剧情) |
|
||||
| 公开叙述 | 场景.公开叙述 | world-engine | run | 是(客观事实陈述) |
|
||||
| 回合摘要 | 输出.回合摘要 | world-engine | run | 是(事实摘要;**不含**角色内心) |
|
||||
| 用户展示 | 输出.用户展示 | present-round | run | 是(验收用主稿) |
|
||||
|
||||
**Book:** `bookKind: dialogue`。实例化确认稿归档后,可在新 Session 复用同一博弈设定。运行快照见 `docs/run-snapshot.md`。
|
||||
|
||||
**流程概览:**
|
||||
|
||||
```text
|
||||
instantiate:
|
||||
用户.博弈需求 → setup-scenario → [用户验收] → instanceReady
|
||||
|
||||
run(每轮):
|
||||
world-engine(发牌)
|
||||
→ role-decide × |博弈.角色列表|
|
||||
→ world-engine(裁决;追加 运行.事件流)
|
||||
→ present-round → 输出.用户展示
|
||||
→ [用户验收](默认每轮确认)
|
||||
→ 若未终局且未达轮次上限 → 下一轮
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 阶段定义
|
||||
|
||||
| stageId | 名称 | 别名 | 进入条件 | 退出条件 |
|
||||
|---------|------|------|----------|----------|
|
||||
| brief | 需求收集 | **instantiate** | skill 已选 | `用户.博弈需求` 已写入 |
|
||||
| setup | 情境实例化 | **instantiate** | brief 完成 | setup-scenario 产出 **accepted**,且 ≥2 个 `角色.*.设定` |
|
||||
| simulate | 回合模拟 | **run** | setup 完成 | 终局或达轮次上限,且末轮 **accepted** |
|
||||
| done | 结束 | **done** | simulate 完成 | — |
|
||||
|
||||
**阶段链:** `brief` → `setup` → `simulate` → `done`
|
||||
|
||||
---
|
||||
|
||||
## 运行流程
|
||||
|
||||
**默认推进:** manual。
|
||||
|
||||
### 暂停(A · 按 worker 产出)
|
||||
|
||||
| worker 产出 | acceptanceMode | 实例化可覆盖? |
|
||||
|-------------|----------------|----------------|
|
||||
| setup-scenario 全套 | user_confirmed | 否 |
|
||||
| present-round → `输出.用户展示` | user_confirmed | 是 → 启动询问「每轮验收 / 每 N 轮 / 仅终局」(写入 `博弈.参数.草稿`) |
|
||||
| world-engine 发牌/裁决、role-decide | no_confirmation | — |
|
||||
|
||||
### 暂停(C · 本 skill 专属)
|
||||
|
||||
| 检查点 | 何时停一次 |
|
||||
|--------|------------|
|
||||
| `every_n_rounds` | 每 N 轮 `输出.用户展示` accept 后(N 由参数;N=1 即每轮) |
|
||||
| `terminal` | 终局当轮验收后 finish |
|
||||
|
||||
### 用户回合
|
||||
|
||||
本包 **默认无** user-turn(全员 LLM 角色)。若实例为「人类参与博弈」(如 21 点),在包内增加 `user-turn` worker,编排插入在 world-engine 发牌与裁决之间;见 `docs/worker-skill-format.md` §用户回合 worker。
|
||||
|
||||
---
|
||||
|
||||
## 推进策略(预留 semi_auto)
|
||||
|
||||
**默认 manual:** 每轮 `输出.用户展示` 须 `user_confirmed`。
|
||||
|
||||
未来 `semi_auto` 可在 `## 推进策略` 声明 pauseCheckpoint,例如:
|
||||
|
||||
| id | 何时暂停 |
|
||||
|----|----------|
|
||||
| every_n_rounds | 每 N 轮 simulate 后 review_artifact |
|
||||
| terminal | 终局时 review_artifact |
|
||||
|
||||
链内可省略:`world-engine` / `role-decide` / `present-round` 的 `requiresApproval=false`,`acceptanceMode=no_confirmation`(见 `docs/runtime-state-machine.md` §8)。
|
||||
|
||||
---
|
||||
|
||||
## Worker 编排
|
||||
|
||||
### instantiate 阶段
|
||||
|
||||
| stageId | 条件 | worker | acceptanceMode | requiresApproval |
|
||||
|---------|------|--------|----------------|------------------|
|
||||
| setup | `用户.博弈需求` 非空,无 **accepted** 的 `情境.实验.设定`;或 reject 后重做 | setup-scenario | user_confirmed | true |
|
||||
|
||||
### run 阶段 · 单轮子流程
|
||||
|
||||
**先读 `博弈.参数.草稿` 中的「决策顺序」**,再按下表调度。
|
||||
|
||||
#### 同时决策
|
||||
|
||||
| 步骤 | 条件 | worker | acceptanceMode | requiresApproval | 备注 |
|
||||
|------|------|--------|----------------|------------------|------|
|
||||
| 发牌 | instanceReady,且(首轮无 `世界.当前状态` **或** 上轮已裁决且无待收行动) | world-engine | no_confirmation | false | 无 `角色.*.行动` 输入 |
|
||||
| 决策 | 已发牌,存在角色 R 尚无本轮 `角色.R.行动` | role-decide | no_confirmation | false | **workerContext.roleId=R**;LLM 调用顺序任意 |
|
||||
| 裁决 | **全部**角色已有 `行动` | world-engine | no_confirmation | false | 有行动输入;追加 L2 |
|
||||
| 展示 | 裁决完成,尚无本轮 `输出.用户展示` | present-round | no_confirmation | false | |
|
||||
| 终局 | 展示完成,`输出.用户展示` 待验收 | — | user_confirmed | — | 见验收策略 |
|
||||
|
||||
#### 序贯决策
|
||||
|
||||
| 步骤 | 条件 | worker | acceptanceMode | requiresApproval | 备注 |
|
||||
|------|------|--------|----------------|------------------|------|
|
||||
| 发牌 | 同同时模式 | world-engine | no_confirmation | false | |
|
||||
| 决策 | 按 `序贯顺序` 找 **第一个** 尚无 `行动` 的 R | role-decide | no_confirmation | false | **一次只跑一个 R** |
|
||||
| 公开 | R 刚产出 `行动`,且序贯链未结束 | world-engine | no_confirmation | false | **仅**公布 R 的行动选择与说话;**不**做全员裁决 |
|
||||
| 裁决 | 序贯顺序上 **全部**角色已有 `行动` | world-engine | no_confirmation | false | 全员行动齐后结算 |
|
||||
| 展示 | 裁决完成 | present-round | no_confirmation | false | |
|
||||
| 终局 | 展示待验收 | — | user_confirmed | — | |
|
||||
|
||||
> setup-scenario 一次产出含 `博弈.角色列表`(如 `A,B`)与 `博弈.参数.草稿`(含决策顺序)。
|
||||
> role-decide:**禁止** 不带 `workerContext.roleId` 调度。
|
||||
> world-engine:**禁止** 在缺行动候选时做裁决;**禁止** 在发牌模式写行动;序贯「公开」步 **禁止** 提前结算未决策角色的收益。
|
||||
|
||||
---
|
||||
|
||||
## 总管思维链
|
||||
|
||||
每轮 `planning` 按序检查,**命中第一条即行动**:
|
||||
|
||||
### instantiate
|
||||
|
||||
1. **phase = waiting_user(input)** 且 `用户.博弈需求` 未齐 → `ask_user` 补全必收集项。
|
||||
2. **brief 已齐**,无 accepted 的 `情境.实验.设定` → `run_worker(setup-scenario)`,`requiresApproval: true`。
|
||||
3. **waiting_user(review_artifact)**(setup)→ 引导用户核对规则与角色。
|
||||
4. 用户 **accept** setup → 进入 run(见下)。
|
||||
5. 用户 **reject** setup → 收 `用户.修订说明` → 重跑 setup-scenario。
|
||||
|
||||
### run(simulate)
|
||||
|
||||
6. instanceReady,无 `世界.当前状态` 或需新开一轮(无 pending 行动)→ `run_worker(world-engine)` 发牌。
|
||||
7. **读 `博弈.参数.草稿` 决策顺序:**
|
||||
- **同时**:存在角色 R 尚无 `角色.R.行动` → `run_worker(role-decide)`,**workerContext: { roleId: R }**(顺序任意,须跑齐全员)。
|
||||
- **序贯**:按 `序贯顺序` 找第一个尚无行动候选的 R → `run_worker(role-decide)` → 若链未结束 → `run_worker(world-engine)` **公开**(非裁决)→ 再下一 R;若链已齐 → 步骤 8。
|
||||
8. 全部角色行动齐(同时模式一次齐;序贯模式链结束)→ `run_worker(world-engine)` 裁决。
|
||||
9. 裁决完成,无 accepted 的 `输出.用户展示` → `run_worker(present-round)`。
|
||||
10. **waiting_user(review_artifact)**(`输出.用户展示`)→ 展示 present-round 产物;用户可选:**接受产物** / **不接受,重新来** / **说明修改意见**。
|
||||
11. 用户 **accept** 回合 → 若终局或达轮次上限 → `finish`;否则回到步骤 6 下一轮。
|
||||
12. 用户 **reject**(重新来,无说明)→ 清除本轮行动候选、展示稿与相关草稿 tag → 从步骤 6 重跑本轮。
|
||||
13. 用户 **reject**(带修改说明)→ 写入 `用户.修订说明` → 按说明决定重跑 setup 或仅重跑本轮(步骤 6)。
|
||||
|
||||
**禁止** role-decide 不带 roleId。
|
||||
**禁止** 总管撰写可见信息、行动或 **用户展示稿**(由 present-round 产出)。
|
||||
**禁止** 向 role-decide 注入 `博弈.规则.草稿` 全文或其他角色的 `.思考` / `.行动` tag(对方言行仅经 world-engine 公开叙述)。
|
||||
|
||||
---
|
||||
|
||||
## 调度决策表
|
||||
|
||||
| 会话信号 | 总管 action | 参数要点 |
|
||||
|----------|-------------|----------|
|
||||
| 缺 用户.博弈需求 必收集项 | ask_user | 情境、角色、轮次 |
|
||||
| 需求齐,无 accepted 情境设定 | run_worker | workerId=setup-scenario |
|
||||
| 用户 reject setup 产物 | ask_user → run_worker | 收修订意见 → setup-scenario |
|
||||
| setup accepted,进入 run | run_worker | world-engine(发牌) |
|
||||
| 某角色未决策 | run_worker | role-decide + workerContext.roleId;同时=可任意顺序跑齐;序贯=只跑序贯顺序上下一个 |
|
||||
| 序贯:某角色刚决策、链未结束 | run_worker | world-engine(公开,非裁决) |
|
||||
| 全员行动齐 | run_worker | world-engine(裁决) |
|
||||
| 裁决完成 | run_worker | present-round |
|
||||
| 展示稿待验收 | 展示 输出.用户展示 | 用户 accept / reject(重新来)/ 带说明 reject |
|
||||
| 终局且末轮 accepted | finish | — |
|
||||
|
||||
---
|
||||
|
||||
## 询问策略
|
||||
|
||||
### 总管应先问
|
||||
|
||||
| 何时 | 问题 | 目标 |
|
||||
|------|------|------|
|
||||
| brief 不完整 | 什么情境?几个角色各什么倾向?几轮? | 用户.博弈需求 |
|
||||
| setup 待验收 | 规则看清了吗?角色分得够开吗? | 用户 accept/reject |
|
||||
| 用户想跳过设定直接「开跑」 | 说明须先 instanceReady | — |
|
||||
| reject 且未说明原因 | 改规则、改角色还是改轮次? | 用户.修订说明 |
|
||||
|
||||
### 交给 Worker 问
|
||||
|
||||
| 何时 | 问题 | 负责 worker |
|
||||
|------|------|-------------|
|
||||
| setup 执行中 | 情境属于哪类框架?缺收益描述? | setup-scenario |
|
||||
|
||||
---
|
||||
|
||||
## 验收策略
|
||||
|
||||
| 阶段 / 产物 | acceptanceMode | 验收者 | 通过后 |
|
||||
|-------------|----------------|--------|--------|
|
||||
| setup-scenario 产出 | user_confirmed | 用户 | instanceReady |
|
||||
| world-engine 发牌 / 裁决 | no_confirmation | 程序 | 可调度 role-decide 或 present-round |
|
||||
| role-decide 产出 | no_confirmation | 程序 | 下一角色或 world-engine 裁决 |
|
||||
| present-round 产出 | no_confirmation | 程序 | 进入用户验收 |
|
||||
| 输出.用户展示 | user_confirmed | 用户 | 下一轮或 finish |
|
||||
|
||||
**user_confirmed 时总管职责:** 展示 `情境.实验.设定`、`博弈.规则.草稿`、`博弈.参数.草稿`、全部 `角色.*.设定`;不省略规则收益部分。
|
||||
|
||||
**revision:** 用户 reject → 保留 `用户.博弈需求`,追加 `用户.修订说明`(若有)→ 重跑 setup-scenario。
|
||||
|
||||
---
|
||||
|
||||
## Worker 独立 LLM(llm-bindings.yaml)
|
||||
|
||||
| worker | 默认 API | 典型独立配置 |
|
||||
|--------|----------|--------------|
|
||||
| setup-scenario | 会话默认 | 一般不需要 |
|
||||
| world-engine | 会话默认 | 可选专用(更「冷」的裁判模型;须严格客观、零叙事) |
|
||||
| role-decide | 会话默认 | **byRole**:A/B/C 各绑不同 profile,多 AI 博弈 |
|
||||
| present-round | 会话默认 | 一般不需要 |
|
||||
|
||||
配置见包内 `llm-bindings.yaml`。Runtime 解析优先级:
|
||||
|
||||
```text
|
||||
worker SKILL llmProfileId → llm-bindings workers[id].byRole[roleId] → profileId → 会话默认
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 与代码的关系
|
||||
|
||||
| 能力 | 实现 |
|
||||
|------|------|
|
||||
| workerContext.roleId | `MainAgentDecision` + phase-runtime 写入 `世界.当前角色.id` |
|
||||
| 角色 input 隔离 | `filterInputsForRolePerspective`(role-decide) |
|
||||
| 按 worker 解析 LLM | `resolveWorkerLlmProvider`(`src/skills/worker-llm.ts`) |
|
||||
|
||||
---
|
||||
|
||||
## 禁用行为
|
||||
|
||||
### instantiate
|
||||
|
||||
- **禁止** 总管直接撰写结构化实例 tag 正文。
|
||||
- **禁止** 在仅 1 个角色设定时标记 instanceReady。
|
||||
- **禁止** 跳过 setup 用户验收(requiresApproval: true)。
|
||||
|
||||
### run
|
||||
|
||||
- **禁止** role-decide 不带 `workerContext.roleId`。
|
||||
- **禁止** 向 role-decide 注入其他角色的 `.思考` 或 `.行动` tag(对方言行仅经 world-engine 公开叙述)。
|
||||
- **禁止** world-engine 替角色选行动、带角色口吻、**写或概括角色思考**。
|
||||
- **禁止** world-engine 做剧情化叙述、心理描写、规则外「合理推测」。
|
||||
- **禁止** 在行动未齐时做裁决。
|
||||
- **禁止** 调度本包以外 worker。
|
||||
- **禁止** 把未 accepted 的草稿当作已定事实。
|
||||
|
||||
---
|
||||
|
||||
## 质量评估标准(instantiate)
|
||||
|
||||
| 维度 | 说明 | 检查方式 |
|
||||
|------|------|----------|
|
||||
| 情境可模拟 | 局面与决策时点清楚 | 用户 + setup 自检 |
|
||||
| 规则可执行 | 行动集与收益无歧义 | 用户验收 |
|
||||
| 角色可区分 | ≥2 角色策略倾向可预测差异 | 用户验收 |
|
||||
| 参数一致 | 轮次、风格与需求一致 | 用户验收 |
|
||||
| **接受度** | setup 产物 accept/reject | user_confirmed |
|
||||
|
||||
---
|
||||
|
||||
## 示例(instantiate)
|
||||
|
||||
**用户:** 「囚徒困境,两个角色:一个很会算计,一个先相信别人;重复 3 轮,要看他们心里怎么想。」
|
||||
|
||||
```text
|
||||
→ 写入 用户.博弈需求
|
||||
→ run_worker(setup-scenario)
|
||||
→ 产出 情境.实验.设定 / 博弈.规则.草稿 / 博弈.参数.草稿 / 角色.A.设定 / 角色.B.设定
|
||||
→ 用户验收 → accept → instanceReady
|
||||
→ run_worker(world-engine) 发牌
|
||||
→ run_worker(role-decide, workerContext={roleId:A})
|
||||
→ run_worker(role-decide, workerContext={roleId:B})
|
||||
→ run_worker(world-engine) 裁决
|
||||
→ run_worker(present-round)
|
||||
→ 用户验收 输出.用户展示 → accept →(若还有轮次)下一轮 …
|
||||
```
|
||||
|
||||
**用户 reject:** 「B 不是相信别人,是怕冲突的老好人。」
|
||||
|
||||
```text
|
||||
→ 用户.修订说明
|
||||
→ run_worker(setup-scenario)(input 含 用户.博弈需求 + 用户.修订说明)
|
||||
→ 再次验收
|
||||
```
|
||||
Reference in New Issue
Block a user