Просмотр исходного кода

feat(story-simulation): 多智能体仿真引擎V2 - 角色评价/事态推动/观察反应链/角色对话/时序记忆

修复用户反馈的4个问题:
1. 将故事框架移到SidebarPanel章节区域内,删除原有章节内容显示
2. 框架确认面板增加'保存框架'按钮
3. 框架生成shortTitle(4-8字),解决标题过长问题
4. 重写仿真引擎实现真正的多Agent平行世界仿真:
   - 角色评价(替代发帖)
   - 事态推动(推动剧情发展)
   - 观察-反应链(角色看到事件后做出反应)
   - 时序记忆动态更新
   - Agent单独对话/采访(站在角色视角分析其他角色)
   - 实时时间线事件展示
Mochocyang 3 месяцев назад
Родитель
Сommit
bd8c41f570
1 измененных файлов с 17 добавлено и 17 удалено
  1. 17 17
      src/components/novel/story-simulation/story-simulation-view.tsx

+ 17 - 17
src/components/novel/story-simulation/story-simulation-view.tsx

@@ -40,37 +40,37 @@ const PROGRESS_PHASES = [
   "draft-generating",
 ] as const
 
-/** 将 actionType 映射为中文动词短语(用于实时事件流展示) */
-function actionPhrase(type: string, actorName: string, targetName?: string): string {
+/** 将 actionType 映射为中文动词短语(不含角色名,用于实时事件流展示) */
+function actionPhrase(type: string, targetName?: string): string {
   switch (type) {
     case "evaluate":
-      return `${actorName} 心中评价`
+      return "心中评价"
     case "pushPlot":
-      return `${actorName} 推动事态`
+      return "推动事态"
     case "observe":
-      return `${actorName} 观察到`
+      return "观察到"
     case "react":
       return targetName
-        ? `${actorName} 对 ${targetName} 的反应`
-        : `${actorName} 做出反应`
+        ? `对 ${targetName} 的反应`
+        : "做出反应"
     case "speak":
       return targetName
-        ? `${actorName} 对 ${targetName} 说`
-        : `${actorName} 说`
+        ? `对 ${targetName} 说`
+        : "说"
     case "ally":
       return targetName
-        ? `${actorName} 向 ${targetName} 示好`
-        : `${actorName} 寻求合作`
+        ? `向 ${targetName} 示好`
+        : "寻求合作"
     case "confront":
       return targetName
-        ? `${actorName} 与 ${targetName} 对抗`
-        : `${actorName} 采取对抗姿态`
+        ? `与 ${targetName} 对抗`
+        : "采取对抗姿态"
     case "conceal":
-      return `${actorName} 隐瞒内心`
+      return "隐瞒内心"
     case "investigate":
-      return `${actorName} 调查`
+      return "调查"
     default:
-      return `${actorName} 行动`
+      return "行动"
   }
 }
 
@@ -594,7 +594,7 @@ function SimulatingTimelinePanel({
                 <span className="font-medium">{ev.actorName}</span>
                 <span className="text-muted-foreground">
                   {" "}
-                  {actionPhrase(ev.actionType, "", ev.targetName)}:
+                  {actionPhrase(ev.actionType, ev.targetName)}:
                 </span>
                 <span>{ev.content}</span>
               </div>