Initial commit

This commit is contained in:
2026-07-10 08:31:27 +08:00
commit 2b74c30d36
134 changed files with 21801 additions and 0 deletions

View File

@@ -0,0 +1,164 @@
# 角色扮演博弈 · 共享上下文
本文件由 Runtime 注入 **本包所有 worker**;总管不读。
设计方法见 `docs/skill-design-guide.md`(抽象循环 → 上下文分层 → 倒推标签)。
---
## 定位
**角色扮演博弈** = 在简单、类思想实验的博弈处境下,让多个 **有鲜明策略倾向的角色** 各自决策,观察互动结果。
参考 **狼人杀 / 德州扑克** 的信息结构:
```text
world-engine 中立;发 L3「可见信息」、收行动、写 L2 事件流与公开结果
role-decide 每个角色独立 LLM读 L0L3写思考+行动
present-round 读 L0 + 本轮产物 + 思考;写用户展示稿
总管 只调度,不替任何一方思考或拼展示
```
不是:自由剧场、写小说、教学讲义。
是:结构化情境 + 明确规则 + **信息隔离** 的多角色决策模拟。
---
## 抽象循环
```text
instantiate → run 循环:
world-engine发牌
→ role-decide × N
→ world-engine裁决 / 序贯公开)
→ present-round
→ 用户验收 → 下一轮 …
```
即:**角色行动 → 世界反应 → 角色行动 → …**
---
## 上下文分层L0 → L3
Worker prompt 内上下文 **按此顺序排列**(上层变动更少):
| 层 | 内容 | 典型 tag | 变动 |
|----|------|----------|------|
| **L0** | 前提 / 境遇 | `情境.实验.设定`、本 shared-context | 实例化后不变 |
| **L1** | 人设 | `角色.{id}.设定` | 极少改 |
| **L2** | 历史记忆 | `运行.事件流` | 每轮 **追加**,不整段重写 |
| **L3** | 本轮看见 | `角色.{id}.可见信息``场景.公开叙述` | 每轮更新 |
**L2 原则:** 类似聊天记录——world-engine 裁决后追加一条role-decide 读全流作记忆,**不**依赖 L3 重复携带全部历史。
---
## 三实体 + 展示
| 实体 | worker | 读 | 写 |
|------|--------|-----|-----|
| 角色 A…N | role-decide | L0 情境、L1 本人设定、L2 事件流、L3 可见+公开、参数 | `.思考`(仅用户)、`.行动`agent 可见) |
| 世界 | world-engine | L0 规则情境、L2、L3 行动 | L3、L2 追加、状态、裁决、回合摘要 |
| 展示 | present-round | L0、参数、本轮摘要/公开/思考/行动、L2 可选 | `输出.用户展示` |
| 总管 | — | tag 索引 | 调度 |
## 两层输出(角色)
| 层 | tag | 用户 | 其他 role-decide | world-engine |
|----|-----|------|------------------|--------------|
| **思考** | `角色.{id}.思考` | ✅ | ❌ | ❌ |
| **行动** | `角色.{id}.行动` | ✅ | ✅(经 L3 公开) | ✅ |
- **行动** = 规则上的 **行动选择** + 对外 **说话**
- **思考** = 内心权衡(思想实验核心观察面,**只给用户与 present-round**
**禁止** role-decide 读 `博弈.规则.草稿` 全文(不对称信息由 world-engine 裁进 L3
**禁止** world-engine 读/写 `.思考` 或做剧情化推演。
**禁止** role-decide 读其他角色的 `.思考``.行动` 原文(仅 L3
---
## 经典情境参考worker 可引用)
| 情境 | 核心张力 | 典型角色分化 |
|------|----------|--------------|
| 囚徒困境 | 个体理性 vs 集体最优 | 算计者、互惠者、怀疑者 |
| 最后通牒 | 公平 vs 收益最大化 | 公平敏感、冷酷最大化、面子型 |
| 公共池 | 短期私益 vs 长期共益 | 搭便车、规范执行、观望 |
| 信任游戏 | 风险与回报 | 冒险信任、条件合作、防御 |
自定义须写清 **行动集合****收益随组合变化**(自然语言即可)。
---
## 角色设定原则L1
每个 `角色.{id}.设定` 须含:称呼、策略倾向、信息立场、行为边界。
**禁止** 空泛人设而无决策含义。
---
## 规则表述原则
`博弈.规则.草稿` 须让 **world-engine** 能回答:决策时点、合法行动、收益映射、信息对称性、多轮衔接。
---
## 决策顺序
写入 `博弈.参数.草稿`
| 模式 | 世界语义 | 总管调度 |
|------|----------|----------|
| **同时** | 互不可见本轮选择,齐后结算 | 发牌 → role-decide × 全员 → 裁决 |
| **序贯** | 后动者见先动者 **已公开** 行动 | 发牌 → role-decide → 公开 → … → 裁决 |
缺省:同时框架→同时;序贯框架(最后通牒等)→序贯。
---
## 输出风格
**world-engine 不受风格影响**——始终客观事实。
| 模式 | role-decide | present-round |
|------|-------------|---------------|
| 分析报告 | 思考简短 | 表格化、少戏剧 |
| 角色内心 | 完整 `.思考` | 思考段完整 |
| 戏剧化 | `.行动.说话` 可带台词 | 可润色 **已公开** 言行 |
默认:展示思考 + 简短客观摘要。
---
## Book
- **确认稿**(情境、规则、角色设定等)跨 Session 复用,见 orchestrator `loadFromBook`
- **实例快照**`kind: instance`):实例化完成后的 **对象**(情境、规则、角色设定),不含轮次进度;见 `docs/run-snapshot.md`
- **运行存档**`kind: run`run 中某一时刻的完整进度。
---
## 单轮流程run
### 同时决策
```text
world-engine发牌→ L3
role-decide × 全员 → .思考 + .行动
world-engine裁决→ L2 追加、L3、摘要
present-round → 输出.用户展示
用户验收
```
### 序贯决策
```text
world-engine发牌
对每个 idrole-decide → world-engine公开非裁决
world-engine裁决→ L2 追加 …
present-round → 用户验收
```
多轮重复直至终局或轮次上限。