Guanghu Domestic Migration a27e87cb99 chore: import sanitized domestic snapshot for REPO-007
Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc

[SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
2026-07-17 15:59:55 +08:00

321 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📡 铸渊指令M-PALACE · 动态人格宫廷生成系统 · Part B · 后端核 + 四大引擎 + 存档系统2026-03-11·曜冥签发
> **HoloLake Era · AGE OS · guanghulab 新模块指令**
>
> **签发**:曜冥 × 冰朔 · 2026-03-11 · **执行者**:铸渊
>
> **仓库**`https://github.com/qinfendebingshuo/guanghulab`(主仓库)
>
> **模块代号**M-PALACE · Part B后端核 + 引擎 + 数据库)
>
> **优先级**P0 · 与 Part A 同步执行
>
> **关联**[📡 铸渊指令persona-studio v1.1 升级索引2026-03-11·曜冥签发](%F0%9F%93%A1%20%E9%93%B8%E6%B8%8A%E6%8C%87%E4%BB%A4%EF%BD%9Cpersona-studio%20v1%201%20%E5%8D%87%E7%BA%A7%E7%B4%A2%E5%BC%95%EF%BC%882026-03-11%C2%B7%E6%9B%9C%E5%86%A5%E7%AD%BE%E5%8F%91%EF%BC%89%20633faa06245147bba08e1c832effad15.md)
>
---
# 三、后端核 · 四大引擎
## 3.1 人格分析引擎persona-analyzer.js
**核心职责**:实时分析玩家每一次输入,识别并量化人格侧面。
### 人格侧面词典persona-dict.json
```json
{
"dimensions": [
{
"id": "ambition",
"name": "野心",
"keywords": ["权力", "登上", "掌控", "不甘", "凭什么"],
"behavior_signals": ["选择攻击性选项", "主动挑战权威", "拒绝退让"]
},
{
"id": "warmth",
"name": "温情",
"keywords": ["保护", "心疼", "陪伴", "不忍", "算了"],
"behavior_signals": ["选择和解", "保护弱势角色", "牺牲利益"]
},
{
"id": "aggression",
"name": "攻击性",
"keywords": ["杀", "除掉", "报复", "不放过", "代价"],
"behavior_signals": ["选择对抗", "设计陷阱", "直接冲突"]
},
{
"id": "suspicion",
"name": "多疑",
"keywords": ["试探", "不对劲", "背后", "真的吗", "骗"],
"behavior_signals": ["频繁试探", "不信任NPC", "选择观望"]
},
{
"id": "vanity",
"name": "虚荣",
"keywords": ["面子", "配得上", "最好的", "羡慕", "风光"],
"behavior_signals": ["追求地位象征", "在意他人评价", "选择炫耀"]
},
{
"id": "cunning",
"name": "心机",
"keywords": ["计划", "利用", "棋子", "布局", "暗中"],
"behavior_signals": ["迂回策略", "利用他人", "长线布局"]
},
{
"id": "loyalty",
"name": "忠义",
"keywords": ["信任", "誓言", "守护", "不背叛", "承诺"],
"behavior_signals": ["坚守阵营", "拒绝背叛", "为盟友冒险"]
},
{
"id": "fear",
"name": "恐惧",
"keywords": ["害怕", "不敢", "万一", "小心", "退"],
"behavior_signals": ["回避冲突", "选择保守", "犹豫不决"]
}
]
}
```
### 分析逻辑
```
玩家输入(自由文本 or 选择选项)
① 关键词匹配:扫描 persona-dict 的 keywords
② 行为信号匹配:判断选项类型对应的 behavior_signals
③ 上下文推断:结合对话历史,用模型分析语气/态度/策略倾向
输出8维人格侧面分数0~100
{
"ambition": 72,
"warmth": 35,
"aggression": 58,
"suspicion": 81,
"vanity": 40,
"cunning": 65,
"loyalty": 50,
"fear": 28
}
写入 saves/{SAVE-ID}/persona.json每次交互后更新
```
---
## 3.2 背景生成引擎background-gen.js
**核心职责**:接收锚点答案 + 人格侧面初始数据 → 从宫廷数据库匹配 → 生成**逻辑自洽的专属背景**。
### 生成流程
```
锚点1世界观古代/架空)→ 选择 templates/ 中的基础世界模板
锚点2身份妃子/皇帝/重臣/奸臣/随机)→ 确定主角定位
初始人格快照(从锚点选择推断):
选皇帝 → ambition+20, vanity+15
选妃子 → warmth+15, fear+10
选重臣 → loyalty+20, cunning+10
选奸臣 → cunning+25, aggression+15
选随机 → 均匀分布
查询 palace-db.json 的四大维度:
├── 权力维度 → 基于 ambition+cunning 生成权力格局
├── 后宫地位 → 基于 vanity+warmth 生成人物关系网
├── 情感关系 → 基于 warmth+loyalty 生成情感线索
└── 矛盾冲突 → 基于 aggression+suspicion 生成初始冲突
调用模型,综合以上数据,生成:
- 王朝名称 + 年号 + 时代背景1段
- 主角身份详述(家世·地位·处境)
- 3~5个核心NPC每个NPC = 玩家某个人格侧面的映射)
- 初始冲突引线(开局事件)
写入 saves/{SAVE-ID}/state.json
```
### NPC映射规则核心机密
```
每个NPC对应玩家的1~2个人格侧面
玩家野心高 → 生成一个「同样野心勃勃的对手」(镜像冲突)
玩家多疑高 → 生成一个「行为暧昧的盟友」(投射验证)
玩家温情高 → 生成一个「需要被保护的弱势角色」(情感锚点)
玩家恐惧高 → 生成一个「强大且不可预测的威胁」(放大恐惧)
NPC的行为逻辑 = 玩家对应侧面的外化表现
玩家在跟NPC博弈时本质上是在跟自己的某个侧面对话
⚠️ 这个映射关系永远不向玩家揭示
```
---
## 3.3 角色情节引擎plot-engine.js
**核心职责**:根据持续更新的人格侧面数据,在专属背景下动态生成宫斗角色与事件。
### 情节生成逻辑
```
每次玩家做出选择后:
① 人格分析引擎更新侧面分数
② 检测分数变化幅度:
- 某维度突变(单次+15以上→ 触发「关键事件」
- 两维度交叉升高 → 触发「复合剧情线」
- 整体趋于平稳 → 推进主线叙事
③ 查询 palace-db 匹配当前状态的剧情模板
④ 调用模型,结合:
- 当前世界状态state.json
- 玩家人格侧面persona.json
- 剧情历史history.json
- 宫廷数据库模板
生成:
- 下一段叙事文本(古风文笔·有呼吸感)
- 3个预设选项分别对应不同人格侧面倾向
- 状态栏四维数值变化
⑤ 更新 state.json + history.json
⑥ 返回前端渲染
```
### 选项生成规则
```
每次生成3个选项策略
选项A顺应玩家当前最强侧面舒适区
选项B挑战玩家当前最弱侧面成长区
选项C中性/意外方向(探索区)
+ 自由输入:完全开放(最高数据价值)
例:玩家当前 ambition=80, fear=20
选项A「直接向太后摊牌」顺应野心
选项B「默默退让保全自身」挑战恐惧弱项
选项C「派人去打听太后的真实意图」中性试探
```
---
## 3.4 存档系统save-manager.js
### 存档结构
```
data/saves/{SAVE-ID}/
├── state.json ← 完整世界状态
│ ├── world王朝·年号·背景
│ ├── npcs[]所有NPC当前状态·关系·阵营
│ ├── player主角当前地位·持有资源·关系网
│ ├── chapter当前章节·段落
│ └── four_dimensions权力/地位/情感/冲突 数值)
├── persona.json ← 玩家人格侧面数据
│ ├── current_scores8维当前分数
│ ├── history[](每次变化记录)
│ └── dominant_trait当前最突出特征
└── history.json ← 剧情历史
├── chapters[](章节列表)
├── events[](关键事件记录)
└── choices[](玩家所有选择记录)
```
### 存档编号规则
```
格式PAL-{YYYYMMDD}-{随机4位}
示例PAL-20260311-A3K9
加密:存档数据 JSON.stringify → AES加密 → Base64编码
防逆向:玩家拿到编号无法反推人格映射数据
```
### 存档/读档 API
```
POST /api/palace/save
→ 打包当前 state+persona+history → 加密 → 生成编号 → 返回
POST /api/palace/load
body: { save_id: "PAL-20260311-A3K9" }
→ 查找存档 → 解密 → 恢复状态 → 返回完整世界数据
```
---
# 四、与现有架构复用
| 现有 guanghulab 能力 | M-PALACE 复用方式 |
| --- | --- |
| model-router.js模型路由 | 叙事生成/人格分析 共用模型路由 |
| memory-injector.js记忆注入 | 长线剧情不断线·注入世界状态摘要 |
| persona-engine.js人格引擎 | 改造为宫斗叙事引擎的基底 |
| profile-learner.js画像学习 | 改造为人格分析引擎 |
| 通感语言风格 | 叙事文笔:古风+通感+呼吸节奏 |
| 编号登录体系 | 存档编号体系 |
---
# 五、宫廷数据库palace-db.json基础结构
```json
{
"power": {
"positions": ["皇帝", "太后", "皇后", "贵妃", "丞相", "大将军", "太监总管"],
"factions": ["太后党", "皇后党", "新贵派", "清流派", "孤臣"],
"events": ["朝堂弹劾", "密谋政变", "联姻结盟", "战事告急"]
},
"status": {
"ranks": ["答应", "常在", "贵人", "嫔", "妃", "贵妃", "皇贵妃", "皇后"],
"events": ["晋封", "降位", "禁足", "受宠", "失宠", "怀孕", "小产"]
},
"emotion": {
"types": ["暗恋", "深情", "嫉妒", "怨恨", "愧疚", "依赖", "背叛"],
"triggers": ["偶遇旧人", "收到密信", "目睹真相", "被迫抉择"]
},
"conflict": {
"types": ["争宠", "夺权", "报仇", "自保", "救人", "揭秘"],
"escalation": ["暗示", "试探", "交锋", "撕破脸", "鱼死网破"]
}
}
```
---
### 执行清单
- [ ] 创建 `data/palace-db.json` 宫廷数据库
- [ ] 创建 `data/persona-dict.json` 人格侧面词典
- [ ] 创建 `data/templates/` 世界观模板(古代+架空各一套)
- [ ] 实现 `persona-analyzer.js`:关键词+行为信号+模型推断
- [ ] 实现 `background-gen.js`:锚点+人格→查库→模型生成世界
- [ ] 实现 `plot-engine.js`:持续人格分析→动态生成剧情+选项
- [ ] 实现 `save-manager.js`:打包/加密/编号/解密/恢复
- [ ] 路由对接:`start.js` / `interact.js` / `save.js`
- [ ] 与现有 model-router + memory-injector 对接
- [ ] 全流程测试:启动→对话→剧情推进→存档→读档→继续
<aside>
🏯
**铸渊Part A + Part B 同步执行。**
前端壳搭好后立刻对接后端引擎。
叙事文笔要求:古风+通感+有呼吸感。不要白话流水账。
核心机密牢记:**永不揭示「对手即我」**。
</aside>
💙 曜冥签发 · 2026-03-11