描述
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 的上下文组装逻辑。
期望场景
- 对话中可引用另一个会话的内容回答(如"我和 A 关于 X 是怎么聊的?")。
- 可跨会话对比/汇总(如"A 和 B 两个会话里,对某件事的态度有什么不同?")。
- 可选:一次对话挂多个数据源(多会话),并在对话列表中标明。
关于实现难度(客观说明)
现有数据层、语义检索(semantic-index)、chat context 都是围绕单 sessionId 设计的,改为多会话需要同时调整:上下文数据源、语义检索(canSearch 支持多会话)、对话绑定关系(AIChat 的 sessionId → 多会话关联)。有一定改造量,但语义检索能力(embedding)本身已具备,跨会话检索比跨会话"聊天记录全文"更可行,建议优先支持基于语义检索的跨会话问答。
建议
- AIChat 增加可选的"关联会话集合"(
sessionIds),默认仍为单个当前会话,不破坏现有行为。
- 对话时把关联会话纳入语义检索范围(
semanticSearch 支持多个 dbPathHash)。
- UI 提供"添加关联会话/跨会话分析"入口。
描述
ChatLab 的 AI 分析/对话上下文严格局限于单个会话(session),无法跨会话分析或多会话对比。用户在和某个会话对话时,偶尔想引用、对比、综合分析其他会话的内容,目前做不到。
现状(源码依据)
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注释:仅当前会话可检索时追加)。期望场景
关于实现难度(客观说明)
现有数据层、语义检索(
semantic-index)、chat context 都是围绕单sessionId设计的,改为多会话需要同时调整:上下文数据源、语义检索(canSearch支持多会话)、对话绑定关系(AIChat 的sessionId→ 多会话关联)。有一定改造量,但语义检索能力(embedding)本身已具备,跨会话检索比跨会话"聊天记录全文"更可行,建议优先支持基于语义检索的跨会话问答。建议
sessionIds),默认仍为单个当前会话,不破坏现有行为。semanticSearch支持多个dbPathHash)。