Documentation
¶
Index ¶
- Constants
- type Cache
- func (mc *Cache) GetRecentMessages() []types.Message
- func (mc *Cache) HasMemory() bool
- func (mc *Cache) HasRecentMemory() bool
- func (mc *Cache) LoadRecent(ctx context.Context)
- func (mc *Cache) Manager() MemoryManager
- func (mc *Cache) Recall(ctx context.Context, query string, topK int) ([]MemoryRecord, error)
- func (mc *Cache) Save(ctx context.Context, content string, kind MemoryKind, metadata map[string]any) error
- type Coordinator
- func (mc *Coordinator) ClearRecentMemory()
- func (mc *Coordinator) GetMemoryManager() MemoryManager
- func (mc *Coordinator) GetRecentMemory() []MemoryRecord
- func (mc *Coordinator) HasMemory() bool
- func (mc *Coordinator) LoadRecent(ctx context.Context, kind MemoryKind, limit int) error
- func (mc *Coordinator) RecallRelevant(ctx context.Context, query string, topK int) ([]MemoryRecord, error)
- func (mc *Coordinator) Save(ctx context.Context, content string, kind MemoryKind, metadata map[string]any) error
- func (mc *Coordinator) SaveConversation(ctx context.Context, input, output string) error
- func (mc *Coordinator) Search(ctx context.Context, query string, topK int) ([]MemoryRecord, error)
- type MemoryKind
- type MemoryManager
- type MemoryReader
- type MemoryRecord
- type MemoryWriter
- type NamespacedManager
- func (n *NamespacedManager) Clear(ctx context.Context, agentID string, kind MemoryKind) error
- func (n *NamespacedManager) Delete(ctx context.Context, id string) error
- func (n *NamespacedManager) Get(ctx context.Context, id string) (*MemoryRecord, error)
- func (n *NamespacedManager) LoadRecent(ctx context.Context, agentID string, kind MemoryKind, limit int) ([]MemoryRecord, error)
- func (n *NamespacedManager) Namespace() string
- func (n *NamespacedManager) Save(ctx context.Context, rec MemoryRecord) error
- func (n *NamespacedManager) Search(ctx context.Context, agentID string, query string, topK int) ([]MemoryRecord, error)
Constants ¶
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 (*Cache) GetRecentMessages ¶
func (*Cache) HasRecentMemory ¶
func (*Cache) LoadRecent ¶
func (*Cache) Manager ¶
func (mc *Cache) Manager() MemoryManager
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 (n *NamespacedManager) Get(ctx context.Context, id string) (*MemoryRecord, error)
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 (n *NamespacedManager) Save(ctx context.Context, rec MemoryRecord) error
func (*NamespacedManager) Search ¶
func (n *NamespacedManager) Search(ctx context.Context, agentID string, query string, topK int) ([]MemoryRecord, error)