Files
Genarrative/docs/technical/EXPRESS_BACKEND_TASK4_AI_ORCHESTRATION_STATUS_2026-04-08.md
2026-04-10 15:37:02 +08:00

3.8 KiB
Raw Blame History

Express 后端任务 4 AI 编排收口状态2026-04-08

1. 结论

EXPRESS_BACKEND_PARALLEL_WORKSTREAM_PLAN_2026-04-08.md 的任务 4 定义,本轮已经把正式运行时的 story / character chat / npc chat / custom world generation / quest intent / runtime item intent 的主要 AI 编排入口收回到 Express 后端。

当前可以视为:

  • 正式运行时主链已不再依赖浏览器端大体量 AI 实现作为兜底。
  • prompt 组装、上游模型请求、SSE 转发已以后端为主。
  • 前端保留的本地 AI 大模块只通过懒加载方式服务于非正式运行时遗留入口,不再作为正式运行时默认路径。

2. 已完成项

2.1 后端统一 orchestration 入口

  • server-node/src/modules/ai/storyOrchestrator.ts
  • server-node/src/modules/ai/chatOrchestrator.ts
  • server-node/src/modules/ai/customWorldOrchestrator.ts

这些模块承接:

  • story prompt 组装
  • character chat prompt 组装
  • npc chat / recruit prompt 组装
  • custom world generation 后端入口封装

2.2 服务层收口

已收口到后端服务或模块的文件:

  • server-node/src/services/llmClient.ts
  • server-node/src/services/storyService.ts
  • server-node/src/services/chatService.ts
  • server-node/src/services/customWorldGenerationService.ts
  • server-node/src/services/questService.ts
  • server-node/src/services/runtimeItemService.ts

2.3 前端正式运行时 fallback 清理

src/services/aiService.ts 已完成以下收缩:

  • story 正式路径不再 fallback 到浏览器本地 AI 编排
  • character suggestions / summary / reply stream 不再 fallback 到浏览器本地 AI 编排
  • npc dialogue / recruit stream 不再 fallback 到浏览器本地 AI 编排
  • 移除了正式运行时对 VITE_ENABLE_BROWSER_RUNTIME_AI_FALLBACK 的依赖
  • 移除了正式运行时对本地轻量离线文案 fallback 的默认依赖
  • ./ai 的引用改为懒加载,避免正式运行时默认把大体量 AI 模块打进主路径
  • 正式运行时主流程 hook 已统一改走 aiService,不再直接从 src/services/ai.ts 获取 story/chat 主链能力

2.4 旧 bridge 清理

已移除:

  • server-node/src/bridges/legacyAiRuntimeBridge.ts

3. 当前边界说明

以下项仍然存在于前端目录,但不再属于正式运行时默认 AI 执行路径:

  • src/services/ai.ts
  • src/services/aiFallbacks.ts
  • src/components/CustomWorldEntityEditorModal.tsx 中的工具链直连调用

它们当前主要作为:

  • 兼容性遗留实现
  • 懒加载的非主路径工具能力
  • 非本轮正式运行时链路的复用来源

这不再构成任务 4 的主阻塞,但后续仍应继续配合任务 1 / 任务 7 做彻底分层。


4. 非任务 4 主阻塞但需要记录的事项

4.1 仍属编辑器/工具链范畴的遗留调用

  • generateCustomWorldSceneImage 仍通过懒加载复用旧实现。

原因:

  • 该能力属于自定义世界工具链,不是正式运行时剧情 / 对话主链。
  • 当前不会再影响“浏览器正式运行时是否依赖本地大 AI 编排”这一任务 4 验收项。

4.2 分层彻底闭合仍需后续任务配合

尽管任务 4 已完成主链收口,但以下更深层收敛仍建议交由后续任务继续推进:

  • 继续减少 server-nodesrc/** 纯提示词/纯规则模块的历史复用
  • 继续把共享 contract / schema 下沉到 packages/shared
  • 继续把工具链与正式运行时拆分

这些属于任务 1、任务 7、任务 8 的后续工作,不再阻塞任务 4 验收。


5. 本轮建议验收口径

任务 4 可按以下口径验收:

  • 浏览器正式运行时不再默认兜底到本地大体量 AI 编排
  • story/chat/custom world generation 主链 prompt 组装与请求执行权在后端
  • SSE 主链以后端转发为准
  • upstream timeout / abort / error 统一走后端处理链