Skip to content

[Feature] AI 分析局限于单个会话,无法跨会话分析或对比 #379

Description

@Ruoan-486

描述

ChatLab 的 AI 分析/对话上下文严格局限于单个会话(session),无法跨会话分析或多会话对比。用户在和某个会话对话时,偶尔想引用、对比、综合分析其他会话的内容,目前做不到。

现状(源码依据)

  • AI 对话(AIChat)的数据结构只有一个 sessionId 字段(packages/node-runtime/src/ai/chats.ts),createAIChat(sessionId) / getAIChats(sessionId) 都绑定单会话;forkAIChat 也是继承同一个 source.sessionId
  • 语义检索工具按「当前会话」按需暴露:context.semanticIndexService.canSearch(context.sessionId)apps/desktop/main/ai/tools/index.ts 注释:仅当前会话可检索时追加)。
  • 未发现任何 multi-session / cross-session 的上下文组装逻辑。

期望场景

  1. 对话中可引用另一个会话的内容回答(如"我和 A 关于 X 是怎么聊的?")。
  2. 跨会话对比/汇总(如"A 和 B 两个会话里,对某件事的态度有什么不同?")。
  3. 可选:一次对话挂多个数据源(多会话),并在对话列表中标明。

关于实现难度(客观说明)

现有数据层、语义检索(semantic-index)、chat context 都是围绕单 sessionId 设计的,改为多会话需要同时调整:上下文数据源、语义检索(canSearch 支持多会话)、对话绑定关系(AIChat 的 sessionId → 多会话关联)。有一定改造量,但语义检索能力(embedding)本身已具备,跨会话检索比跨会话"聊天记录全文"更可行,建议优先支持基于语义检索的跨会话问答。

建议

  1. AIChat 增加可选的"关联会话集合"(sessionIds),默认仍为单个当前会话,不破坏现有行为。
  2. 对话时把关联会话纳入语义检索范围(semanticSearch 支持多个 dbPathHash)。
  3. UI 提供"添加关联会话/跨会话分析"入口。

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions