Documentation
¶
Index ¶
- func CreateKnowledgeContext(data interface{}) ([]byte, error)
- func CreatePolicyActions(data interface{}) ([]byte, error)
- func CreatePolicyConditions(data interface{}) ([]byte, error)
- func CreatePolicyParameters(data interface{}) ([]byte, error)
- func CreateSkillImplementation(data interface{}) ([]byte, error)
- type AgentFilter
- type EmbeddingFunc
- type Experience
- type ExtractionConfig
- type Fact
- type Filter
- type KnowledgeExtractor
- func (ke *KnowledgeExtractor) ExtractFactsFromMarketData(ctx context.Context, symbol string, since time.Time) (int, error)
- func (ke *KnowledgeExtractor) ExtractFromLLMDecisions(ctx context.Context, agentName string, since time.Time) (int, error)
- func (ke *KnowledgeExtractor) ExtractFromTradingResults(ctx context.Context, agentName string, since time.Time) (int, error)
- type KnowledgeItem
- type KnowledgeType
- type MinConfidenceFilter
- type PatternCandidate
- type Policy
- type PolicyType
- type ProceduralMemory
- func (pm *ProceduralMemory) DeactivatePolicy(ctx context.Context, id uuid.UUID) error
- func (pm *ProceduralMemory) GetBestPolicies(ctx context.Context, limit int) ([]*Policy, error)
- func (pm *ProceduralMemory) GetPoliciesByAgent(ctx context.Context, agentName string, activeOnly bool) ([]*Policy, error)
- func (pm *ProceduralMemory) GetPoliciesByType(ctx context.Context, policyType PolicyType, activeOnly bool) ([]*Policy, error)
- func (pm *ProceduralMemory) GetSkillsByAgent(ctx context.Context, agentName string, activeOnly bool) ([]*Skill, error)
- func (pm *ProceduralMemory) RecordPolicyApplication(ctx context.Context, id uuid.UUID, success bool, pnl float64) error
- func (pm *ProceduralMemory) RecordSkillUsage(ctx context.Context, id uuid.UUID, success bool, duration float64, ...) error
- func (pm *ProceduralMemory) StorePolicy(ctx context.Context, policy *Policy) error
- func (pm *ProceduralMemory) StoreSkill(ctx context.Context, skill *Skill) error
- type SemanticMemory
- func (sm *SemanticMemory) Delete(ctx context.Context, id uuid.UUID) error
- func (sm *SemanticMemory) FindByAgent(ctx context.Context, agentName string, limit int) ([]*KnowledgeItem, error)
- func (sm *SemanticMemory) FindByType(ctx context.Context, knowledgeType KnowledgeType, limit int) ([]*KnowledgeItem, error)
- func (sm *SemanticMemory) FindSimilar(ctx context.Context, embedding []float32, limit int, filters ...Filter) ([]*KnowledgeItem, error)
- func (sm *SemanticMemory) GetMostRelevant(ctx context.Context, limit int, filters ...Filter) ([]*KnowledgeItem, error)
- func (sm *SemanticMemory) GetStats(ctx context.Context) (map[string]interface{}, error)
- func (sm *SemanticMemory) PruneExpired(ctx context.Context) (int, error)
- func (sm *SemanticMemory) PruneLowQuality(ctx context.Context, minValidations int, minSuccessRate float64) (int, error)
- func (sm *SemanticMemory) RecordAccess(ctx context.Context, id uuid.UUID) error
- func (sm *SemanticMemory) RecordValidation(ctx context.Context, id uuid.UUID, success bool) error
- func (sm *SemanticMemory) Store(ctx context.Context, item *KnowledgeItem) error
- func (sm *SemanticMemory) UpdateConfidence(ctx context.Context, id uuid.UUID, confidence float64) error
- type Skill
- type SkillType
- type SymbolFilter
- type TypeFilter
- type ValidOnlyFilter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateKnowledgeContext ¶
Helper function to create context JSON
func CreatePolicyActions ¶
CreatePolicyActions creates JSONB actions for a policy
func CreatePolicyConditions ¶
CreatePolicyConditions creates JSONB conditions for a policy
func CreatePolicyParameters ¶
CreatePolicyParameters creates JSONB parameters for a policy
func CreateSkillImplementation ¶
CreateSkillImplementation creates JSONB implementation for a skill
Types ¶
type AgentFilter ¶
type AgentFilter struct {
AgentName string
}
AgentFilter filters by agent name
func (AgentFilter) SQL ¶
func (f AgentFilter) SQL(argIndex int) (string, []interface{})
type EmbeddingFunc ¶
EmbeddingFunc is a function that generates embeddings for text
type Experience ¶
type ExtractionConfig ¶
type ExtractionConfig struct {
MinConfidence float64 // Minimum confidence to store knowledge (default: 0.5)
MinOccurrences int // Minimum pattern occurrences to extract (default: 3)
EmbeddingFunc EmbeddingFunc
}
ExtractionConfig configures the knowledge extraction process
func DefaultExtractionConfig ¶
func DefaultExtractionConfig() ExtractionConfig
DefaultExtractionConfig returns sensible defaults
type KnowledgeExtractor ¶
type KnowledgeExtractor struct {
// contains filtered or unexported fields
}
KnowledgeExtractor extracts knowledge from historical data and stores it in semantic memory
func NewKnowledgeExtractor ¶
func NewKnowledgeExtractor(pool *pgxpool.Pool, config ExtractionConfig) *KnowledgeExtractor
NewKnowledgeExtractor creates a new knowledge extractor
func NewKnowledgeExtractorFromDB ¶
func NewKnowledgeExtractorFromDB(database *db.DB, config ExtractionConfig) *KnowledgeExtractor
NewKnowledgeExtractorFromDB creates an extractor from existing DB connection
func (*KnowledgeExtractor) ExtractFactsFromMarketData ¶
func (ke *KnowledgeExtractor) ExtractFactsFromMarketData(ctx context.Context, symbol string, since time.Time) (int, error)
ExtractFactsFromMarketData analyzes market data to extract factual knowledge
func (*KnowledgeExtractor) ExtractFromLLMDecisions ¶
func (ke *KnowledgeExtractor) ExtractFromLLMDecisions(ctx context.Context, agentName string, since time.Time) (int, error)
ExtractFromLLMDecisions analyzes LLM decisions and extracts patterns
func (*KnowledgeExtractor) ExtractFromTradingResults ¶
func (ke *KnowledgeExtractor) ExtractFromTradingResults(ctx context.Context, agentName string, since time.Time) (int, error)
ExtractFromTradingResults analyzes trading results and extracts experiences
type KnowledgeItem ¶
type KnowledgeItem struct {
ID uuid.UUID `json:"id"`
// Knowledge metadata
Type KnowledgeType `json:"type"`
Content string `json:"content"` // Natural language description
Embedding []float32 `json:"embedding"` // 1536-dim vector for similarity search
Confidence float64 `json:"confidence"` // 0.0 to 1.0
Importance float64 `json:"importance"` // 0.0 to 1.0, affects retrieval priority
AccessCount int `json:"access_count"` // How many times this knowledge was accessed
// Provenance (where did this knowledge come from?)
Source string `json:"source"` // "llm_decision", "manual", "backtest", "pattern_extraction"
SourceID *uuid.UUID `json:"source_id"` // ID of source (decision ID, backtest ID, etc.)
AgentName string `json:"agent_name"` // Which agent learned/created this knowledge
Symbol *string `json:"symbol"` // Associated symbol (if applicable)
Context []byte `json:"context"` // JSONB - additional context (market conditions, etc.)
// Validation
ValidationCount int `json:"validation_count"` // How many times this knowledge was validated
SuccessCount int `json:"success_count"` // How many times applying this knowledge succeeded
FailureCount int `json:"failure_count"` // How many times it failed
LastValidated time.Time `json:"last_validated"`
// Temporal
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
ExpiresAt *time.Time `json:"expires_at"` // Optional expiration for time-sensitive knowledge
}
KnowledgeItem represents a piece of knowledge in semantic memory
func (*KnowledgeItem) Age ¶
func (k *KnowledgeItem) Age() time.Duration
Age returns how old this knowledge is
func (*KnowledgeItem) IsValid ¶
func (k *KnowledgeItem) IsValid() bool
IsValid checks if the knowledge is still valid (not expired, has good success rate)
func (*KnowledgeItem) Recency ¶
func (k *KnowledgeItem) Recency() float64
Recency returns a score (0.0 to 1.0) based on how recent the knowledge is Newer knowledge gets higher scores
func (*KnowledgeItem) RelevanceScore ¶
func (k *KnowledgeItem) RelevanceScore() float64
RelevanceScore combines multiple factors into a single relevance score
func (*KnowledgeItem) SuccessRate ¶
func (k *KnowledgeItem) SuccessRate() float64
SuccessRate returns the success rate of this knowledge (0.0 to 1.0)
type KnowledgeType ¶
type KnowledgeType string
KnowledgeType represents the type of knowledge stored in semantic memory
const ( // KnowledgeFact represents factual information (e.g., "BTC price tends to rise after halving events") KnowledgeFact KnowledgeType = "fact" // KnowledgePattern represents observed patterns (e.g., "When RSI > 70 and volume decreases, price often corrects") KnowledgePattern KnowledgeType = "pattern" // KnowledgeExperience represents learned experiences (e.g., "Stop losses at 2% work better than 5% for volatile assets") KnowledgeExperience KnowledgeType = "experience" // KnowledgeStrategy represents strategic knowledge (e.g., "Mean reversion works better in ranging markets") KnowledgeStrategy KnowledgeType = "strategy" // KnowledgeRisk represents risk-related knowledge (e.g., "Drawdowns > 15% indicate strategy failure") KnowledgeRisk KnowledgeType = "risk" )
type MinConfidenceFilter ¶
type MinConfidenceFilter struct {
MinConfidence float64
}
MinConfidenceFilter filters by minimum confidence
func (MinConfidenceFilter) SQL ¶
func (f MinConfidenceFilter) SQL(argIndex int) (string, []interface{})
type PatternCandidate ¶
type PatternCandidate struct {
Condition string
Outcome string
Occurrences int
SuccessCount int
FailureCount int
AvgPnL float64
Symbols []string
AgentNames []string
DecisionIDs []uuid.UUID
}
PatternCandidate represents a potential pattern to extract
func (*PatternCandidate) Confidence ¶
func (pc *PatternCandidate) Confidence() float64
Confidence returns confidence score based on occurrences and success rate
func (*PatternCandidate) SuccessRate ¶
func (pc *PatternCandidate) SuccessRate() float64
SuccessRate returns the success rate of this pattern
type Policy ¶
type Policy struct {
ID uuid.UUID `json:"id"`
// Policy metadata
Type PolicyType `json:"type"`
Name string `json:"name"` // Human-readable name
Description string `json:"description"` // What this policy does
// Policy definition
Conditions []byte `json:"conditions"` // JSONB - when to apply this policy
Actions []byte `json:"actions"` // JSONB - what actions to take
Parameters []byte `json:"parameters"` // JSONB - configurable parameters
// Performance tracking
TimesApplied int `json:"times_applied"` // How many times this policy was used
SuccessCount int `json:"success_count"` // How many times it succeeded
FailureCount int `json:"failure_count"` // How many times it failed
AvgPnL float64 `json:"avg_pnl"` // Average P&L when applied
TotalPnL float64 `json:"total_pnl"` // Cumulative P&L
Sharpe float64 `json:"sharpe"` // Sharpe ratio
MaxDrawdown float64 `json:"max_drawdown"` // Maximum drawdown
WinRate float64 `json:"win_rate"` // Win rate (0.0 to 1.0)
// Learning metadata
AgentName string `json:"agent_name"` // Which agent learned this policy
Symbol *string `json:"symbol"` // Associated symbol (if specific)
LearnedFrom string `json:"learned_from"` // Source: "backtest", "live_trading", "manual"
SourceID *uuid.UUID `json:"source_id"` // ID of source (backtest ID, session ID, etc.)
Confidence float64 `json:"confidence"` // Confidence in this policy (0.0 to 1.0)
IsActive bool `json:"is_active"` // Whether this policy is currently active
Priority int `json:"priority"` // Priority when multiple policies match (higher = more priority)
// Temporal
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
LastApplied *time.Time `json:"last_applied"`
LastModified *time.Time `json:"last_modified"`
}
Policy represents a learned trading policy or rule
func (*Policy) IsPerforming ¶
IsPerforming checks if the policy is performing well
func (*Policy) SuccessRate ¶
SuccessRate returns the success rate of this policy
type PolicyType ¶
type PolicyType string
PolicyType represents the type of policy stored in procedural memory
const ( // PolicyEntry defines when and how to enter a position PolicyEntry PolicyType = "entry" // PolicyExit defines when and how to exit a position PolicyExit PolicyType = "exit" // PolicySizing defines how to size positions PolicySizing PolicyType = "sizing" // PolicyRisk defines risk management rules PolicyRisk PolicyType = "risk" // PolicyHedging defines hedging strategies PolicyHedging PolicyType = "hedging" // PolicyRebalancing defines portfolio rebalancing rules PolicyRebalancing PolicyType = "rebalancing" )
type ProceduralMemory ¶
type ProceduralMemory struct {
// contains filtered or unexported fields
}
ProceduralMemory manages policies and skills
func NewProceduralMemory ¶
func NewProceduralMemory(pool *pgxpool.Pool) *ProceduralMemory
NewProceduralMemory creates a new procedural memory instance
func (*ProceduralMemory) DeactivatePolicy ¶
DeactivatePolicy deactivates a policy
func (*ProceduralMemory) GetBestPolicies ¶
GetBestPolicies retrieves the best performing policies
func (*ProceduralMemory) GetPoliciesByAgent ¶
func (pm *ProceduralMemory) GetPoliciesByAgent(ctx context.Context, agentName string, activeOnly bool) ([]*Policy, error)
GetPoliciesByAgent retrieves policies for a specific agent
func (*ProceduralMemory) GetPoliciesByType ¶
func (pm *ProceduralMemory) GetPoliciesByType(ctx context.Context, policyType PolicyType, activeOnly bool) ([]*Policy, error)
GetPoliciesByType retrieves policies of a specific type
func (*ProceduralMemory) GetSkillsByAgent ¶
func (pm *ProceduralMemory) GetSkillsByAgent(ctx context.Context, agentName string, activeOnly bool) ([]*Skill, error)
GetSkillsByAgent retrieves skills for a specific agent
func (*ProceduralMemory) RecordPolicyApplication ¶
func (pm *ProceduralMemory) RecordPolicyApplication(ctx context.Context, id uuid.UUID, success bool, pnl float64) error
RecordPolicyApplication records that a policy was applied
func (*ProceduralMemory) RecordSkillUsage ¶
func (pm *ProceduralMemory) RecordSkillUsage(ctx context.Context, id uuid.UUID, success bool, duration float64, accuracy float64) error
RecordSkillUsage records that a skill was used
func (*ProceduralMemory) StorePolicy ¶
func (pm *ProceduralMemory) StorePolicy(ctx context.Context, policy *Policy) error
StorePolicy stores a policy in procedural memory
func (*ProceduralMemory) StoreSkill ¶
func (pm *ProceduralMemory) StoreSkill(ctx context.Context, skill *Skill) error
StoreSkill stores a skill in procedural memory
type SemanticMemory ¶
type SemanticMemory struct {
// contains filtered or unexported fields
}
SemanticMemory manages knowledge storage and retrieval using vector embeddings
func NewSemanticMemory ¶
func NewSemanticMemory(pool *pgxpool.Pool) *SemanticMemory
NewSemanticMemory creates a new semantic memory instance
func NewSemanticMemoryFromDB ¶
func NewSemanticMemoryFromDB(database *db.DB) *SemanticMemory
NewSemanticMemoryFromDB creates a semantic memory instance from existing DB connection
func (*SemanticMemory) FindByAgent ¶
func (sm *SemanticMemory) FindByAgent(ctx context.Context, agentName string, limit int) ([]*KnowledgeItem, error)
FindByAgent retrieves knowledge learned by a specific agent
func (*SemanticMemory) FindByType ¶
func (sm *SemanticMemory) FindByType(ctx context.Context, knowledgeType KnowledgeType, limit int) ([]*KnowledgeItem, error)
FindByType retrieves knowledge items of a specific type
func (*SemanticMemory) FindSimilar ¶
func (sm *SemanticMemory) FindSimilar(ctx context.Context, embedding []float32, limit int, filters ...Filter) ([]*KnowledgeItem, error)
FindSimilar finds knowledge items similar to the given embedding
func (*SemanticMemory) GetMostRelevant ¶
func (sm *SemanticMemory) GetMostRelevant(ctx context.Context, limit int, filters ...Filter) ([]*KnowledgeItem, error)
GetMostRelevant retrieves the most relevant knowledge items based on multiple criteria
func (*SemanticMemory) GetStats ¶
func (sm *SemanticMemory) GetStats(ctx context.Context) (map[string]interface{}, error)
GetStats returns statistics about semantic memory
func (*SemanticMemory) PruneExpired ¶
func (sm *SemanticMemory) PruneExpired(ctx context.Context) (int, error)
PruneExpired removes expired knowledge items
func (*SemanticMemory) PruneLowQuality ¶
func (sm *SemanticMemory) PruneLowQuality(ctx context.Context, minValidations int, minSuccessRate float64) (int, error)
PruneLowQuality removes knowledge items with low success rates
func (*SemanticMemory) RecordAccess ¶
RecordAccess increments the access count for a knowledge item
func (*SemanticMemory) RecordValidation ¶
RecordValidation records a validation attempt (success or failure)
func (*SemanticMemory) Store ¶
func (sm *SemanticMemory) Store(ctx context.Context, item *KnowledgeItem) error
Store stores a knowledge item in semantic memory
func (*SemanticMemory) UpdateConfidence ¶
func (sm *SemanticMemory) UpdateConfidence(ctx context.Context, id uuid.UUID, confidence float64) error
UpdateConfidence updates the confidence level of a knowledge item
type Skill ¶
type Skill struct {
ID uuid.UUID `json:"id"`
// Skill metadata
Type SkillType `json:"type"`
Name string `json:"name"`
Description string `json:"description"`
// Skill definition
Implementation []byte `json:"implementation"` // JSONB - how to execute this skill
Parameters []byte `json:"parameters"` // JSONB - configurable parameters
Prerequisites []byte `json:"prerequisites"` // JSONB - required conditions/resources
// Performance tracking
TimesUsed int `json:"times_used"` // How many times this skill was used
SuccessCount int `json:"success_count"` // Successful executions
FailureCount int `json:"failure_count"` // Failed executions
AvgDuration float64 `json:"avg_duration"` // Average execution duration (ms)
AvgAccuracy float64 `json:"avg_accuracy"` // Average accuracy (0.0 to 1.0)
// Learning metadata
AgentName string `json:"agent_name"` // Which agent has this skill
LearnedFrom string `json:"learned_from"` // Source: "training", "observation", "manual"
SourceID *uuid.UUID `json:"source_id"` // ID of source
Proficiency float64 `json:"proficiency"` // Proficiency level (0.0 to 1.0)
IsActive bool `json:"is_active"` // Whether this skill is active
// Temporal
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
LastUsed *time.Time `json:"last_used"`
}
Skill represents an agent's learned capability or skill
func (*Skill) IsProficient ¶
IsProficient checks if the agent is proficient in this skill
func (*Skill) SkillSuccessRate ¶
SkillSuccessRate returns the success rate of this skill
type SkillType ¶
type SkillType string
SkillType represents types of agent skills
const ( // SkillTechnicalAnalysis represents technical analysis capability SkillTechnicalAnalysis SkillType = "technical_analysis" // SkillOrderBookAnalysis represents order book analysis capability SkillOrderBookAnalysis SkillType = "orderbook_analysis" // SkillSentimentAnalysis represents sentiment analysis capability SkillSentimentAnalysis SkillType = "sentiment_analysis" // SkillTrendFollowing represents trend following strategy SkillTrendFollowing SkillType = "trend_following" // SkillMeanReversion represents mean reversion strategy SkillMeanReversion SkillType = "mean_reversion" // SkillRiskManagement represents risk management capability SkillRiskManagement SkillType = "risk_management" )
type SymbolFilter ¶
type SymbolFilter struct {
Symbol string
}
SymbolFilter filters by symbol
func (SymbolFilter) SQL ¶
func (f SymbolFilter) SQL(argIndex int) (string, []interface{})
type TypeFilter ¶
type TypeFilter struct {
Type KnowledgeType
}
TypeFilter filters by knowledge type
func (TypeFilter) SQL ¶
func (f TypeFilter) SQL(argIndex int) (string, []interface{})
type ValidOnlyFilter ¶
type ValidOnlyFilter struct{}
ValidOnlyFilter filters to only valid knowledge (not expired, good success rate)
func (ValidOnlyFilter) SQL ¶
func (f ValidOnlyFilter) SQL(argIndex int) (string, []interface{})