memorycore

package
v1.4.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 3, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const MaxRecentMemory = 50

MaxRecentMemory is the upper bound for in-process recent-memory cache.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache struct {
	// contains filtered or unexported fields
}

Cache manages recent memory records in-process and delegates persistence.

func NewCache

func NewCache(agentID string, memory MemoryManager, logger *zap.Logger) *Cache

func (*Cache) GetRecentMessages

func (mc *Cache) GetRecentMessages() []types.Message

func (*Cache) HasMemory

func (mc *Cache) HasMemory() bool

func (*Cache) HasRecentMemory

func (mc *Cache) HasRecentMemory() bool

func (*Cache) LoadRecent

func (mc *Cache) LoadRecent(ctx context.Context)

func (*Cache) Manager

func (mc *Cache) Manager() MemoryManager

func (*Cache) Recall

func (mc *Cache) Recall(ctx context.Context, query string, topK int) ([]MemoryRecord, error)

func (*Cache) Save

func (mc *Cache) Save(ctx context.Context, content string, kind MemoryKind, metadata map[string]any) error

type Coordinator

type Coordinator struct {
	// contains filtered or unexported fields
}

Coordinator coordinates memory operations with a write-through cache.

func NewCoordinator

func NewCoordinator(agentID string, memory MemoryManager, logger *zap.Logger) *Coordinator

func (*Coordinator) ClearRecentMemory

func (mc *Coordinator) ClearRecentMemory()

func (*Coordinator) GetMemoryManager

func (mc *Coordinator) GetMemoryManager() MemoryManager

func (*Coordinator) GetRecentMemory

func (mc *Coordinator) GetRecentMemory() []MemoryRecord

func (*Coordinator) HasMemory

func (mc *Coordinator) HasMemory() bool

func (*Coordinator) LoadRecent

func (mc *Coordinator) LoadRecent(ctx context.Context, kind MemoryKind, limit int) error

func (*Coordinator) RecallRelevant

func (mc *Coordinator) RecallRelevant(ctx context.Context, query string, topK int) ([]MemoryRecord, error)

func (*Coordinator) Save

func (mc *Coordinator) Save(ctx context.Context, content string, kind MemoryKind, metadata map[string]any) error

func (*Coordinator) SaveConversation

func (mc *Coordinator) SaveConversation(ctx context.Context, input, output string) error

func (*Coordinator) Search

func (mc *Coordinator) Search(ctx context.Context, query string, topK int) ([]MemoryRecord, error)

type MemoryKind

type MemoryKind = types.MemoryKind

MemoryKind is the memory category.

const (
	MemoryShortTerm  MemoryKind = types.MemoryShortTerm
	MemoryWorking    MemoryKind = types.MemoryWorking
	MemoryLongTerm   MemoryKind = types.MemoryLongTerm
	MemoryEpisodic   MemoryKind = types.MemoryEpisodic
	MemorySemantic   MemoryKind = types.MemorySemantic
	MemoryProcedural MemoryKind = types.MemoryProcedural
)

type MemoryManager

type MemoryManager interface {
	MemoryWriter
	MemoryReader
}

MemoryManager combines read/write operations.

type MemoryReader

type MemoryReader interface {
	LoadRecent(ctx context.Context, agentID string, kind MemoryKind, limit int) ([]MemoryRecord, error)
	Search(ctx context.Context, agentID string, query string, topK int) ([]MemoryRecord, error)
	Get(ctx context.Context, id string) (*MemoryRecord, error)
}

MemoryReader reads memory.

type MemoryRecord

type MemoryRecord = types.MemoryRecord

MemoryRecord is the unified memory record.

type MemoryWriter

type MemoryWriter interface {
	Save(ctx context.Context, rec MemoryRecord) error
	Delete(ctx context.Context, id string) error
	Clear(ctx context.Context, agentID string, kind MemoryKind) error
}

MemoryWriter writes memory.

type NamespacedManager

type NamespacedManager struct {
	// contains filtered or unexported fields
}

NamespacedManager wraps a MemoryManager and prefixes agentID with a namespace, ensuring sub-agent memory reads/writes are isolated from the parent agent.

func NewNamespacedManager

func NewNamespacedManager(inner MemoryManager, namespace string) *NamespacedManager

NewNamespacedManager creates a NamespacedManager. The namespace is typically the sub-agent's agent_id.

func (*NamespacedManager) Clear

func (n *NamespacedManager) Clear(ctx context.Context, agentID string, kind MemoryKind) error

func (*NamespacedManager) Delete

func (n *NamespacedManager) Delete(ctx context.Context, id string) error

func (*NamespacedManager) Get

func (*NamespacedManager) LoadRecent

func (n *NamespacedManager) LoadRecent(ctx context.Context, agentID string, kind MemoryKind, limit int) ([]MemoryRecord, error)

func (*NamespacedManager) Namespace

func (n *NamespacedManager) Namespace() string

Namespace returns the configured namespace.

func (*NamespacedManager) Save

func (*NamespacedManager) Search

func (n *NamespacedManager) Search(ctx context.Context, agentID string, query string, topK int) ([]MemoryRecord, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL