Documentation
¶
Overview ¶
Package memory 提供 Agent 记忆管理功能
Index ¶
- type Config
- type DiscussionInput
- type EntryType
- type FileStorage
- type GseTokenizer
- type LLMSummarizer
- func (s *LLMSummarizer) ExtractFacts(ctx context.Context, content, agentName string) ([]MemoryEntry, error)
- func (s *LLMSummarizer) ExtractKeyPoints(ctx context.Context, discussions []DiscussionInput) ([]string, error)
- func (s *LLMSummarizer) SummarizeRounds(ctx context.Context, rounds []RoundMemory) (string, error)
- type Manager
- func (m *Manager) AddFacts(mem *StockMemory, facts []MemoryEntry)
- func (m *Manager) AddRound(ctx context.Context, mem *StockMemory, query, consensus string, ...) error
- func (m *Manager) BuildContext(mem *StockMemory, currentQuery string) string
- func (m *Manager) Close()
- func (m *Manager) DeleteMemory(stockCode string) error
- func (m *Manager) ExtractAndAddFacts(ctx context.Context, mem *StockMemory, content, source string) error
- func (m *Manager) ExtractKeyPoints(ctx context.Context, discussions []DiscussionInput) ([]string, error)
- func (m *Manager) GetOrCreate(stockCode, stockName string) (*StockMemory, error)
- func (m *Manager) Save(mem *StockMemory) error
- func (m *Manager) SaveAsync(mem *StockMemory)
- func (m *Manager) SetLLM(llm model.LLM)
- type MemoryEntry
- type Relevance
- type RoundMemory
- type ScoredEntry
- type StockMemory
- type Storage
- type Summarizer
- type Tokenizer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
MaxRecentRounds int // 保留最近几轮讨论,默认 3
MaxKeyFacts int // 最大关键事实数,默认 20
MaxSummaryLength int // 摘要最大字数,默认 300
CompressThreshold int // 触发压缩的轮次数,默认 5
}
Config 记忆管理配置
type DiscussionInput ¶
DiscussionInput 讨论输入(用于关键点提取)
type FileStorage ¶
type FileStorage struct {
// contains filtered or unexported fields
}
FileStorage 文件存储(按股票隔离)
func (*FileStorage) Load ¶
func (s *FileStorage) Load(stockCode string) (*StockMemory, error)
Load 加载股票记忆
type GseTokenizer ¶
type GseTokenizer struct {
// contains filtered or unexported fields
}
GseTokenizer 基于 GSE 的分词器(纯 Go 实现,无 CGO 依赖)
type LLMSummarizer ¶
type LLMSummarizer struct {
// contains filtered or unexported fields
}
LLMSummarizer 基于 LLM 的摘要生成器
func NewLLMSummarizer ¶
func NewLLMSummarizer(llm model.LLM, tokenizer Tokenizer) *LLMSummarizer
NewLLMSummarizer 创建 LLM 摘要生成器
func (*LLMSummarizer) ExtractFacts ¶
func (s *LLMSummarizer) ExtractFacts(ctx context.Context, content, agentName string) ([]MemoryEntry, error)
ExtractFacts 从讨论内容中提取关键事实
func (*LLMSummarizer) ExtractKeyPoints ¶
func (s *LLMSummarizer) ExtractKeyPoints(ctx context.Context, discussions []DiscussionInput) ([]string, error)
ExtractKeyPoints 从讨论中智能提取关键点
func (*LLMSummarizer) SummarizeRounds ¶
func (s *LLMSummarizer) SummarizeRounds(ctx context.Context, rounds []RoundMemory) (string, error)
SummarizeRounds 压缩多轮讨论为摘要
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 记忆管理器
func NewManagerWithConfig ¶
NewManagerWithConfig 使用自定义配置创建记忆管理器
func (*Manager) AddFacts ¶
func (m *Manager) AddFacts(mem *StockMemory, facts []MemoryEntry)
AddFacts 添加关键事实
func (*Manager) AddRound ¶
func (m *Manager) AddRound(ctx context.Context, mem *StockMemory, query, consensus string, keyPoints []string) error
AddRound 添加新一轮讨论并触发压缩检查
func (*Manager) BuildContext ¶
func (m *Manager) BuildContext(mem *StockMemory, currentQuery string) string
BuildContext 构建上下文(核心方法)
func (*Manager) DeleteMemory ¶
DeleteMemory 删除指定股票的记忆
func (*Manager) ExtractAndAddFacts ¶
func (m *Manager) ExtractAndAddFacts(ctx context.Context, mem *StockMemory, content, source string) error
ExtractAndAddFacts 从内容中提取并添加事实
func (*Manager) ExtractKeyPoints ¶
func (m *Manager) ExtractKeyPoints(ctx context.Context, discussions []DiscussionInput) ([]string, error)
ExtractKeyPoints 智能提取讨论关键点
func (*Manager) GetOrCreate ¶
func (m *Manager) GetOrCreate(stockCode, stockName string) (*StockMemory, error)
GetOrCreate 获取或创建股票记忆
type MemoryEntry ¶
type MemoryEntry struct {
ID string `json:"id"`
Type EntryType `json:"type"`
Content string `json:"content"`
Source string `json:"source"` // 来源 Agent
Keywords []string `json:"keywords"` // 关键词(用于文本匹配)
Timestamp int64 `json:"timestamp"`
Weight float64 `json:"weight"` // 重要性权重 0-1
}
MemoryEntry 记忆条目
type Relevance ¶
type Relevance struct {
// contains filtered or unexported fields
}
Relevance 相关性计算器
func (*Relevance) FindRelevant ¶
func (r *Relevance) FindRelevant(facts []MemoryEntry, query string, limit int) []MemoryEntry
FindRelevant 查找相关的记忆条目
type RoundMemory ¶
type RoundMemory struct {
Round int `json:"round"`
Query string `json:"query"` // 用户问题
Consensus string `json:"consensus"` // 本轮结论
KeyPoints []string `json:"key_points"` // 要点
Timestamp int64 `json:"timestamp"`
}
RoundMemory 单轮讨论记忆
type StockMemory ¶
type StockMemory struct {
StockCode string `json:"stock_code"`
StockName string `json:"stock_name"`
Summary string `json:"summary"` // 历史摘要
KeyFacts []MemoryEntry `json:"key_facts"` // 关键事实
RecentRounds []RoundMemory `json:"recent_rounds"` // 最近几轮讨论
TotalRounds int `json:"total_rounds"` // 总讨论轮次
CreatedAt int64 `json:"created_at"`
UpdatedAt int64 `json:"updated_at"`
}
StockMemory 单只股票的会话记忆(按股票隔离)
func NewStockMemory ¶
func NewStockMemory(stockCode, stockName string) *StockMemory
NewStockMemory 创建新的股票记忆
type Storage ¶
type Storage interface {
Load(stockCode string) (*StockMemory, error)
Save(mem *StockMemory) error
Delete(stockCode string) error
List() ([]string, error)
}
Storage 存储接口
type Summarizer ¶
type Summarizer interface {
SummarizeRounds(ctx context.Context, rounds []RoundMemory) (string, error)
ExtractFacts(ctx context.Context, content, agentName string) ([]MemoryEntry, error)
ExtractKeyPoints(ctx context.Context, discussions []DiscussionInput) ([]string, error)
}
Summarizer 摘要生成器接口