memory

package
v0.7.1 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2025 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// EmbeddingDimension is the dimension of embedding vectors
	EmbeddingDimension = 256
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ScoringConfig added in v0.6.2

type ScoringConfig struct {
	// EMA parameters
	EMAAlpha float64 // Weight for new feedback (0.0-1.0), default: 0.3
	ScoreMin float64 // Minimum score value, default: -10.0
	ScoreMax float64 // Maximum score value, default: +10.0

	// Search parameters
	SearchMultiplier    int     // Multiplier for initial search limit, default: 10
	SearchMaxCandidates int     // Maximum candidates for re-ranking, default: 50
	FilterMinQuality    float64 // Minimum quality score for filtering, default: -5.0

	// Ranking weights (should sum to 1.0)
	RankSimilarityWeight float64 // Weight for similarity score, default: 0.5
	RankQualityWeight    float64 // Weight for quality score, default: 0.3
	RankRecencyWeight    float64 // Weight for recency score, default: 0.2
	RecencyHalfLifeDays  float64 // Half-life for recency decay in days, default: 30

	// Pruning thresholds
	PruneCriticalScore float64 // Critical score threshold (immediate deletion), default: -8.0
	PruneHarmfulScore  float64 // Harmful score threshold, default: -5.0
	PruneHarmfulDays   int     // Days before pruning harmful memories, default: 90
	PruneModerateScore float64 // Moderate score threshold, default: -3.0
	PruneModerateDays  int     // Days before pruning moderate memories, default: 180
}

ScoringConfig holds all configurable parameters for memory scoring

func DefaultScoringConfig added in v0.6.2

func DefaultScoringConfig() ScoringConfig

DefaultScoringConfig returns default configuration

func (*ScoringConfig) Validate added in v0.6.2

func (c *ScoringConfig) Validate() error

Validate checks if the ScoringConfig has valid values

type Service

type Service struct {
	ScoringConfig ScoringConfig
	// contains filtered or unexported fields
}

func New

func New(llmClient gollem.LLMClient, repo interfaces.Repository) *Service

func (*Service) CollectAndApplyFeedback added in v0.6.2

func (s *Service) CollectAndApplyFeedback(
	ctx context.Context,
	agentID string,
	usedMemories []*memory.AgentMemory,
	taskQuery string,
	session gollem.Session,
	execResult *gollem.ExecuteResponse,
	execError error,
) error

CollectAndApplyFeedback collects feedback from execution and updates scores This is the main entry point for the feedback system

func (*Service) FormatMemoriesForPrompt

func (s *Service) FormatMemoriesForPrompt(
	execMem *memory.ExecutionMemory,
	ticketMem *memory.TicketMemory,
) string

FormatMemoriesForPrompt formats memories as markdown for system prompt

func (*Service) GenerateExecutionMemory

func (s *Service) GenerateExecutionMemory(
	ctx context.Context,
	schemaID types.AlertSchema,
	history *gollem.History,
	executionError error,
) (*memory.ExecutionMemory, error)

GenerateExecutionMemory generates memory from execution history

func (*Service) GenerateTicketMemory

func (s *Service) GenerateTicketMemory(
	ctx context.Context,
	schemaID types.AlertSchema,
	ticketData *ticket.Ticket,
	comments []ticket.Comment,
) (*memory.TicketMemory, error)

GenerateTicketMemory generates memory from ticket resolution

func (*Service) LoadMemoriesForPrompt

func (s *Service) LoadMemoriesForPrompt(
	ctx context.Context,
	schemaID types.AlertSchema,
) (execMem *memory.ExecutionMemory, ticketMem *memory.TicketMemory, err error)

LoadMemoriesForPrompt loads both types of memories for a schema

func (*Service) PruneAgentMemories added in v0.6.2

func (s *Service) PruneAgentMemories(ctx context.Context, agentID string) (int, error)

PruneAgentMemories deletes low-quality memories for an agent based on strict criteria

func (*Service) SaveAgentMemory

func (s *Service) SaveAgentMemory(ctx context.Context, mem *memory.AgentMemory) error

SaveAgentMemory saves an agent memory record with automatic embedding generation

func (*Service) SearchRelevantAgentMemories

func (s *Service) SearchRelevantAgentMemories(ctx context.Context, agentID, query string, limit int) ([]*memory.AgentMemory, error)

SearchRelevantAgentMemories searches for similar memories using semantic search with re-ranking

func (*Service) SearchRelevantExecutionMemories

func (s *Service) SearchRelevantExecutionMemories(ctx context.Context, schemaID types.AlertSchema, query string, limit int) ([]*memory.ExecutionMemory, error)

SearchRelevantExecutionMemories searches for similar execution memories using semantic search

Jump to

Keyboard shortcuts

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