diff --git a/src/admin/pages/MemoryV2Page.tsx b/src/admin/pages/MemoryV2Page.tsx index e21352a..51f2a19 100644 --- a/src/admin/pages/MemoryV2Page.tsx +++ b/src/admin/pages/MemoryV2Page.tsx @@ -122,6 +122,12 @@ const CAPABILITIES: Array<{ fields: [ { key: 'enabled', label: '启用组合召回', type: 'boolean' }, { key: 'episodicEnabled', label: '事件记忆', type: 'boolean' }, + { key: 'episodicMode', label: '历史会话召回模式', type: 'select', options: [ + { value: 'off', label: 'Off · 关闭' }, + { value: 'canary', label: 'Canary · 仅指定用户' }, + { value: 'active', label: 'Active · 全量' }, + ] }, + { key: 'episodicCanaryUserIds', label: '历史会话 Canary 用户 ID(逗号分隔)', type: 'text' }, { key: 'semanticEnabled', label: '语义记忆', type: 'boolean' }, { key: 'preferenceEnabled', label: '用户偏好', type: 'boolean' }, { key: 'goalEnabled', label: '活跃目标', type: 'boolean' }, @@ -346,7 +352,7 @@ function defaultConfig(): MemoryV2AdminConfig { candidateMemory: { enabled: false, mode: 'active', minImportance: '0.7', minConfidence: '0.8', maxPending: '500', persistenceEnabled: false }, runtimeControl: { agentResolveEnabled: false, agentInjectionMode: 'off', agentCanaryUserIds: '', agentResolveLimit: '3', agentResolveTimeoutMs: '1200', promotionEnabled: false, compactionV2Enabled: false, reflectionEnabled: false, lifecycleWorkerEnabled: false, lifecycleRolloutMode: 'off', lifecycleRolloutUserIds: '' }, policy: { enabled: false, saveExplicit: true, rejectSensitive: true, requireEvidence: true, retentionDays: '365' }, - retriever: { enabled: false, episodicEnabled: true, semanticEnabled: true, preferenceEnabled: true, goalEnabled: true, limit: '12', tokenBudget: '1800', timeoutMs: '1200' }, + retriever: { enabled: false, episodicEnabled: true, episodicMode: 'off', episodicCanaryUserIds: '', semanticEnabled: true, preferenceEnabled: true, goalEnabled: true, limit: '12', tokenBudget: '1800', timeoutMs: '1200' }, lifecycle: { enabled: false, dedupeEnabled: true, conflictReview: true, decayEnabled: false, forgettingEnabled: true, compactIntervalHours: '24' }, persona: { enabled: false, provider: 'none', shadowMode: true, maxTokens: '400', cacheTtlSeconds: '300' }, graph: { enabled: false, provider: 'postgres', maxDepth: '2', relationLimit: '20' },