MCPcopy Create free account
hub / github.com/astercloud/aster / TrackMemory

Method TrackMemory

pkg/memory/lineage.go:48–66  ·  view source on GitHub ↗

TrackMemory 追踪一个新记忆。

(memoryID string, metadata *LineageMetadata)

Source from the content-addressed store, hash-verified

46
47// TrackMemory 追踪一个新记忆。
48func (lg *LineageGraph) TrackMemory(memoryID string, metadata *LineageMetadata) {
49 lg.mu.Lock()
50 defer lg.mu.Unlock()
51
52 lg.memoryMetadata[memoryID] = metadata
53
54 // 建立派生关系
55 for _, parentID := range metadata.DerivedFromIDs {
56 if _, exists := lg.parentToChildren[parentID]; !exists {
57 lg.parentToChildren[parentID] = []string{}
58 }
59 lg.parentToChildren[parentID] = append(lg.parentToChildren[parentID], memoryID)
60
61 if _, exists := lg.childToParents[memoryID]; !exists {
62 lg.childToParents[memoryID] = []string{}
63 }
64 lg.childToParents[memoryID] = append(lg.childToParents[memoryID], parentID)
65 }
66}
67
68// GetDerivedMemories 获取派生自指定记忆的所有记忆(递归)。
69func (lg *LineageGraph) GetDerivedMemories(memoryID string) []string {

Calls

no outgoing calls