--- import DocsLayout from '../../../layouts/DocsLayout.astro'; ---

会话管理 (Session Management)

✅ 已完成 - 三层存储架构已实现

完整的会话管理系统,包括消息存储、自动保存、上下文压缩等功能。代码位于 packages/core/src/session/packages/core/src/context/

已实现功能

设计方案

类型定义

export interface ChatMessage {
  id: string;
  timestamp: Date;
  role: 'user' | 'assistant' | 'system';
  content: string;
  metadata?: {
    model?: string;
    tokens?: number;
    toolCalls?: ToolCall[];
    editedFiles?: string[];
  };
}

export interface ChatSession {
  id: string;
  startTime: Date;
  endTime?: Date;
  messages: ChatMessage[];
  workdir: string;
  summary?: string;
}

历史管理器

export class ChatHistoryManager {
  startSession(workdir: string): ChatSession;
  addMessage(message: ChatMessage): void;
  getContext(tokenBudget: number): ChatMessage[];
  search(query: string): SearchResult[];
  restoreSession(sessionId: string): ChatSession | null;
  save(): Promise<void>;
  load(): Promise<void>;
}

配置示例

# .ai-assistant.yml
history:
  enabled: true
  saveDir: .ai-assistant/history
  maxSessions: 100
  maxMessagesPerSession: 1000
  autoSave: true
  saveInterval: 5000
  exportFormat: markdown
  contextTokenBudget: 50000

模块结构

模块位置功能
SessionManagersession/manager.ts会话管理,消息存储,项目管理
SessionStoragesession/storage/三层存储结构,持久化存储
MessageConvertersession/message-converter.ts消息格式转换,API 格式适配
Parts Systemsession/parts.ts消息片段系统(Text、Tool、Reasoning 等)
CompressionManagercontext/manager.ts上下文压缩管理
TokenCountercontext/token-counter.tsToken 计数工具
Prunecontext/prune.ts消息清理策略
Compactioncontext/compaction.ts消息压缩策略

待完善功能