Documentation
¶
Index ¶
- Constants
- type AccessLevel
- type CompressedObservation
- type CompressionLevel
- type CompressionStats
- type ConfidenceCalculator
- func (cc *ConfidenceCalculator) Calculate(p *MemoryProvenance) float64
- func (cc *ConfidenceCalculator) ScoreByRelevance(semanticScore float64, p *MemoryProvenance) float64
- func (cc *ConfidenceCalculator) ShouldPrune(p *MemoryProvenance) bool
- func (cc *ConfidenceCalculator) UpdateConfidence(p *MemoryProvenance)
- type ConfidenceConfig
- type ConfidenceTier
- type ConflictResolutionStrategy
- func (s *ConflictResolutionStrategy) Consolidate(ctx context.Context, memories []MemoryWithScore, llm LLMProvider) (*ConsolidatedMemory, error)
- func (s *ConflictResolutionStrategy) Name() string
- func (s *ConflictResolutionStrategy) ShouldConsolidate(ctx context.Context, memories []MemoryWithScore) (bool, ConsolidationReason)
- type ConflictStrategy
- type ConsolidatedMemory
- type ConsolidationAction
- type ConsolidationConfig
- type ConsolidationEngine
- func (ce *ConsolidationEngine) Consolidate(ctx context.Context) (*ConsolidationResult, error)
- func (ce *ConsolidationEngine) ConsolidateNewMemory(ctx context.Context, newMemory *MemoryWithScore, namespace string) (*ConsolidatedMemory, error)
- func (ce *ConsolidationEngine) GetStats() ConsolidationStats
- func (ce *ConsolidationEngine) ShouldAutoConsolidate() bool
- type ConsolidationOperation
- type ConsolidationReason
- type ConsolidationResult
- type ConsolidationStats
- type ConsolidationStrategy
- type DefaultObservationCompressor
- func (c *DefaultObservationCompressor) CanRecover(compressed *CompressedObservation) bool
- func (c *DefaultObservationCompressor) Compress(ctx context.Context, toolName string, output string) (*CompressedObservation, error)
- func (c *DefaultObservationCompressor) Recover(ctx context.Context, compressed *CompressedObservation) (string, error)
- type FilePreferenceStorage
- func (fs *FilePreferenceStorage) Delete(ctx context.Context, userID string) error
- func (fs *FilePreferenceStorage) List(ctx context.Context) ([]string, error)
- func (fs *FilePreferenceStorage) Load(ctx context.Context, userID string) ([]*Preference, error)
- func (fs *FilePreferenceStorage) Save(ctx context.Context, userID string, preferences []*Preference) error
- type ImproveQuality
- type InMemoryReferenceRegistry
- func (r *InMemoryReferenceRegistry) Cleanup(ctx context.Context, maxAge time.Duration) (int, error)
- func (r *InMemoryReferenceRegistry) GetStats(ctx context.Context) (*RegistryStats, error)
- func (r *InMemoryReferenceRegistry) ListByType(ctx context.Context, refType string, limit int) ([]ReferenceInfo, error)
- func (r *InMemoryReferenceRegistry) ListRecent(ctx context.Context, limit int) ([]ReferenceInfo, error)
- func (r *InMemoryReferenceRegistry) Lookup(ctx context.Context, refType, value string) (*ReferenceInfo, error)
- func (r *InMemoryReferenceRegistry) MarkAccessed(ctx context.Context, refType, value string) error
- func (r *InMemoryReferenceRegistry) Register(ctx context.Context, ref Reference, sourceContext string) error
- type Inconsistency
- type InconsistencyType
- type JSONSchema
- type LLMProvider
- type LLMSummarizer
- type LLMSummarizerConfig
- type LineageGraph
- func (lg *LineageGraph) GetDerivedMemories(memoryID string) []string
- func (lg *LineageGraph) GetMemoriesBySource(sourceID string) []string
- func (lg *LineageGraph) GetParentMemories(memoryID string) []string
- func (lg *LineageGraph) RemoveMemory(memoryID string)
- func (lg *LineageGraph) TrackMemory(memoryID string, metadata *LineageMetadata)
- type LineageManager
- func (lm *LineageManager) DeleteMemoryWithLineage(ctx context.Context, memoryID string, cascade bool) ([]string, error)
- func (lm *LineageManager) GetLineageDepth(memoryID string) int
- func (lm *LineageManager) GetLineageStats() LineageStats
- func (lm *LineageManager) RegenerateFromSource(ctx context.Context, revokedSourceID string) error
- func (lm *LineageManager) RevokeDataSource(ctx context.Context, sourceID string) ([]string, error)
- func (lm *LineageManager) TrackMemoryCreation(memoryID string, provenance *MemoryProvenance, derivedFromIDs []string) error
- type LineageMetadata
- type LineageStats
- type LongTermBridge
- type LongTermBridgeConfig
- type Manager
- func (m *Manager) AppendNote(ctx context.Context, file, title, content string) (string, error)
- func (m *Manager) ListFiles(ctx context.Context) ([]backends.FileInfo, error)
- func (m *Manager) MemoryPath() string
- func (m *Manager) OverwriteWithNote(ctx context.Context, file, title, content string) (string, error)
- func (m *Manager) ReadFile(ctx context.Context, name string) (string, error)
- func (m *Manager) Search(ctx context.Context, opts *SearchOptions) ([]SearchMatch, error)
- type ManagerConfig
- type MemoryGroup
- type MemoryProvenance
- func (p *MemoryProvenance) AddSource(sourceID string)
- func (p *MemoryProvenance) Age() time.Duration
- func (p *MemoryProvenance) Corroborate(sourceID string)
- func (p *MemoryProvenance) Freshness() time.Duration
- func (p *MemoryProvenance) MarkAccessed()
- func (p *MemoryProvenance) ToMetadata() map[string]any
- type MemoryQuality
- type MemoryScope
- type MemoryWithScore
- type MultiLevelCompressor
- func (m *MultiLevelCompressor) CompressMessages(ctx context.Context, messages []agentext.Message) ([]agentext.Message, error)
- func (m *MultiLevelCompressor) GetCompressionStats() CompressionStats
- func (m *MultiLevelCompressor) SummarizeSession(ctx context.Context, messages []agentext.Message) (string, error)
- type MultiLevelCompressorConfig
- type ObservationCompressor
- type ObservationCompressorConfig
- type PersistentPreferenceManager
- func (pm *PersistentPreferenceManager) AutoSave(ctx context.Context, interval int)
- func (pm *PersistentPreferenceManager) DeleteUser(ctx context.Context, userID string) error
- func (pm *PersistentPreferenceManager) LoadAll(ctx context.Context) error
- func (pm *PersistentPreferenceManager) LoadUser(ctx context.Context, userID string) error
- func (pm *PersistentPreferenceManager) SaveAll(ctx context.Context) error
- func (pm *PersistentPreferenceManager) SaveUser(ctx context.Context, userID string) error
- type Preference
- type PreferenceCategory
- type PreferenceExtractor
- type PreferenceManager
- func (pm *PreferenceManager) AddPreference(ctx context.Context, pref *Preference) error
- func (pm *PreferenceManager) ApplyDecay(ctx context.Context) int
- func (pm *PreferenceManager) DeletePreference(ctx context.Context, userID string, category PreferenceCategory, key string) error
- func (pm *PreferenceManager) GetPreference(ctx context.Context, userID string, category PreferenceCategory, key string) (*Preference, error)
- func (pm *PreferenceManager) GetStats(userID string) PreferenceStats
- func (pm *PreferenceManager) GetTopPreferences(ctx context.Context, userID string, limit int) ([]*Preference, error)
- func (pm *PreferenceManager) ListPreferences(ctx context.Context, userID string, category PreferenceCategory) ([]*Preference, error)
- func (pm *PreferenceManager) UpdatePreference(ctx context.Context, userID string, category PreferenceCategory, key string, ...) error
- type PreferenceManagerConfig
- type PreferenceStats
- type PreferenceStorage
- type QualityAnalyzer
- func (qa *QualityAnalyzer) AnalyzeTrends(ctx context.Context, period time.Duration) ([]QualityTrend, error)
- func (qa *QualityAnalyzer) DetectInconsistencies(ctx context.Context, memories []MemoryWithScore) ([]Inconsistency, error)
- func (qa *QualityAnalyzer) GenerateReport(ctx context.Context, memories []MemoryWithScore) (*QualityReport, error)
- func (qa *QualityAnalyzer) SuggestImprovements(ctx context.Context) ([]ImproveQuality, error)
- type QualityDimension
- type QualityMetrics
- func (qm *QualityMetrics) Clear()
- func (qm *QualityMetrics) Evaluate(ctx context.Context, memoryID string, memory *MemoryWithScore) (*MemoryQuality, error)
- func (qm *QualityMetrics) Get(memoryID string) (*MemoryQuality, bool)
- func (qm *QualityMetrics) GetAll() []*MemoryQuality
- func (qm *QualityMetrics) GetLowQuality() []*MemoryQuality
- func (qm *QualityMetrics) GetStats() QualityStats
- func (qm *QualityMetrics) Remove(memoryID string)
- type QualityMetricsConfig
- type QualityReport
- type QualityScore
- type QualityStats
- type QualityTrend
- type RedundancyStrategy
- func (s *RedundancyStrategy) Consolidate(ctx context.Context, memories []MemoryWithScore, llm LLMProvider) (*ConsolidatedMemory, error)
- func (s *RedundancyStrategy) Name() string
- func (s *RedundancyStrategy) ShouldConsolidate(ctx context.Context, memories []MemoryWithScore) (bool, ConsolidationReason)
- type Reference
- type ReferenceInfo
- type ReferenceRegistry
- type ReferenceRegistryMiddleware
- type RegistryStats
- type Scope
- type SearchMatch
- type SearchOptions
- type SemanticMemory
- func (sm *SemanticMemory) Close() error
- func (sm *SemanticMemory) Delete(ctx context.Context, docID string) error
- func (sm *SemanticMemory) DeleteMemoryWithLineage(ctx context.Context, memoryID string, cascade bool) error
- func (sm *SemanticMemory) Enabled() bool
- func (sm *SemanticMemory) GetMemoryProvenance(ctx context.Context, query string, meta map[string]any) (*MemoryProvenance, error)
- func (sm *SemanticMemory) Index(ctx context.Context, docID string, text string, meta map[string]any) error
- func (sm *SemanticMemory) IndexWithProvenance(ctx context.Context, docID string, text string, meta map[string]any, ...) error
- func (sm *SemanticMemory) PruneMemories(ctx context.Context, namespace string) ([]string, error)
- func (sm *SemanticMemory) Search(ctx context.Context, query string, meta map[string]any, topK int) ([]vector.Hit, error)
- func (sm *SemanticMemory) SearchAndFormat(ctx context.Context, query string, meta map[string]any, topK int) (string, error)
- func (sm *SemanticMemory) SearchBySourceType(ctx context.Context, query string, meta map[string]any, topK int, ...) ([]vector.Hit, error)
- func (sm *SemanticMemory) SearchWithConfidenceFilter(ctx context.Context, query string, meta map[string]any, topK int, ...) ([]vector.Hit, error)
- func (sm *SemanticMemory) UpdateMetadata(ctx context.Context, docID string, metadata map[string]any) error
- type SemanticMemoryConfig
- type SessionCompressor
- type SessionManagerConfig
- type SessionMemoryManager
- func (m *SessionMemoryManager) AddMemory(ctx context.Context, sessionID string, content string, metadata map[string]any, ...) (string, error)
- func (m *SessionMemoryManager) CleanupExpired(ctx context.Context) int
- func (m *SessionMemoryManager) DeleteMemory(ctx context.Context, memoryID string, sessionID string) error
- func (m *SessionMemoryManager) GetMemory(ctx context.Context, memoryID string, sessionID string) (*SharedMemory, error)
- func (m *SessionMemoryManager) GetStats() SessionStats
- func (m *SessionMemoryManager) ListSessionMemories(ctx context.Context, sessionID string, scope MemoryScope) ([]*SharedMemory, error)
- func (m *SessionMemoryManager) RevokeAccess(ctx context.Context, memoryID string, fromSessionID string, toSessionID string) error
- func (m *SessionMemoryManager) ShareMemory(ctx context.Context, memoryID string, fromSessionID string, toSessionID string, ...) error
- func (m *SessionMemoryManager) UpdateMemory(ctx context.Context, memoryID string, sessionID string, content string, ...) error
- type SessionStats
- type SessionSummary
- type SessionSummaryConfig
- type SessionSummaryManager
- func (m *SessionSummaryManager) DeleteSummary(sessionID string) error
- func (m *SessionSummaryManager) GenerateSummary(ctx context.Context, sessionID string, messages []types.Message) (*SessionSummary, error)
- func (m *SessionSummaryManager) GetSummary(sessionID string) (*SessionSummary, bool)
- func (m *SessionSummaryManager) GetSummaryText(sessionID string) string
- func (m *SessionSummaryManager) ListSummaries() []*SessionSummary
- func (m *SessionSummaryManager) ShouldUpdate(sessionID string, currentMessageCount int) bool
- func (m *SessionSummaryManager) UpdateSummary(ctx context.Context, sessionID string, newMessages []types.Message) (*SessionSummary, error)
- type SharedMemory
- type SourceType
- type SummarizationStrategy
- func (s *SummarizationStrategy) Consolidate(ctx context.Context, memories []MemoryWithScore, llm LLMProvider) (*ConsolidatedMemory, error)
- func (s *SummarizationStrategy) Name() string
- func (s *SummarizationStrategy) ShouldConsolidate(ctx context.Context, memories []MemoryWithScore) (bool, ConsolidationReason)
- type WorkingMemoryConfig
- type WorkingMemoryData
- type WorkingMemoryManager
- func (wm *WorkingMemoryManager) Delete(ctx context.Context, threadID, resourceID string) error
- func (wm *WorkingMemoryManager) FindAndReplace(ctx context.Context, threadID, resourceID, searchString, newContent string) error
- func (wm *WorkingMemoryManager) Get(ctx context.Context, threadID, resourceID string) (string, error)
- func (wm *WorkingMemoryManager) GetSchema() *JSONSchema
- func (wm *WorkingMemoryManager) GetScope() WorkingMemoryScope
- func (wm *WorkingMemoryManager) GetTemplate() string
- func (wm *WorkingMemoryManager) Update(ctx context.Context, threadID, resourceID, content string) error
- type WorkingMemoryMeta
- type WorkingMemoryScope
Constants ¶
const ( ReferenceTypeFilePath = "file_path" ReferenceTypeURL = "url" ReferenceTypeFunction = "function" ReferenceTypeClass = "class" ReferenceTypeLineRange = "line_range" ReferenceTypeVariable = "variable" )
ReferenceType 引用类型常量
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessLevel ¶
type AccessLevel int
AccessLevel 访问级别
const ( AccessNone AccessLevel = 0 // 无访问权限 AccessRead AccessLevel = 1 // 只读 AccessWrite AccessLevel = 2 // 读写 AccessFullControl AccessLevel = 3 // 完全控制(含删除) )
type CompressedObservation ¶ added in v0.17.0
type CompressedObservation struct {
// Summary 压缩后的摘要
Summary string `json:"summary"`
// References 保留的引用(URL、文件路径等)
References []Reference `json:"references,omitempty"`
// Hash 原始内容的哈希值(用于验证恢复)
Hash string `json:"hash"`
// OriginalLength 原始内容长度
OriginalLength int `json:"original_length"`
// Recoverable 是否可恢复
Recoverable bool `json:"recoverable"`
// ToolName 产生此观察的工具名
ToolName string `json:"tool_name"`
// CompressionRatio 压缩比率
CompressionRatio float64 `json:"compression_ratio"`
}
CompressedObservation 压缩后的观察结果
type CompressionLevel ¶
type CompressionLevel int
CompressionLevel 压缩级别
const ( CompressionLevelNone CompressionLevel = 0 // 不压缩 CompressionLevelLight CompressionLevel = 1 // 轻度压缩(保留大部分细节) CompressionLevelModerate CompressionLevel = 2 // 中度压缩(保留关键信息) CompressionLevelAggressive CompressionLevel = 3 // 激进压缩(只保留核心要点) )
type CompressionStats ¶
type CompressionStats struct {
OriginalMessages int // 原始消息数
CompressedMessages int // 压缩后消息数
OriginalTokens int // 原始 Token 数
CompressedTokens int // 压缩后 Token 数
CompressionRatio float64 // 压缩比率
Duration time.Duration // 压缩耗时
}
CompressionStats 压缩统计信息
type ConfidenceCalculator ¶
type ConfidenceCalculator struct {
// contains filtered or unexported fields
}
ConfidenceCalculator 置信度计算器。
func NewConfidenceCalculator ¶
func NewConfidenceCalculator(cfg ConfidenceConfig) *ConfidenceCalculator
NewConfidenceCalculator 创建置信度计算器。
func (*ConfidenceCalculator) Calculate ¶
func (cc *ConfidenceCalculator) Calculate(p *MemoryProvenance) float64
Calculate 计算记忆的当前置信度。 综合考虑:初始置信度、时间衰减、验证次数、访问记录。
func (*ConfidenceCalculator) ScoreByRelevance ¶
func (cc *ConfidenceCalculator) ScoreByRelevance(semanticScore float64, p *MemoryProvenance) float64
ScoreByRelevance 综合计算记忆的相关性得分。 结合语义相似度和置信度。
func (*ConfidenceCalculator) ShouldPrune ¶
func (cc *ConfidenceCalculator) ShouldPrune(p *MemoryProvenance) bool
ShouldPrune 判断记忆是否应被剪枝(遗忘)。
func (*ConfidenceCalculator) UpdateConfidence ¶
func (cc *ConfidenceCalculator) UpdateConfidence(p *MemoryProvenance)
UpdateConfidence 更新记忆的置信度。 这会修改 Provenance 对象的 Confidence 字段。
type ConfidenceConfig ¶
type ConfidenceConfig struct {
// DecayHalfLife 置信度衰减半衰期。
// 记忆经过这个时长后,置信度衰减到原来的50%。
DecayHalfLife time.Duration
// MinConfidence 最低置信度阈值。
// 低于此值的记忆应被剪枝(遗忘)。
MinConfidence float64
// CorroborationBoost 每次验证增加的置信度。
CorroborationBoost float64
// MaxCorroborationBoost 验证提升的最大累计值。
MaxCorroborationBoost float64
// RecencyWeight 最近访问对置信度的权重(0.0-1.0)。
// 0 表示不考虑访问时间,1 表示完全基于访问时间。
RecencyWeight float64
}
ConfidenceConfig 置信度计算配置。
func DefaultConfidenceConfig ¶
func DefaultConfidenceConfig() ConfidenceConfig
DefaultConfidenceConfig 返回默认置信度配置。
type ConfidenceTier ¶
type ConfidenceTier string
ConfidenceTier 将置信度分级。
const ( TierVeryHigh ConfidenceTier = "very_high" // > 0.9 TierHigh ConfidenceTier = "high" // 0.7 - 0.9 TierMedium ConfidenceTier = "medium" // 0.5 - 0.7 TierLow ConfidenceTier = "low" // 0.3 - 0.5 TierVeryLow ConfidenceTier = "very_low" // < 0.3 )
func GetConfidenceTier ¶
func GetConfidenceTier(confidence float64) ConfidenceTier
GetConfidenceTier 返回置信度分级。
type ConflictResolutionStrategy ¶
type ConflictResolutionStrategy struct {
// contains filtered or unexported fields
}
ConflictResolutionStrategy 冲突解决策略。 处理内容相似但有矛盾的记忆。
func NewConflictResolutionStrategy ¶
func NewConflictResolutionStrategy(threshold float64, calculator *ConfidenceCalculator) *ConflictResolutionStrategy
NewConflictResolutionStrategy 创建冲突解决策略。
func (*ConflictResolutionStrategy) Consolidate ¶
func (s *ConflictResolutionStrategy) Consolidate(ctx context.Context, memories []MemoryWithScore, llm LLMProvider) (*ConsolidatedMemory, error)
Consolidate 执行合并。
func (*ConflictResolutionStrategy) Name ¶
func (s *ConflictResolutionStrategy) Name() string
Name 返回策略名称。
func (*ConflictResolutionStrategy) ShouldConsolidate ¶
func (s *ConflictResolutionStrategy) ShouldConsolidate(ctx context.Context, memories []MemoryWithScore) (bool, ConsolidationReason)
ShouldConsolidate 判断是否应该合并。
type ConflictStrategy ¶
type ConflictStrategy int
ConflictStrategy 冲突解决策略
const ( ConflictKeepLatest ConflictStrategy = 0 // 保留最新的 ConflictKeepStronger ConflictStrategy = 1 // 保留强度更高的 ConflictMerge ConflictStrategy = 2 // 合并 )
type ConsolidatedMemory ¶
type ConsolidatedMemory struct {
Text string // 合并后的文本
Metadata map[string]any // 合并后的元数据
Provenance *MemoryProvenance // 合并后的溯源
SourceMemories []string // 源记忆 ID 列表
Reason ConsolidationReason // 合并原因
ConsolidatedAt time.Time // 合并时间
}
ConsolidatedMemory 合并后的记忆。
type ConsolidationAction ¶ added in v0.21.1
type ConsolidationAction struct {
Operation ConsolidationOperation
TargetMemoryID string // 目标记忆 ID(用于 update/delete)
SourceMemoryIDs []string // 源记忆 ID 列表(用于 merge)
NewMemory *ConsolidatedMemory // 新记忆内容(用于 create/update/merge)
Reason string // 操作原因
}
ConsolidationAction 描述一个合并操作。
type ConsolidationConfig ¶
type ConsolidationConfig struct {
// 相似度阈值(超过此值认为是冗余)
SimilarityThreshold float64
// 冲突检测阈值(语义相似但内容矛盾)
ConflictThreshold float64
// 最小记忆数量(少于此数量不触发合并)
MinMemoryCount int
// 批处理大小(每次处理的记忆数量)
BatchSize int
// 自动合并间隔
AutoConsolidateInterval time.Duration
// 是否保留原始记忆(合并后标记为已合并,而不是删除)
PreserveOriginal bool
// LLM 模型名称
LLMModel string
// 最大重试次数
MaxRetries int
}
ConsolidationConfig 合并引擎配置。
func DefaultConsolidationConfig ¶
func DefaultConsolidationConfig() ConsolidationConfig
DefaultConsolidationConfig 返回默认配置。
type ConsolidationEngine ¶
type ConsolidationEngine struct {
// contains filtered or unexported fields
}
ConsolidationEngine 内存合并引擎。 负责检测和合并冗余或冲突的记忆。
func NewConsolidationEngine ¶
func NewConsolidationEngine( memory *SemanticMemory, strategy ConsolidationStrategy, llmProvider LLMProvider, config ConsolidationConfig, ) *ConsolidationEngine
NewConsolidationEngine 创建合并引擎。
func (*ConsolidationEngine) Consolidate ¶
func (ce *ConsolidationEngine) Consolidate(ctx context.Context) (*ConsolidationResult, error)
Consolidate 执行内存合并。
func (*ConsolidationEngine) ConsolidateNewMemory ¶ added in v0.21.1
func (ce *ConsolidationEngine) ConsolidateNewMemory( ctx context.Context, newMemory *MemoryWithScore, namespace string, ) (*ConsolidatedMemory, error)
ConsolidateNewMemory 在添加新记忆时进行即时合并检查。 这是 Google Context Engineering 论文推荐的方式: 新记忆提取后,立即与现有记忆进行合并检查。 返回值: - 如果需要合并,返回合并后的记忆 - 如果不需要合并,返回原记忆 - 如果发生冲突,返回解决后的记忆
func (*ConsolidationEngine) GetStats ¶
func (ce *ConsolidationEngine) GetStats() ConsolidationStats
GetStats 获取合并引擎统计信息。
func (*ConsolidationEngine) ShouldAutoConsolidate ¶
func (ce *ConsolidationEngine) ShouldAutoConsolidate() bool
ShouldAutoConsolidate 检查是否应该自动触发合并。
type ConsolidationOperation ¶ added in v0.21.1
type ConsolidationOperation string
ConsolidationOperation 表示合并操作类型。
const ( OpCreate ConsolidationOperation = "create" // 创建新记忆 OpUpdate ConsolidationOperation = "update" // 更新现有记忆 OpMerge ConsolidationOperation = "merge" // 合并多个记忆 OpDelete ConsolidationOperation = "delete" // 删除记忆 )
type ConsolidationReason ¶
type ConsolidationReason string
ConsolidationReason 合并原因。
const ( ReasonRedundant ConsolidationReason = "redundant" // 冗余 ReasonConflict ConsolidationReason = "conflict" // 冲突 ReasonSummary ConsolidationReason = "summary" // 总结 ReasonNone ConsolidationReason = "none" // 不需要合并 )
type ConsolidationResult ¶
type ConsolidationResult struct {
Success bool
Message string
StartTime time.Time
EndTime time.Time
Duration time.Duration
Strategy string
MemoryGroups []MemoryGroup
MergedCount int // 合并的记忆数量
NewMemoryCount int // 生成的新记忆数量
Errors []string
}
ConsolidationResult 合并结果。
type ConsolidationStats ¶
type ConsolidationStats struct {
LastConsolidation time.Time
ConsolidationCount int64
MergedMemoriesCount int64
}
ConsolidationStats 合并统计。
type ConsolidationStrategy ¶
type ConsolidationStrategy interface {
// Name 返回策略名称
Name() string
// ShouldConsolidate 判断是否应该合并这些记忆
ShouldConsolidate(ctx context.Context, memories []MemoryWithScore) (bool, ConsolidationReason)
// Consolidate 执行合并
Consolidate(ctx context.Context, memories []MemoryWithScore, llm LLMProvider) (*ConsolidatedMemory, error)
}
ConsolidationStrategy 合并策略接口。
type DefaultObservationCompressor ¶ added in v0.17.0
type DefaultObservationCompressor struct {
// contains filtered or unexported fields
}
DefaultObservationCompressor 默认的观察结果压缩器实现
func NewDefaultObservationCompressor ¶ added in v0.17.0
func NewDefaultObservationCompressor() *DefaultObservationCompressor
NewDefaultObservationCompressor 创建默认压缩器
func NewObservationCompressorWithConfig ¶ added in v0.17.0
func NewObservationCompressorWithConfig(config *ObservationCompressorConfig) *DefaultObservationCompressor
NewObservationCompressorWithConfig 创建带配置的压缩器
func (*DefaultObservationCompressor) CanRecover ¶ added in v0.17.0
func (c *DefaultObservationCompressor) CanRecover(compressed *CompressedObservation) bool
CanRecover 检查是否可以恢复
func (*DefaultObservationCompressor) Compress ¶ added in v0.17.0
func (c *DefaultObservationCompressor) Compress(ctx context.Context, toolName string, output string) (*CompressedObservation, error)
Compress 压缩观察结果
func (*DefaultObservationCompressor) Recover ¶ added in v0.17.0
func (c *DefaultObservationCompressor) Recover(ctx context.Context, compressed *CompressedObservation) (string, error)
Recover 恢复原始内容 注意:这需要外部工具(如文件系统访问)的支持
type FilePreferenceStorage ¶
type FilePreferenceStorage struct {
// contains filtered or unexported fields
}
FilePreferenceStorage 基于文件的偏好存储
func NewFilePreferenceStorage ¶
func NewFilePreferenceStorage(dir string) (*FilePreferenceStorage, error)
NewFilePreferenceStorage 创建文件存储
func (*FilePreferenceStorage) Delete ¶
func (fs *FilePreferenceStorage) Delete(ctx context.Context, userID string) error
Delete 实现 PreferenceStorage 接口
func (*FilePreferenceStorage) List ¶
func (fs *FilePreferenceStorage) List(ctx context.Context) ([]string, error)
List 实现 PreferenceStorage 接口
func (*FilePreferenceStorage) Load ¶
func (fs *FilePreferenceStorage) Load( ctx context.Context, userID string, ) ([]*Preference, error)
Load 实现 PreferenceStorage 接口
func (*FilePreferenceStorage) Save ¶
func (fs *FilePreferenceStorage) Save( ctx context.Context, userID string, preferences []*Preference, ) error
Save 实现 PreferenceStorage 接口
type ImproveQuality ¶
ImproveQuality 质量改进建议
type InMemoryReferenceRegistry ¶ added in v0.17.0
type InMemoryReferenceRegistry struct {
// contains filtered or unexported fields
}
InMemoryReferenceRegistry 内存实现的引用注册表
func NewInMemoryReferenceRegistry ¶ added in v0.17.0
func NewInMemoryReferenceRegistry(maxSize int) *InMemoryReferenceRegistry
NewInMemoryReferenceRegistry 创建内存引用注册表
func (*InMemoryReferenceRegistry) GetStats ¶ added in v0.17.0
func (r *InMemoryReferenceRegistry) GetStats(ctx context.Context) (*RegistryStats, error)
GetStats 获取统计信息
func (*InMemoryReferenceRegistry) ListByType ¶ added in v0.17.0
func (r *InMemoryReferenceRegistry) ListByType(ctx context.Context, refType string, limit int) ([]ReferenceInfo, error)
ListByType 按类型列出引用
func (*InMemoryReferenceRegistry) ListRecent ¶ added in v0.17.0
func (r *InMemoryReferenceRegistry) ListRecent(ctx context.Context, limit int) ([]ReferenceInfo, error)
ListRecent 列出最近的引用
func (*InMemoryReferenceRegistry) Lookup ¶ added in v0.17.0
func (r *InMemoryReferenceRegistry) Lookup(ctx context.Context, refType, value string) (*ReferenceInfo, error)
Lookup 查找引用
func (*InMemoryReferenceRegistry) MarkAccessed ¶ added in v0.17.0
func (r *InMemoryReferenceRegistry) MarkAccessed(ctx context.Context, refType, value string) error
MarkAccessed 标记访问
type Inconsistency ¶
type Inconsistency struct {
Type InconsistencyType // 不一致性类型
MemoryID1 string // 第一个记忆 ID
MemoryID2 string // 第二个记忆 ID(如果适用)
Description string // 描述
Severity float64 // 严重程度 (0.0-1.0)
DetectedAt time.Time // 检测时间
}
Inconsistency 不一致性信息
type InconsistencyType ¶
type InconsistencyType string
InconsistencyType 不一致性类型
const ( InconsistencyContradiction InconsistencyType = "contradiction" // 矛盾 InconsistencyDuplicate InconsistencyType = "duplicate" // 重复 InconsistencyOutdated InconsistencyType = "outdated" // 过时 InconsistencyLowConfidence InconsistencyType = "low_confidence" // 低置信度 InconsistencyConflict InconsistencyType = "conflict" // 冲突 )
type JSONSchema ¶
type JSONSchema struct {
Type string `json:"type,omitempty"` // object, string, number, array, boolean
Properties map[string]*JSONSchema `json:"properties,omitempty"` // 对象属性(仅 type=object 时有效)
Items *JSONSchema `json:"items,omitempty"` // 数组元素(仅 type=array 时有效)
Required []string `json:"required,omitempty"` // 必需字段(仅 type=object 时有效)
Enum []any `json:"enum,omitempty"` // 枚举值
MinLength *int `json:"minLength,omitempty"` // 最小长度(仅 type=string 时有效)
MaxLength *int `json:"maxLength,omitempty"` // 最大长度(仅 type=string 时有效)
Pattern string `json:"pattern,omitempty"` // 正则模式(仅 type=string 时有效)
}
JSONSchema JSON Schema 定义 简化版的 JSON Schema,支持基本的类型验证
func NewJSONSchemaFromMap ¶
func NewJSONSchemaFromMap(m map[string]any) (*JSONSchema, error)
NewJSONSchemaFromMap 从 map 创建 JSONSchema(方便从配置文件加载)
func (*JSONSchema) ToMap ¶
func (s *JSONSchema) ToMap() map[string]any
ToMap 将 JSONSchema 转换为 map(方便序列化)
func (*JSONSchema) ValidateContent ¶
func (s *JSONSchema) ValidateContent(content string) error
ValidateContent 验证内容是否符合 Schema content: JSON 字符串或 Markdown 字符串 如果 Schema.Type 为空或 "string",直接验证字符串 如果 Schema.Type 为 "object" 等,先解析 JSON 再验证
type LLMProvider ¶
type LLMProvider interface {
// Complete 完成文本生成
Complete(ctx context.Context, prompt string, options map[string]any) (string, error)
}
LLMProvider 提供 LLM 调用能力。
type LLMSummarizer ¶
type LLMSummarizer struct {
// contains filtered or unexported fields
}
LLMSummarizer LLM 驱动的会话总结器
func NewLLMSummarizer ¶
func NewLLMSummarizer(config LLMSummarizerConfig) *LLMSummarizer
NewLLMSummarizer 创建 LLM 总结器
func (*LLMSummarizer) CompressMessages ¶
func (s *LLMSummarizer) CompressMessages(ctx context.Context, messages []agentext.Message) ([]agentext.Message, error)
CompressMessages 实现 SessionCompressor 接口
func (*LLMSummarizer) GetCompressionStats ¶
func (s *LLMSummarizer) GetCompressionStats() CompressionStats
GetCompressionStats 实现 SessionCompressor 接口
func (*LLMSummarizer) SummarizeSession ¶
func (s *LLMSummarizer) SummarizeSession(ctx context.Context, messages []agentext.Message) (string, error)
SummarizeSession 实现 SessionCompressor 接口
type LLMSummarizerConfig ¶
type LLMSummarizerConfig struct {
// LLM 配置
Provider string // LLM 提供商(如 "openai", "anthropic")
Model string // 模型名称
APIKey string // API 密钥
BaseURL string // API 基础 URL
// 总结配置
Level CompressionLevel // 压缩级别
MaxSummaryWords int // 最大总结字数
PreserveContext bool // 是否保留上下文信息
Language string // 总结语言("zh", "en")
// Token 配置
TokenCounter agentext.TokenCounter // Token 计数器
}
LLMSummarizerConfig LLM 总结器配置
func DefaultLLMSummarizerConfig ¶
func DefaultLLMSummarizerConfig() LLMSummarizerConfig
DefaultLLMSummarizerConfig 返回默认配置
type LineageGraph ¶
type LineageGraph struct {
// contains filtered or unexported fields
}
LineageGraph 记忆谱系图。 追踪记忆之间的派生关系,支持级联删除和影响分析。
func (*LineageGraph) GetDerivedMemories ¶
func (lg *LineageGraph) GetDerivedMemories(memoryID string) []string
GetDerivedMemories 获取派生自指定记忆的所有记忆(递归)。
func (*LineageGraph) GetMemoriesBySource ¶
func (lg *LineageGraph) GetMemoriesBySource(sourceID string) []string
GetMemoriesBySource 获取来自特定数据源的所有记忆。
func (*LineageGraph) GetParentMemories ¶
func (lg *LineageGraph) GetParentMemories(memoryID string) []string
GetParentMemories 获取指定记忆的所有父记忆(递归)。
func (*LineageGraph) RemoveMemory ¶
func (lg *LineageGraph) RemoveMemory(memoryID string)
RemoveMemory 从谱系图中移除记忆。
func (*LineageGraph) TrackMemory ¶
func (lg *LineageGraph) TrackMemory(memoryID string, metadata *LineageMetadata)
TrackMemory 追踪一个新记忆。
type LineageManager ¶
type LineageManager struct {
// contains filtered or unexported fields
}
LineageManager 记忆谱系管理器。 提供高级的谱系追踪和级联删除功能。
func (*LineageManager) DeleteMemoryWithLineage ¶
func (lm *LineageManager) DeleteMemoryWithLineage(ctx context.Context, memoryID string, cascade bool) ([]string, error)
DeleteMemoryWithLineage 删除记忆及其派生记忆。
func (*LineageManager) GetLineageDepth ¶
func (lm *LineageManager) GetLineageDepth(memoryID string) int
GetLineageDepth 获取记忆的谱系深度。 返回从根记忆到当前记忆的最长路径。
func (*LineageManager) GetLineageStats ¶
func (lm *LineageManager) GetLineageStats() LineageStats
func (*LineageManager) RegenerateFromSource ¶
func (lm *LineageManager) RegenerateFromSource(ctx context.Context, revokedSourceID string) error
RegenerateFromSource 从剩余有效数据源重新生成记忆。 这是一个更精确的删除策略,避免过度删除。
func (*LineageManager) RevokeDataSource ¶
RevokeDataSource 撤销数据源权限。 删除所有派生自该数据源的记忆。
func (*LineageManager) TrackMemoryCreation ¶
func (lm *LineageManager) TrackMemoryCreation(memoryID string, provenance *MemoryProvenance, derivedFromIDs []string) error
TrackMemoryCreation 追踪记忆创建事件。
type LineageMetadata ¶
type LineageMetadata struct {
ID string // 记忆ID
SourceIDs []string // 来源标识(session/document ID)
DerivedFromIDs []string // 派生自哪些记忆
CreatedAt int64 // Unix timestamp
}
LineageMetadata 记忆的谱系元数据。
type LineageStats ¶
type LineageStats struct {
TotalMemories int // 总记忆数
RootMemories int // 根记忆数(无父记忆)
DerivedMemories int // 派生记忆数(有父记忆)
MaxDepth int // 最大谱系深度
MemoriesBySource map[string]int // 每个数据源的记忆数
}
GetLineageStats 获取谱系统计信息。
type LongTermBridge ¶
type LongTermBridge struct {
Sessions session.Service
SemanticMemory *SemanticMemory
}
LongTermBridge 提供从 Session 短期记忆保存到长期语义记忆的辅助方法。 这是一个轻量的工具类型,不参与核心运行时依赖注入。
func (*LongTermBridge) SaveSessionToSemanticMemory ¶
func (b *LongTermBridge) SaveSessionToSemanticMemory( ctx context.Context, appName string, userID string, sessionID string, scopeMeta map[string]any, cfg *LongTermBridgeConfig, ) error
SaveSessionToSemanticMemory 从指定 Session 中抽取对话内容,并写入语义记忆。
约定: - 将所有 user/assistant 消息拼接为一个大文本,适合用于知识性长记忆; - 调用方通过 scopeMeta 控制命名空间(user_id/project_id/resource_id 等); - 具体要保存哪些 Session 由上层业务决定(教学会话、设置会话等)。
type LongTermBridgeConfig ¶
type LongTermBridgeConfig struct {
// MinTokens 用于过滤过短的内容(粗略按单词数统计),<=0 表示不做限制。
MinTokens int
}
LongTermBridgeConfig 配置 Bridge 的行为。
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 提供基于 BackendProtocol 的高级记忆能力 特点: - 所有记忆都以普通文本/Markdown 文件形式存储 - 通过 GrepRaw/GlobInfo 做全文搜索,不依赖向量数据库 - 约定好 memoryPath,统一管理长期记忆文件
func (*Manager) AppendNote ¶
AppendNote 以追加模式写入一条记忆 file: 目标文件名(相对于 memoryPath) title: 记忆标题,为空时使用当前时间 content: 记忆内容正文
func (*Manager) OverwriteWithNote ¶
func (m *Manager) OverwriteWithNote(ctx context.Context, file, title, content string) (string, error)
OverwriteWithNote 使用单个 Note 覆盖整个记忆文件 与 AppendNote 不同,该方法会丢弃原有内容,仅保留新的标题与正文
func (*Manager) ReadFile ¶
ReadFile 读取指定记忆文件内容 name 为相对于 memoryPath 的路径,例如 "project_notes.md" 或 "user/alice.md"
func (*Manager) Search ¶
func (m *Manager) Search(ctx context.Context, opts *SearchOptions) ([]SearchMatch, error)
Search 在 memoryPath 下执行全文搜索 默认使用大小写不敏感的字面量匹配,可选正则模式
type ManagerConfig ¶
type ManagerConfig struct {
Backend backends.BackendProtocol
MemoryPath string // 记忆文件根路径,默认: "/memories/"
}
ManagerConfig 配置高级 Memory 管理器
type MemoryGroup ¶
type MemoryGroup struct {
Memories []MemoryWithScore
ConsolidatedID string
Reason ConsolidationReason
}
MemoryGroup 记忆组。
type MemoryProvenance ¶
type MemoryProvenance struct {
// SourceType 数据来源类型。
SourceType SourceType `json:"source_type"`
// Confidence 置信度评分(0.0-1.0)。
// 基于来源类型、年龄和验证状态计算。
Confidence float64 `json:"confidence"`
// Sources 来源标识列表(如 session IDs, document IDs)。
// 用于追踪记忆的派生关系。
Sources []string `json:"sources"`
// CreatedAt 记忆创建时间。
CreatedAt time.Time `json:"created_at"`
// UpdatedAt 记忆最后更新时间。
UpdatedAt time.Time `json:"updated_at"`
// Version 记忆版本号。
// 每次更新时递增,用于冲突检测和乐观锁。
Version int `json:"version"`
// IsExplicit 是否为用户显式指示记住的信息。
// 显式记忆的初始置信度更高。
IsExplicit bool `json:"is_explicit,omitempty"`
// CorroborationCount 被其他来源验证的次数。
// 多源验证可提升置信度。
CorroborationCount int `json:"corroboration_count,omitempty"`
// LastAccessedAt 记忆最后访问时间。
// 用于计算相关性和实施LRU淘汰。
LastAccessedAt *time.Time `json:"last_accessed_at,omitempty"`
// Tags 记忆标签,用于分类和检索。
Tags []string `json:"tags,omitempty"`
}
MemoryProvenance 记录记忆的完整溯源信息。 用于追踪记忆的来源、置信度和演变历史。
func FromMetadata ¶
func FromMetadata(meta map[string]any) *MemoryProvenance
FromMetadata 从 metadata map 中提取 Provenance。
func NewExplicitProvenance ¶
func NewExplicitProvenance(sourceType SourceType, sourceID string) *MemoryProvenance
NewExplicitProvenance 创建一个显式记忆的 Provenance。 显式记忆具有更高的初始置信度。
func NewProvenance ¶
func NewProvenance(sourceType SourceType, sourceID string) *MemoryProvenance
NewProvenance 创建一个新的 Provenance 实例。
func (*MemoryProvenance) AddSource ¶
func (p *MemoryProvenance) AddSource(sourceID string)
AddSource 添加一个新的来源标识。 用于追踪记忆被多个来源确认。
func (*MemoryProvenance) Age ¶
func (p *MemoryProvenance) Age() time.Duration
Age 返回记忆的年龄(从创建到现在的时长)。
func (*MemoryProvenance) Corroborate ¶
func (p *MemoryProvenance) Corroborate(sourceID string)
Corroborate 记录一次验证。 多源验证可提升置信度。
func (*MemoryProvenance) Freshness ¶
func (p *MemoryProvenance) Freshness() time.Duration
Freshness 返回记忆的新鲜度(从最后更新到现在的时长)。
func (*MemoryProvenance) MarkAccessed ¶
func (p *MemoryProvenance) MarkAccessed()
MarkAccessed 标记记忆被访问。
func (*MemoryProvenance) ToMetadata ¶
func (p *MemoryProvenance) ToMetadata() map[string]any
ToMetadata 将 Provenance 转换为 metadata map。 用于存储到 VectorStore。
type MemoryQuality ¶
type MemoryQuality struct {
MemoryID string // 记忆 ID
Score QualityScore // 质量分数
Issues []string // 检测到的问题
UpdatedAt time.Time // 更新时间
}
MemoryQuality 记忆质量信息
type MemoryScope ¶
type MemoryScope string
MemoryScope 定义记忆的作用域
const ( ScopePrivate MemoryScope = "private" // 私有,仅当前会话可访问 ScopeGlobal MemoryScope = "global" // 全局,所有会话可访问 )
type MemoryWithScore ¶
type MemoryWithScore struct {
DocID string
Text string
Metadata map[string]any
Provenance *MemoryProvenance
Score float64 // 与查询的相似度
}
MemoryWithScore 带相似度分数的记忆。
func FilterByQuality ¶
func FilterByQuality( memories []MemoryWithScore, qualities map[string]*MemoryQuality, minQuality float64, ) []MemoryWithScore
FilterByQuality 根据质量阈值过滤记忆
func RankByQuality ¶
func RankByQuality( memories []MemoryWithScore, qualities map[string]*MemoryQuality, ) []MemoryWithScore
RankByQuality 按质量排序记忆列表
type MultiLevelCompressor ¶
type MultiLevelCompressor struct {
// contains filtered or unexported fields
}
MultiLevelCompressor 多层次压缩器 支持消息级、对话轮次级、会话级的多层压缩
func NewMultiLevelCompressor ¶
func NewMultiLevelCompressor( messageLevel SessionCompressor, turnLevel SessionCompressor, sessionLevel SessionCompressor, config MultiLevelCompressorConfig, ) *MultiLevelCompressor
NewMultiLevelCompressor 创建多层次压缩器
func (*MultiLevelCompressor) CompressMessages ¶
func (m *MultiLevelCompressor) CompressMessages(ctx context.Context, messages []agentext.Message) ([]agentext.Message, error)
CompressMessages 实现 SessionCompressor 接口
func (*MultiLevelCompressor) GetCompressionStats ¶
func (m *MultiLevelCompressor) GetCompressionStats() CompressionStats
GetCompressionStats 实现 SessionCompressor 接口
func (*MultiLevelCompressor) SummarizeSession ¶
func (m *MultiLevelCompressor) SummarizeSession(ctx context.Context, messages []agentext.Message) (string, error)
SummarizeSession 实现 SessionCompressor 接口
type MultiLevelCompressorConfig ¶
type MultiLevelCompressorConfig struct {
// 消息级压缩配置
EnableMessageLevel bool
MessageThreshold int // 超过多少条消息启用消息级压缩
// 对话轮次级压缩配置
EnableTurnLevel bool
TurnThreshold int // 超过多少轮对话启用轮次级压缩
// 会话级压缩配置
EnableSessionLevel bool
SessionThreshold int // 超过多少条消息启用会话级压缩
// Token 预算
TokenBudget agentext.TokenBudget
}
MultiLevelCompressorConfig 多层次压缩器配置
func DefaultMultiLevelCompressorConfig ¶
func DefaultMultiLevelCompressorConfig() MultiLevelCompressorConfig
DefaultMultiLevelCompressorConfig 返回默认配置
type ObservationCompressor ¶ added in v0.17.0
type ObservationCompressor interface {
// Compress 压缩观察结果
Compress(ctx context.Context, toolName string, output string) (*CompressedObservation, error)
// CanRecover 检查是否可以恢复原始内容
CanRecover(compressed *CompressedObservation) bool
// Recover 恢复原始内容(如果可能)
Recover(ctx context.Context, compressed *CompressedObservation) (string, error)
}
ObservationCompressor 观察结果压缩器接口 用于压缩工具执行结果,同时保留可恢复的引用信息 这是 Manus 团队"文件系统作为上下文"理念的实现
type ObservationCompressorConfig ¶ added in v0.17.0
ObservationCompressorConfig 压缩器配置
type PersistentPreferenceManager ¶
type PersistentPreferenceManager struct {
*PreferenceManager
// contains filtered or unexported fields
}
PersistentPreferenceManager 带持久化的偏好管理器
func NewPersistentPreferenceManager ¶
func NewPersistentPreferenceManager( config PreferenceManagerConfig, storage PreferenceStorage, ) *PersistentPreferenceManager
NewPersistentPreferenceManager 创建持久化偏好管理器
func (*PersistentPreferenceManager) AutoSave ¶
func (pm *PersistentPreferenceManager) AutoSave(ctx context.Context, interval int)
AutoSave 启动自动保存协程
func (*PersistentPreferenceManager) DeleteUser ¶
func (pm *PersistentPreferenceManager) DeleteUser(ctx context.Context, userID string) error
DeleteUser 删除用户的所有偏好(包括持久化)
func (*PersistentPreferenceManager) LoadAll ¶
func (pm *PersistentPreferenceManager) LoadAll(ctx context.Context) error
LoadAll 加载所有用户的偏好
func (*PersistentPreferenceManager) LoadUser ¶
func (pm *PersistentPreferenceManager) LoadUser(ctx context.Context, userID string) error
LoadUser 从持久化存储加载用户的偏好
type Preference ¶
type Preference struct {
ID string // 偏好 ID
UserID string // 用户 ID
Category PreferenceCategory // 类别
Key string // 偏好键(如 "theme", "language")
Value string // 偏好值(如 "dark", "zh")
Strength float64 // 强度 (0.0-1.0),基于出现频率
Confidence float64 // 置信度 (0.0-1.0)
CreatedAt time.Time // 创建时间
UpdatedAt time.Time // 更新时间
AccessCount int // 访问次数
Metadata map[string]string // 元数据
}
Preference 用户偏好
type PreferenceCategory ¶
type PreferenceCategory string
PreferenceCategory 偏好类别
const ( CategoryUI PreferenceCategory = "ui" // UI 偏好 CategoryWorkflow PreferenceCategory = "workflow" // 工作流偏好 CategoryContent PreferenceCategory = "content" // 内容偏好 CategoryLanguage PreferenceCategory = "language" // 语言偏好 CategoryTiming PreferenceCategory = "timing" // 时间偏好 CategoryFormat PreferenceCategory = "format" // 格式偏好 CategoryGeneral PreferenceCategory = "general" // 通用偏好 )
type PreferenceExtractor ¶
type PreferenceExtractor struct {
// contains filtered or unexported fields
}
PreferenceExtractor 偏好提取器
func NewPreferenceExtractor ¶
func NewPreferenceExtractor(manager *PreferenceManager) *PreferenceExtractor
NewPreferenceExtractor 创建偏好提取器
func (*PreferenceExtractor) ExtractFromMessage ¶
func (pe *PreferenceExtractor) ExtractFromMessage( ctx context.Context, userID string, message agentext.Message, ) ([]*Preference, error)
ExtractFromMessage 从消息中提取偏好
type PreferenceManager ¶
type PreferenceManager struct {
// contains filtered or unexported fields
}
PreferenceManager 偏好管理器
func NewPreferenceManager ¶
func NewPreferenceManager(config PreferenceManagerConfig) *PreferenceManager
NewPreferenceManager 创建偏好管理器
func (*PreferenceManager) AddPreference ¶
func (pm *PreferenceManager) AddPreference(ctx context.Context, pref *Preference) error
AddPreference 添加偏好
func (*PreferenceManager) ApplyDecay ¶
func (pm *PreferenceManager) ApplyDecay(ctx context.Context) int
ApplyDecay 应用强度衰减
func (*PreferenceManager) DeletePreference ¶
func (pm *PreferenceManager) DeletePreference( ctx context.Context, userID string, category PreferenceCategory, key string, ) error
DeletePreference 删除偏好
func (*PreferenceManager) GetPreference ¶
func (pm *PreferenceManager) GetPreference( ctx context.Context, userID string, category PreferenceCategory, key string, ) (*Preference, error)
GetPreference 获取偏好
func (*PreferenceManager) GetStats ¶
func (pm *PreferenceManager) GetStats(userID string) PreferenceStats
GetStats 获取统计信息
func (*PreferenceManager) GetTopPreferences ¶
func (pm *PreferenceManager) GetTopPreferences( ctx context.Context, userID string, limit int, ) ([]*Preference, error)
GetTopPreferences 获取强度最高的 N 个偏好
func (*PreferenceManager) ListPreferences ¶
func (pm *PreferenceManager) ListPreferences( ctx context.Context, userID string, category PreferenceCategory, ) ([]*Preference, error)
ListPreferences 列出用户的所有偏好
func (*PreferenceManager) UpdatePreference ¶
func (pm *PreferenceManager) UpdatePreference( ctx context.Context, userID string, category PreferenceCategory, key string, value string, ) error
UpdatePreference 更新偏好
type PreferenceManagerConfig ¶
type PreferenceManagerConfig struct {
// 强度衰减(每天)
StrengthDecay float64
// 最小强度阈值(低于此值被删除)
MinStrength float64
// 最大偏好数量(每个用户)
MaxPreferencesPerUser int
// 冲突解决策略
ConflictStrategy ConflictStrategy
// 是否自动提取偏好
AutoExtract bool
}
PreferenceManagerConfig 偏好管理器配置
func DefaultPreferenceManagerConfig ¶
func DefaultPreferenceManagerConfig() PreferenceManagerConfig
DefaultPreferenceManagerConfig 返回默认配置
type PreferenceStats ¶
type PreferenceStats struct {
TotalPreferences int // 总偏好数
CategoryDistribution map[PreferenceCategory]int // 类别分布
AverageStrength float64 // 平均强度
HighStrengthCount int // 高强度数量 (>= 0.7)
MediumStrengthCount int // 中等强度数量 (>= 0.4)
LowStrengthCount int // 低强度数量 (< 0.4)
}
PreferenceStats 偏好统计信息
type PreferenceStorage ¶
type PreferenceStorage interface {
// Save 保存偏好
Save(ctx context.Context, userID string, preferences []*Preference) error
// Load 加载偏好
Load(ctx context.Context, userID string) ([]*Preference, error)
// Delete 删除用户的所有偏好
Delete(ctx context.Context, userID string) error
// List 列出所有用户 ID
List(ctx context.Context) ([]string, error)
}
PreferenceStorage 偏好存储接口
type QualityAnalyzer ¶
type QualityAnalyzer struct {
// contains filtered or unexported fields
}
QualityAnalyzer 质量分析器 提供高级质量分析功能,包括不一致性检测、趋势分析等
func NewQualityAnalyzer ¶
func NewQualityAnalyzer(metrics *QualityMetrics, memory *SemanticMemory) *QualityAnalyzer
NewQualityAnalyzer 创建质量分析器
func (*QualityAnalyzer) AnalyzeTrends ¶
func (qa *QualityAnalyzer) AnalyzeTrends( ctx context.Context, period time.Duration, ) ([]QualityTrend, error)
AnalyzeTrends 分析质量趋势(需要历史数据)
func (*QualityAnalyzer) DetectInconsistencies ¶
func (qa *QualityAnalyzer) DetectInconsistencies( ctx context.Context, memories []MemoryWithScore, ) ([]Inconsistency, error)
DetectInconsistencies 检测记忆中的不一致性
func (*QualityAnalyzer) GenerateReport ¶
func (qa *QualityAnalyzer) GenerateReport( ctx context.Context, memories []MemoryWithScore, ) (*QualityReport, error)
GenerateReport 生成质量报告
func (*QualityAnalyzer) SuggestImprovements ¶
func (qa *QualityAnalyzer) SuggestImprovements( ctx context.Context, ) ([]ImproveQuality, error)
SuggestImprovements 为低质量记忆提供改进建议
type QualityDimension ¶
type QualityDimension string
QualityDimension 质量维度
const ( QualityAccuracy QualityDimension = "accuracy" // 准确性 QualityCompleteness QualityDimension = "completeness" // 完整性 QualityConsistency QualityDimension = "consistency" // 一致性 QualityTimeliness QualityDimension = "timeliness" // 时效性 QualityRelevance QualityDimension = "relevance" // 相关性 )
type QualityMetrics ¶
type QualityMetrics struct {
// contains filtered or unexported fields
}
QualityMetrics 质量评估系统
func NewQualityMetrics ¶
func NewQualityMetrics(config QualityMetricsConfig) *QualityMetrics
NewQualityMetrics 创建质量评估系统
func (*QualityMetrics) Evaluate ¶
func (qm *QualityMetrics) Evaluate( ctx context.Context, memoryID string, memory *MemoryWithScore, ) (*MemoryQuality, error)
Evaluate 评估记忆质量
func (*QualityMetrics) Get ¶
func (qm *QualityMetrics) Get(memoryID string) (*MemoryQuality, bool)
Get 获取记忆的质量信息
func (*QualityMetrics) GetLowQuality ¶
func (qm *QualityMetrics) GetLowQuality() []*MemoryQuality
GetLowQuality 获取低质量记忆列表
type QualityMetricsConfig ¶
type QualityMetricsConfig struct {
// 权重配置(各维度的权重,总和应为 1.0)
AccuracyWeight float64
CompletenessWeight float64
ConsistencyWeight float64
TimelinessWeight float64
RelevanceWeight float64
// 时效性配置
MaxAge time.Duration // 最大有效期
TimelinessDecay float64 // 时效性衰减系数(每天)
// 质量阈值
MinQualityThreshold float64 // 最低质量阈值
WarningThreshold float64 // 警告阈值
// 自动清理
EnableAutoCleanup bool // 启用自动清理低质量记忆
AutoCleanupInterval time.Duration
}
QualityMetricsConfig 质量评估配置
func DefaultQualityMetricsConfig ¶
func DefaultQualityMetricsConfig() QualityMetricsConfig
DefaultQualityMetricsConfig 返回默认配置
type QualityReport ¶
type QualityReport struct {
GeneratedAt time.Time
Stats QualityStats
// 维度分布
DimensionScores map[QualityDimension]float64
// 问题统计
Inconsistencies []Inconsistency
InconsistencyCount map[InconsistencyType]int
TopIssues []string
// 建议
Recommendations []string
}
QualityReport 质量报告
type QualityScore ¶
type QualityScore struct {
Accuracy float64 // 准确性 (0.0-1.0)
Completeness float64 // 完整性 (0.0-1.0)
Consistency float64 // 一致性 (0.0-1.0)
Timeliness float64 // 时效性 (0.0-1.0)
Relevance float64 // 相关性 (0.0-1.0)
Overall float64 // 综合得分 (0.0-1.0)
// 元数据
CalculatedAt time.Time
Source string // 评分来源(如 "automatic", "manual", "llm")
}
QualityScore 质量分数(多维度)
type QualityStats ¶
type QualityStats struct {
TotalMemories int // 总记忆数
TotalEvaluations int64 // 总评估次数
AverageQuality float64 // 平均质量
HighQualityCount int // 高质量记忆数 (>= 0.8)
MediumQualityCount int // 中等质量记忆数 (>= 0.5)
LowQualityCount int // 低质量记忆数 (< 0.5)
MemoriesWithIssues int // 有问题的记忆数
}
QualityStats 质量统计信息
type QualityTrend ¶
type QualityTrend struct {
Dimension QualityDimension
Trend string // "improving", "declining", "stable"
Change float64 // 变化量
Period time.Duration
}
QualityTrend 质量趋势
type RedundancyStrategy ¶
type RedundancyStrategy struct {
// contains filtered or unexported fields
}
RedundancyStrategy 冗余合并策略。 将多条相似度高、内容重复的记忆合并为一条。
func NewRedundancyStrategy ¶
func NewRedundancyStrategy(threshold float64) *RedundancyStrategy
NewRedundancyStrategy 创建冗余合并策略。
func (*RedundancyStrategy) Consolidate ¶
func (s *RedundancyStrategy) Consolidate(ctx context.Context, memories []MemoryWithScore, llm LLMProvider) (*ConsolidatedMemory, error)
Consolidate 执行合并。
func (*RedundancyStrategy) ShouldConsolidate ¶
func (s *RedundancyStrategy) ShouldConsolidate(ctx context.Context, memories []MemoryWithScore) (bool, ConsolidationReason)
ShouldConsolidate 判断是否应该合并。
type Reference ¶ added in v0.17.0
type Reference struct {
// Type 引用类型: "file_path", "url", "function", "class", "line_range"
Type string `json:"type"`
// Value 引用值
Value string `json:"value"`
// Context 上下文信息(可选)
Context string `json:"context,omitempty"`
// LineStart 起始行号(可选,用于文件引用)
LineStart int `json:"line_start,omitempty"`
// LineEnd 结束行号(可选,用于文件引用)
LineEnd int `json:"line_end,omitempty"`
}
Reference 引用信息
type ReferenceInfo ¶ added in v0.17.0
type ReferenceInfo struct {
// Reference 基本引用信息
Reference Reference `json:"reference"`
// SourceContext 引用来源的上下文
SourceContext string `json:"source_context,omitempty"`
// FirstSeen 首次出现时间
FirstSeen time.Time `json:"first_seen"`
// LastAccessed 最后访问时间
LastAccessed time.Time `json:"last_accessed"`
// AccessCount 访问次数
AccessCount int `json:"access_count"`
// ToolName 产生此引用的工具
ToolName string `json:"tool_name,omitempty"`
// Metadata 额外元数据
Metadata map[string]any `json:"metadata,omitempty"`
}
ReferenceInfo 引用的详细信息
type ReferenceRegistry ¶ added in v0.17.0
type ReferenceRegistry interface {
// Register 注册一个引用
Register(ctx context.Context, ref Reference, sourceContext string) error
// Lookup 查找引用信息
Lookup(ctx context.Context, refType, value string) (*ReferenceInfo, error)
// ListByType 按类型列出引用
ListByType(ctx context.Context, refType string, limit int) ([]ReferenceInfo, error)
// ListRecent 列出最近的引用
ListRecent(ctx context.Context, limit int) ([]ReferenceInfo, error)
// MarkAccessed 标记引用被访问
MarkAccessed(ctx context.Context, refType, value string) error
// GetStats 获取统计信息
GetStats(ctx context.Context) (*RegistryStats, error)
// Cleanup 清理过期引用
Cleanup(ctx context.Context, maxAge time.Duration) (int, error)
}
ReferenceRegistry 引用注册表接口 用于跟踪和管理会话中出现的所有引用(文件、URL、函数等) 这使得压缩后的内容可以在需要时恢复
type ReferenceRegistryMiddleware ¶ added in v0.17.0
type ReferenceRegistryMiddleware struct {
// contains filtered or unexported fields
}
ReferenceRegistryMiddleware 引用注册中间件 自动从工具结果中提取并注册引用
func NewReferenceRegistryMiddleware ¶ added in v0.17.0
func NewReferenceRegistryMiddleware(registry ReferenceRegistry) *ReferenceRegistryMiddleware
NewReferenceRegistryMiddleware 创建引用注册中间件
func (*ReferenceRegistryMiddleware) ProcessToolResult ¶ added in v0.17.0
func (m *ReferenceRegistryMiddleware) ProcessToolResult(ctx context.Context, toolName, content string) error
ProcessToolResult 处理工具结果,提取并注册引用
type RegistryStats ¶ added in v0.17.0
type RegistryStats struct {
// TotalReferences 总引用数
TotalReferences int `json:"total_references"`
// ByType 按类型统计
ByType map[string]int `json:"by_type"`
// MostAccessed 最常访问的引用
MostAccessed []ReferenceInfo `json:"most_accessed,omitempty"`
// RecentlyAdded 最近添加的引用数
RecentlyAdded int `json:"recently_added"`
}
RegistryStats 注册表统计信息
type Scope ¶
type Scope struct {
// UserID 当前用户ID,用于业务侧记录/审计; 是否叠加到路径中由 Shared 控制。
UserID string
// ProjectID 项目标识,为空表示不绑定项目。
ProjectID string
// ResourceType 资源类型: "article" | "novel" | "song" | "ppt" | ...
ResourceType string
// ResourceID 资源ID,与 ResourceType 配合使用。
ResourceID string
// - Shared=false: 生成的 namespace 不以 "/" 开头, 会叠加 BaseNamespace(通常是 users/<user-id>)。
// - Shared=true : 生成的 namespace 以 "/" 开头, 不叠加 BaseNamespace, 落在全局共享空间。
Shared bool
}
Scope 描述一段记忆所属的逻辑作用域,用于生成 namespace 字符串。
设计目标: - 支持多用户系统(user级隔离) - 支持项目级、资源级(文章/小说/歌曲/PPT等)场景 - 支持用户专属 vs 全局共享两种模式
注意: Scope 只负责生成 namespace, 最终路径仍然是:
/memories/<BaseNamespace>/<namespace>/<file>
其中 BaseNamespace 由 AgentMemoryMiddleware 决定, 通常为:
- "" : 无用户隔离(单用户或纯共享)
- "users/<user-id>" : 多用户系统中的用户私有前缀
func (Scope) Namespace ¶
Namespace 根据 Scope 生成 namespace 字符串。
规则: - ProjectID 不为空时: 追加 "projects/<project-id>" - ResourceType & ResourceID 不为空时: 追加 "resources/<type>/<id>" - Shared=false => 不加前导 "/", 交由 BaseNamespace 叠加 (用户级/租户级记忆) - Shared=true => 加前导 "/", 作为全局/共享记忆
示例:
Scope{UserID:"alice", ProjectID:"demo", Shared:false}.Namespace()
-> "projects/demo"
Scope{ProjectID:"demo", Shared:true}.Namespace()
-> "/projects/demo"
Scope{ResourceType:"article", ResourceID:"abc", Shared:false}.Namespace()
-> "resources/article/abc"
Scope{ProjectID:"demo", ResourceType:"article", ResourceID:"abc", Shared:true}.Namespace()
-> "/projects/demo/resources/article/abc"
type SearchMatch ¶
type SearchMatch struct {
Path string `json:"path"`
LineNumber int `json:"line_number"`
Line string `json:"line"`
Match string `json:"match"`
}
SearchMatch 搜索匹配结果
type SearchOptions ¶
type SearchOptions struct {
// Query 搜索关键字,默认作为大小写不敏感的字面量匹配
Query string
// Regex 是否将 Query 视为正则表达式
Regex bool
// Namespace 可选的命名空间前缀,用于多租户/多资源隔离
// 例如: "users/alice", "projects/demo", "users/alice/projects/demo"
// 为空字符串时在整个 MemoryPath 下搜索
Namespace string
// Glob 文件过滤模式,例如: "*.md"
Glob string
// MaxResults 返回的最大匹配数,<=0 时表示不限制
MaxResults int
}
SearchOptions 搜索配置
type SemanticMemory ¶
type SemanticMemory struct {
// contains filtered or unexported fields
}
SemanticMemory 语义记忆组件, 用于对文本进行向量索引和检索。 如果 Store 或 Embedder 为空, 所有方法将成为 no-op。
func NewSemanticMemory ¶
func NewSemanticMemory(cfg SemanticMemoryConfig) *SemanticMemory
NewSemanticMemory 创建语义记忆组件。
func (*SemanticMemory) Delete ¶
func (sm *SemanticMemory) Delete(ctx context.Context, docID string) error
Delete 删除单个记忆(不考虑谱系)。
func (*SemanticMemory) DeleteMemoryWithLineage ¶
func (sm *SemanticMemory) DeleteMemoryWithLineage(ctx context.Context, memoryID string, cascade bool) error
DeleteMemoryWithLineage 删除记忆及其派生记忆。
func (*SemanticMemory) GetMemoryProvenance ¶
func (sm *SemanticMemory) GetMemoryProvenance(ctx context.Context, query string, meta map[string]any) (*MemoryProvenance, error)
GetMemoryProvenance 获取记忆的溯源信息。 这需要先检索记忆,然后提取 Provenance。
func (*SemanticMemory) Index ¶
func (sm *SemanticMemory) Index(ctx context.Context, docID string, text string, meta map[string]any) error
Index 将一段文本写入向量索引。 docID 应全局唯一, meta 中可包含 user_id/project_id/resource_id 等信息。 如果启用 Provenance, 将自动创建溯源信息。
func (*SemanticMemory) IndexWithProvenance ¶
func (sm *SemanticMemory) IndexWithProvenance(ctx context.Context, docID string, text string, meta map[string]any, provenance *MemoryProvenance, derivedFromIDs []string) error
IndexWithProvenance 使用指定的 Provenance 索引文本。 derivedFromIDs 表示该记忆派生自哪些其他记忆。
func (*SemanticMemory) PruneMemories ¶
PruneMemories 剪枝(删除)低置信度记忆。 返回被删除的记忆ID列表。
func (*SemanticMemory) Search ¶
func (sm *SemanticMemory) Search(ctx context.Context, query string, meta map[string]any, topK int) ([]vector.Hit, error)
Search 在指定命名空间内执行向量检索。 query 为用户自然语言查询, meta 用于构造 namespace/过滤。
func (*SemanticMemory) SearchAndFormat ¶ added in v0.31.0
func (sm *SemanticMemory) SearchAndFormat(ctx context.Context, query string, meta map[string]any, topK int) (string, error)
SearchAndFormat 执行向量检索并格式化为 Markdown,用于 RAG 场景。 返回的字符串可以直接注入到 Prompt 中作为上下文。
func (*SemanticMemory) SearchBySourceType ¶
func (sm *SemanticMemory) SearchBySourceType(ctx context.Context, query string, meta map[string]any, topK int, sourceTypes []SourceType) ([]vector.Hit, error)
SearchBySourceType 按来源类型检索记忆。
func (*SemanticMemory) SearchWithConfidenceFilter ¶
func (sm *SemanticMemory) SearchWithConfidenceFilter(ctx context.Context, query string, meta map[string]any, topK int, minConfidence float64) ([]vector.Hit, error)
SearchWithConfidenceFilter 执行检索并按置信度过滤。 minConfidence: 最低置信度阈值(0.0-1.0)
func (*SemanticMemory) UpdateMetadata ¶
func (sm *SemanticMemory) UpdateMetadata(ctx context.Context, docID string, metadata map[string]any) error
UpdateMetadata 更新记忆的元数据。
type SemanticMemoryConfig ¶
type SemanticMemoryConfig struct {
Store vector.VectorStore
Embedder vector.Embedder
NamespaceScope string // "user" | "project" | "resource" | "global"
TopK int
// EnableProvenance 是否启用记忆溯源追踪。
EnableProvenance bool
// ConfidenceCalculator 置信度计算器。
// 如果为 nil, 使用默认配置。
ConfidenceCalculator *ConfidenceCalculator
// LineageManager 谱系管理器。
// 如果为 nil, 不追踪记忆谱系。
LineageManager *LineageManager
// DefaultSourceType 默认的数据源类型。
DefaultSourceType SourceType
}
SemanticMemoryConfig 语义记忆配置。 核心运行时仅依赖接口, 不关心具体 VectorStore/Embedder 实现。
type SessionCompressor ¶
type SessionCompressor interface {
// SummarizeSession 总结整个会话
SummarizeSession(ctx context.Context, messages []agentext.Message) (string, error)
// CompressMessages 压缩消息列表
CompressMessages(ctx context.Context, messages []agentext.Message) ([]agentext.Message, error)
// GetCompressionStats 获取压缩统计信息
GetCompressionStats() CompressionStats
}
SessionCompressor 会话压缩器接口 提供多层次的会话内容压缩和总结功能
type SessionManagerConfig ¶
type SessionManagerConfig struct {
// 默认作用域
DefaultScope MemoryScope
// 是否允许跨会话共享
EnableSharing bool
// 是否允许全局记忆
EnableGlobal bool
// 记忆过期时间
MemoryTTL time.Duration
MaxSharedSessions int
}
SessionManagerConfig 会话管理器配置
func DefaultSessionManagerConfig ¶
func DefaultSessionManagerConfig() SessionManagerConfig
DefaultSessionManagerConfig 返回默认配置
type SessionMemoryManager ¶
type SessionMemoryManager struct {
// contains filtered or unexported fields
}
SessionMemoryManager 会话记忆管理器 管理跨会话的记忆共享和访问控制
func NewSessionMemoryManager ¶
func NewSessionMemoryManager(config SessionManagerConfig) *SessionMemoryManager
NewSessionMemoryManager 创建会话记忆管理器
func (*SessionMemoryManager) AddMemory ¶
func (m *SessionMemoryManager) AddMemory( ctx context.Context, sessionID string, content string, metadata map[string]any, scope MemoryScope, ) (string, error)
AddMemory 添加记忆
func (*SessionMemoryManager) CleanupExpired ¶
func (m *SessionMemoryManager) CleanupExpired(ctx context.Context) int
CleanupExpired 清理过期记忆
func (*SessionMemoryManager) DeleteMemory ¶
func (m *SessionMemoryManager) DeleteMemory( ctx context.Context, memoryID string, sessionID string, ) error
DeleteMemory 删除记忆(仅所有者)
func (*SessionMemoryManager) GetMemory ¶
func (m *SessionMemoryManager) GetMemory( ctx context.Context, memoryID string, sessionID string, ) (*SharedMemory, error)
GetMemory 获取记忆(带权限检查)
func (*SessionMemoryManager) GetStats ¶
func (m *SessionMemoryManager) GetStats() SessionStats
GetStats 获取统计信息
func (*SessionMemoryManager) ListSessionMemories ¶
func (m *SessionMemoryManager) ListSessionMemories( ctx context.Context, sessionID string, scope MemoryScope, ) ([]*SharedMemory, error)
ListSessionMemories 列出会话可访问的所有记忆
func (*SessionMemoryManager) RevokeAccess ¶
func (m *SessionMemoryManager) RevokeAccess( ctx context.Context, memoryID string, fromSessionID string, toSessionID string, ) error
RevokeAccess 撤销访问权限
func (*SessionMemoryManager) ShareMemory ¶
func (m *SessionMemoryManager) ShareMemory( ctx context.Context, memoryID string, fromSessionID string, toSessionID string, accessLevel AccessLevel, ) error
ShareMemory 共享记忆给其他会话
type SessionStats ¶
type SessionStats struct {
TotalMemories int // 总记忆数
TotalSessions int // 总会话数
GlobalMemories int // 全局记忆数
ScopeDistribution map[MemoryScope]int // 作用域分布
}
SessionStats 会话统计信息
type SessionSummary ¶ added in v0.13.0
type SessionSummary struct {
// 基本信息
SessionID string `json:"session_id"`
Summary string `json:"summary"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// 详细信息
Topics []string `json:"topics"` // 讨论的主题
KeyPoints []string `json:"key_points"` // 关键要点
Decisions []string `json:"decisions"` // 做出的决策
ActionItems []string `json:"action_items"` // 行动项
Metadata map[string]any `json:"metadata"`
// 统计信息
MessageCount int `json:"message_count"` // 消息数量
TokenCount int `json:"token_count"` // Token 数量
}
SessionSummary 会话摘要
type SessionSummaryConfig ¶ added in v0.13.0
type SessionSummaryConfig struct {
// Enabled 是否启用会话摘要
Enabled bool
// AutoUpdate 是否自动更新摘要
AutoUpdate bool
// UpdateInterval 自动更新间隔(消息数量)
UpdateInterval int
// MaxSummaryLength 摘要最大长度(字符数)
MaxSummaryLength int
// IncludeTopics 是否提取主题
IncludeTopics bool
// IncludeKeyPoints 是否提取关键要点
IncludeKeyPoints bool
// IncludeDecisions 是否提取决策
IncludeDecisions bool
// IncludeActionItems 是否提取行动项
IncludeActionItems bool
// SummaryPrompt 自定义摘要提示词
SummaryPrompt string
}
SessionSummaryConfig 会话摘要配置
func DefaultSessionSummaryConfig ¶ added in v0.13.0
func DefaultSessionSummaryConfig() SessionSummaryConfig
DefaultSessionSummaryConfig 返回默认配置
type SessionSummaryManager ¶ added in v0.13.0
type SessionSummaryManager struct {
// contains filtered or unexported fields
}
SessionSummaryManager 会话摘要管理器
func NewSessionSummaryManager ¶ added in v0.13.0
func NewSessionSummaryManager(provider provider.Provider, config SessionSummaryConfig) *SessionSummaryManager
NewSessionSummaryManager 创建会话摘要管理器
func (*SessionSummaryManager) DeleteSummary ¶ added in v0.13.0
func (m *SessionSummaryManager) DeleteSummary(sessionID string) error
DeleteSummary 删除会话摘要
func (*SessionSummaryManager) GenerateSummary ¶ added in v0.13.0
func (m *SessionSummaryManager) GenerateSummary( ctx context.Context, sessionID string, messages []types.Message, ) (*SessionSummary, error)
GenerateSummary 生成会话摘要
func (*SessionSummaryManager) GetSummary ¶ added in v0.13.0
func (m *SessionSummaryManager) GetSummary(sessionID string) (*SessionSummary, bool)
GetSummary 获取会话摘要
func (*SessionSummaryManager) GetSummaryText ¶ added in v0.13.0
func (m *SessionSummaryManager) GetSummaryText(sessionID string) string
GetSummaryText 获取摘要文本(用于添加到上下文)
func (*SessionSummaryManager) ListSummaries ¶ added in v0.13.0
func (m *SessionSummaryManager) ListSummaries() []*SessionSummary
ListSummaries 列出所有会话摘要
func (*SessionSummaryManager) ShouldUpdate ¶ added in v0.13.0
func (m *SessionSummaryManager) ShouldUpdate(sessionID string, currentMessageCount int) bool
ShouldUpdate 判断是否应该更新摘要
func (*SessionSummaryManager) UpdateSummary ¶ added in v0.13.0
func (m *SessionSummaryManager) UpdateSummary( ctx context.Context, sessionID string, newMessages []types.Message, ) (*SessionSummary, error)
UpdateSummary 更新会话摘要
type SourceType ¶
type SourceType string
SourceType 定义记忆的来源类型。
const ( // SourceBootstrapped 来自系统预加载数据(如CRM)。 // 这是最高信任度的数据源,通常用于解决冷启动问题。 SourceBootstrapped SourceType = "bootstrapped" // SourceUserInput 来自用户输入。 // 细分为显式(用户明确指示记住)和隐式(从对话中推断)。 SourceUserInput SourceType = "user_input" // SourceToolOutput 来自工具执行结果。 // 这种记忆通常比较脆弱和易过时,更适合短期缓存。 SourceToolOutput SourceType = "tool_output" // SourceAgent 来自其他代理的输出。 SourceAgent SourceType = "agent" )
type SummarizationStrategy ¶
type SummarizationStrategy struct {
// contains filtered or unexported fields
}
SummarizationStrategy 总结策略。 将多条相关记忆总结为更简洁的表述。
func NewSummarizationStrategy ¶
func NewSummarizationStrategy(maxPerGroup int) *SummarizationStrategy
NewSummarizationStrategy 创建总结策略。
func (*SummarizationStrategy) Consolidate ¶
func (s *SummarizationStrategy) Consolidate(ctx context.Context, memories []MemoryWithScore, llm LLMProvider) (*ConsolidatedMemory, error)
Consolidate 执行合并。
func (*SummarizationStrategy) ShouldConsolidate ¶
func (s *SummarizationStrategy) ShouldConsolidate(ctx context.Context, memories []MemoryWithScore) (bool, ConsolidationReason)
ShouldConsolidate 判断是否应该合并。
type WorkingMemoryConfig ¶
type WorkingMemoryConfig struct {
Backend backends.BackendProtocol // 存储后端
BasePath string // 存储根路径,默认 "/working_memory/"
Scope WorkingMemoryScope // 作用域:thread 或 resource
Schema *JSONSchema // 可选的 JSON Schema 验证
Template string // 可选的 Markdown 模板
DefaultTTL time.Duration // 可选的过期时间(0 表示不过期)
}
WorkingMemoryConfig Working Memory 管理器配置
type WorkingMemoryData ¶
type WorkingMemoryData struct {
Meta WorkingMemoryMeta `json:"meta"`
Content string `json:"content"`
}
WorkingMemoryData Working Memory 数据结构
type WorkingMemoryManager ¶
type WorkingMemoryManager struct {
// contains filtered or unexported fields
}
WorkingMemoryManager Working Memory 管理器 特点: - 支持 thread/resource 作用域自动管理 - 可选的 JSON Schema 验证 - 可选的 Markdown 模板渲染 - 基于 BackendProtocol,保持松耦合
func NewWorkingMemoryManager ¶
func NewWorkingMemoryManager(cfg *WorkingMemoryConfig) (*WorkingMemoryManager, error)
NewWorkingMemoryManager 创建 Working Memory 管理器
func (*WorkingMemoryManager) Delete ¶
func (wm *WorkingMemoryManager) Delete(ctx context.Context, threadID, resourceID string) error
Delete 删除 Working Memory
func (*WorkingMemoryManager) FindAndReplace ¶
func (wm *WorkingMemoryManager) FindAndReplace(ctx context.Context, threadID, resourceID, searchString, newContent string) error
FindAndReplace 在现有内容中查找并替换(实验性功能,对标 Mastra) searchString: 要查找的字符串 newContent: 替换后的新内容 如果 searchString 为空,则追加到末尾
func (*WorkingMemoryManager) Get ¶
func (wm *WorkingMemoryManager) Get(ctx context.Context, threadID, resourceID string) (string, error)
Get 获取 Working Memory 内容 根据配置的 scope 自动选择读取路径: - thread scope: /working_memory/threads/<threadID>.json - resource scope: /working_memory/resources/<resourceID>.json
func (*WorkingMemoryManager) GetSchema ¶
func (wm *WorkingMemoryManager) GetSchema() *JSONSchema
GetSchema 返回配置的 JSON Schema
func (*WorkingMemoryManager) GetScope ¶
func (wm *WorkingMemoryManager) GetScope() WorkingMemoryScope
GetScope 返回当前配置的作用域
func (*WorkingMemoryManager) GetTemplate ¶
func (wm *WorkingMemoryManager) GetTemplate() string
GetTemplate 返回配置的模板
type WorkingMemoryMeta ¶
type WorkingMemoryMeta struct {
ThreadID string `json:"thread_id"`
ResourceID string `json:"resource_id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
ExpiresAt *time.Time `json:"expires_at,omitempty"`
}
WorkingMemoryMeta Working Memory 元数据
type WorkingMemoryScope ¶
type WorkingMemoryScope string
WorkingMemoryScope 定义 Working Memory 的作用域
const ( // ScopeThread Working Memory 以 thread 为作用域(每个会话独立) ScopeThread WorkingMemoryScope = "thread" // ScopeResource Working Memory 以 resource 为作用域(同一资源下的所有会话共享) ScopeResource WorkingMemoryScope = "resource" )
Source Files
¶
- bridge.go
- confidence.go
- consolidation.go
- consolidation_strategies.go
- lineage.go
- memory.go
- observation_compressor.go
- preference.go
- preference_storage.go
- provenance.go
- quality_analyzer.go
- quality_metrics.go
- reference_registry.go
- schema.go
- scope.go
- semantic.go
- session_compressor.go
- session_manager.go
- session_summary.go
- working.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package auto 提供自动记忆捕获系统 自动从对话和事件中生成记忆,支持 tags 标签系统
|
Package auto 提供自动记忆捕获系统 自动从对话和事件中生成记忆,支持 tags 标签系统 |
|
Package dialog 提供对话偏好提取功能 从用户对话中自动识别偏好、约束、风格等信息
|
Package dialog 提供对话偏好提取功能 从用户对话中自动识别偏好、约束、风格等信息 |
|
Package project 提供项目级别的外部记忆系统 用于存储项目上下文、用户偏好、工作流状态等信息 典型实现:AGENTS.md 文件模式
|
Package project 提供项目级别的外部记忆系统 用于存储项目上下文、用户偏好、工作流状态等信息 典型实现:AGENTS.md 文件模式 |
|
Package rules 提供规则管理系统 支持 Global(全局)和 Project(项目)两个级别的规则
|
Package rules 提供规则管理系统 支持 Global(全局)和 Project(项目)两个级别的规则 |