1
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
2026-04-20 21:06:48 +08:00
parent 1c72066bab
commit 75944b1f1f
102 changed files with 9648 additions and 1540 deletions

View File

@@ -17,7 +17,7 @@
结论不是“只有一套 prompt”而是
**当前角色资产链路至少有两层 prompt且这两层在仓库里被不同文件承担**
**当前角色资产链路仍然有两层 prompt但“默认描述文本”已经统一成单一主源**
### 1.1 默认描述文本层
@@ -95,10 +95,6 @@
## 2.2 生成默认角色形象描述文本的提示词在哪
当前仓库需要分两种情况:
### 情况 A当前自定义世界资产工坊真实主链
当前资产工坊默认输入框实际使用:
- `src/prompts/customWorldRolePromptDefaults.ts`
@@ -110,34 +106,6 @@
- `role.visualDescription`
- 或回退到 `role.description`
### 情况 B仓库里保留的“默认 bundle 编译接口”
仓库里仍保留一条后端接口:
- `/api/assets/character-prompts/generate`
对应文件:
- `server-node/src/prompts/characterAssetPrompts.ts`
这条链使用:
- `CHARACTER_PROMPT_BUNDLE_SYSTEM_PROMPT`
- `buildCharacterPromptBundleUserPrompt`
它的职责是:
**让 LLM 从角色卡摘要里编译出一组默认文本 bundle。**
但当前实际问题是:
**自定义世界角色资产工坊初始化默认值,并没有走这条接口。**
因此当前状态更准确地说是:
- 仓库里有一条“LLM 编译默认文本 bundle”的保留链
- 但当前资产工坊真实初始默认值主链,走的是前端本地映射
---
## 3. 角色动作生成链路
@@ -181,17 +149,6 @@
这仍然是**默认描述文本层**,不是最终动作模型 prompt。
仓库里也保留了 LLM 编译 bundle 的接口链:
- `CHARACTER_PROMPT_BUNDLE_SYSTEM_PROMPT`
- `buildCharacterPromptBundleUserPrompt`
这条链也会生成:
- `animationPromptText`
但当前资产工坊真实初始默认值并没有实际调用它。
---
## 4. `characterAssetPrompts.ts` 里的 `visualPromptText` / `animationPromptText` 到底是什么
@@ -264,32 +221,30 @@
## 6. 冗余流程与当前问题
## 6.1 明确存在的冗余点:默认 bundle 双链并存
## 6.1 默认描述文本双链已收口
当前仓库里“默认描述文本”其实有两套来源
此前默认描述文本同时存在
### 第一套:前端本地字段映射
1. 前端本地字段映射
2. 后端 bundle 编译接口
本轮已经统一为:
- `src/prompts/customWorldRolePromptDefaults.ts`
### 第二套:后端 LLM bundle 编译接口
也就是:
- `server-node/src/prompts/characterAssetPrompts.ts`
- `/api/assets/character-prompts/generate`
**默认描述文本现在只有一条真实主源。**
问题不在于“两套都存在”,而在于
对应变化
**当前自定义世界资产工坊真实默认值只走第一套,第二套保留但没有进入当前主 UI 链。**
这意味着:
1. 从业务视角看,默认描述文本存在双份真相。
2. 从维护视角看,两个地方都在描述 `visualPromptText / animationPromptText / scenePromptText` 的生成语义。
3. 从测试视角看,后端 bundle 接口仍有测试,但 UI 主链没有使用它。
1. 不再保留后端独立的默认 bundle 编译接口。
2. 不再保留前端对应的 bundle 生成 API 壳层。
3. `server-node/src/prompts/characterAssetPrompts.ts` 只保留正式模型 prompt builder。
判断:
**这是当前最明显的冗余流程**
**默认描述文本层的双份真相已经被消除**
## 6.2 `scenePromptText` 结构存在,但当前资产工坊没有完整承接
@@ -338,13 +293,13 @@
因此它们不能算“无效代码”。
真正更接近“保留接口但未进入当前 UI 主链”的,是
真正已经被清理掉的保留链路,是此前未接入主 UI 的默认 bundle 接口
- `CHARACTER_PROMPT_BUNDLE_SYSTEM_PROMPT`
- `buildCharacterPromptBundleUserPrompt`
- `/api/assets/character-prompts/generate`
这套链路仍有测试、仍可工作,但当前不属于自定义世界资产工坊的真实默认值主链
这套链路已经不再保留在当前仓库主线中
---
@@ -352,11 +307,9 @@
如果后续要继续收口,建议按顺序处理:
1. 先明确“资产工坊默认值唯一主源”到底选前端本地映射还是后端 LLM bundle 接口
2. 如果继续保留前端本地映射为主链,则把后端 bundle 接口标注为备用 / 实验 / 非主链能力
3. 如果准备切回后端 bundle 接口为主链,则要把当前 UI 初始化逻辑真正接上,并补场景描述输入框闭环
4.`scenePromptText` 做完整承接,不要继续停留在结构存在但 UI 不消费的状态。
5. 继续保留 `packages/shared/src/prompts/qwenSprite.ts` 与工具链 prompt 分层,但在文档里强制写清“正式主链 / 工具链”边界。
1. 继续以前端本地映射作为默认描述文本唯一主源
2. `scenePromptText` 做完整承接,不要继续停留在结构存在但 UI 不消费的状态
3. 继续保留 `packages/shared/src/prompts/qwenSprite.ts` 与工具链 prompt 分层,但在文档里强制写清“正式主链 / 工具链”边界
---
@@ -376,4 +329,4 @@
一句话总结就是:
**当前角色资产系统把“默认描述文本”和“正式模型 prompt”拆成了两层这是合理的真正的问题不是有两层,而是“默认描述文本层”现在同时保留了前端本地映射和后端 LLM 编译两条链,而当前 UI 主链只用了前者,导致出现明显的冗余和认知混乱**
**当前角色资产系统把“默认描述文本”和“正式模型 prompt”拆成了两层这是合理的默认描述文本层已经统一为前端本地映射单一主源,当前剩余主要问题不再是双主源,而是 `scenePromptText` 仍未形成完整 UI 闭环**