Help us shape the future of Go! Take the 2026 Go Developer Survey

memorycore

package
v1.11.3 Latest Latest
Warning

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

Go to latest
Published: Apr 18, 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