pool

package
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2025 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GlobalFactoryRegistry = NewFactoryRegistry()

全局工厂注册表实例

View Source
var GlobalStrategyPool = NewStrategyPool()

全局策略池实例

Functions

func CreateGlobalInstance

func CreateGlobalInstance(instanceKey, strategyType string, config interface{}) error

便捷函数,使用全局策略池

func CreateStrategyInstance

func CreateStrategyInstance(strategyType string, config interface{}) (types.Strategy, error)

func GetGlobalInstance

func GetGlobalInstance(instanceKey string) (types.Strategy, bool)

func GetOrCreateGlobalInstance

func GetOrCreateGlobalInstance(instanceKey, strategyType string, config interface{}) (types.Strategy, error)

func GetRegisteredStrategyTypes

func GetRegisteredStrategyTypes() []string

func IsStrategyTypeRegistered

func IsStrategyTypeRegistered(strategyType string) bool

func MustRegisterStrategyFactory

func MustRegisterStrategyFactory(info *StrategyFactoryInfo)

func RegisterInstanceManager

func RegisterInstanceManager(agentID string, manager *InstanceManager)

RegisterInstanceManager 注册实例管理器到全局注册表

func RegisterStrategyFactory

func RegisterStrategyFactory(info *StrategyFactoryInfo) error

便捷函数,使用全局注册表

Types

type FactoryRegistry

type FactoryRegistry struct {
	// contains filtered or unexported fields
}

FactoryRegistry 策略工厂注册表

func NewFactoryRegistry

func NewFactoryRegistry() *FactoryRegistry

NewFactoryRegistry 创建新的工厂注册表

func (*FactoryRegistry) CreateStrategy

func (fr *FactoryRegistry) CreateStrategy(strategyType string, config interface{}) (types.Strategy, error)

CreateStrategy 根据类型和配置创建策略实例

func (*FactoryRegistry) GetFactoryCount

func (fr *FactoryRegistry) GetFactoryCount() int

GetFactoryCount 获取已注册工厂数量

func (*FactoryRegistry) GetFactoryInfo

func (fr *FactoryRegistry) GetFactoryInfo(strategyType string) (*StrategyFactoryInfo, bool)

GetFactoryInfo 获取工厂信息

func (*FactoryRegistry) GetRegisteredTypes

func (fr *FactoryRegistry) GetRegisteredTypes() []string

GetRegisteredTypes 获取所有已注册的策略类型

func (*FactoryRegistry) IsRegistered

func (fr *FactoryRegistry) IsRegistered(strategyType string) bool

IsRegistered 检查策略类型是否已注册

func (*FactoryRegistry) ListFactories

func (fr *FactoryRegistry) ListFactories() []*StrategyFactoryInfo

ListFactories 列出所有注册的工厂

func (*FactoryRegistry) MustRegisterFactory

func (fr *FactoryRegistry) MustRegisterFactory(info *StrategyFactoryInfo)

MustRegisterFactory 注册策略工厂,失败时panic(用于init())

func (*FactoryRegistry) RegisterFactory

func (fr *FactoryRegistry) RegisterFactory(info *StrategyFactoryInfo) error

RegisterFactory 注册策略工厂

func (*FactoryRegistry) UnregisterFactory

func (fr *FactoryRegistry) UnregisterFactory(strategyType string) error

UnregisterFactory 注销策略工厂

type InstanceManager

type InstanceManager struct {
	// contains filtered or unexported fields
}

InstanceManager 策略实例管理器 - 为Agent/MCP提供独立的策略实例缓存

func GetInstanceManager

func GetInstanceManager(agentID string) (*InstanceManager, bool)

GetInstanceManager 从全局注册表获取实例管理器

func GetOrCreateInstanceManager

func GetOrCreateInstanceManager(agentID string) *InstanceManager

GetOrCreateInstanceManager 获取或创建实例管理器

func NewInstanceManager

func NewInstanceManager(agentID string) *InstanceManager

NewInstanceManager 创建新的实例管理器

func NewInstanceManagerWithPool

func NewInstanceManagerWithPool(agentID string, pool *StrategyPool) *InstanceManager

NewInstanceManagerWithPool 使用指定策略池创建实例管理器

func (*InstanceManager) BatchCreate

func (im *InstanceManager) BatchCreate(configs map[string]StrategyConfig) error

BatchCreate 批量创建策略实例

func (*InstanceManager) ClearAll

func (im *InstanceManager) ClearAll()

ClearAll 清空所有策略实例

func (*InstanceManager) Clone

func (im *InstanceManager) Clone(newAgentID string) *InstanceManager

Clone 克隆实例管理器(深拷贝配置)

func (*InstanceManager) ConfigureStrategy

func (im *InstanceManager) ConfigureStrategy(strategyKey string, config interface{}) error

ConfigureStrategy 配置策略实例

func (*InstanceManager) CreateStrategy

func (im *InstanceManager) CreateStrategy(strategyKey, strategyType string, config interface{}) (types.Strategy, error)

CreateStrategy 创建策略实例

func (*InstanceManager) GetAvailableTypes

func (im *InstanceManager) GetAvailableTypes() []string

GetAvailableTypes 获取所有可用的策略类型

func (*InstanceManager) GetConfig

func (im *InstanceManager) GetConfig(strategyKey string) (interface{}, bool)

GetConfig 获取策略配置

func (*InstanceManager) GetInfo

func (im *InstanceManager) GetInfo() InstanceManagerInfo

GetInfo 获取实例管理器信息

func (*InstanceManager) GetOrCreateStrategy

func (im *InstanceManager) GetOrCreateStrategy(strategyKey, strategyType string, config interface{}) (types.Strategy, error)

GetOrCreateStrategy 获取或创建策略实例(懒加载模式)

func (*InstanceManager) GetStrategy

func (im *InstanceManager) GetStrategy(strategyKey string) (types.Strategy, bool)

GetStrategy 获取策略实例

func (*InstanceManager) GetStrategyKeys

func (im *InstanceManager) GetStrategyKeys() []string

GetStrategyKeys 获取所有策略键

func (*InstanceManager) GetStrategyType

func (im *InstanceManager) GetStrategyType(strategyKey string) (string, bool)

GetStrategyType 获取策略类型

func (*InstanceManager) ListStrategies

func (im *InstanceManager) ListStrategies() []types.Strategy

ListStrategies 列出所有策略实例

func (*InstanceManager) RemoveStrategy

func (im *InstanceManager) RemoveStrategy(strategyKey string) error

RemoveStrategy 移除策略实例

type InstanceManagerInfo

type InstanceManagerInfo struct {
	AgentID         string                 `json:"agent_id"`
	TotalStrategies int                    `json:"total_strategies"`
	Strategies      []StrategyInstanceInfo `json:"strategies"`
}

InstanceManagerInfo 实例管理器信息

type StrategyConfig

type StrategyConfig struct {
	Type   string      `json:"type"`
	Config interface{} `json:"config"`
}

StrategyConfig 策略配置

type StrategyFactory

type StrategyFactory func(config interface{}) (types.Strategy, error)

StrategyFactory 策略工厂函数类型

type StrategyFactoryInfo

type StrategyFactoryInfo struct {
	Type    string          `json:"type"`
	Factory StrategyFactory `json:"-"`
}

StrategyFactoryInfo 策略工厂信息 (极简版)

type StrategyInfo

type StrategyInfo struct {
	Name        string   `json:"name"`
	Type        string   `json:"type"`
	Version     string   `json:"version"`
	Description string   `json:"description"`
	Tags        []string `json:"tags,omitempty"`
}

StrategyInfo 策略信息

type StrategyInstanceInfo

type StrategyInstanceInfo struct {
	StrategyKey  string      `json:"strategy_key"`
	StrategyType string      `json:"strategy_type"`
	Name         string      `json:"name"`
	Version      string      `json:"version"`
	Description  string      `json:"description"`
	Config       interface{} `json:"config,omitempty"`
}

StrategyInstanceInfo 策略实例信息

type StrategyPool

type StrategyPool struct {
	// contains filtered or unexported fields
}

StrategyPool 策略池实现 - 现在支持工厂注册和实例管理

func NewStrategyPool

func NewStrategyPool() *StrategyPool

NewStrategyPool 创建新的策略池

func (*StrategyPool) AddTag

func (sp *StrategyPool) AddTag(instanceKey string, tag string) error

AddTag 为策略实例添加标签(扩展功能)

func (*StrategyPool) ConfigureInstance

func (sp *StrategyPool) ConfigureInstance(instanceKey string, config interface{}) error

ConfigureInstance 配置特定实例

func (*StrategyPool) CreateInstance

func (sp *StrategyPool) CreateInstance(instanceKey, strategyType string, config interface{}) error

CreateInstance 根据策略类型和配置创建策略实例

func (*StrategyPool) GetByTag

func (sp *StrategyPool) GetByTag(tag string) []types.Strategy

GetByTag 根据标签获取策略实例(扩展功能)

func (*StrategyPool) GetFactoryInfo

func (sp *StrategyPool) GetFactoryInfo(strategyType string) (*StrategyFactoryInfo, bool)

GetFactoryInfo 获取工厂信息

func (*StrategyPool) GetInfo

func (sp *StrategyPool) GetInfo() StrategyPoolInfo

GetInfo 获取策略池信息

func (*StrategyPool) GetInstance

func (sp *StrategyPool) GetInstance(instanceKey string) (types.Strategy, bool)

GetInstance 根据实例键获取策略实例

func (*StrategyPool) GetInstanceKeys

func (sp *StrategyPool) GetInstanceKeys() []string

GetInstanceKeys 获取所有已注册的策略实例键

func (*StrategyPool) GetOrCreateInstance

func (sp *StrategyPool) GetOrCreateInstance(instanceKey, strategyType string, config interface{}) (types.Strategy, error)

GetOrCreateInstance 获取或创建策略实例(懒加载)

func (*StrategyPool) GetRegisteredFactoryTypes

func (sp *StrategyPool) GetRegisteredFactoryTypes() []string

GetRegisteredFactoryTypes 获取工厂注册表中的所有策略类型

func (*StrategyPool) GetTypes

func (sp *StrategyPool) GetTypes() []string

GetTypes 获取所有已注册的策略类型

func (*StrategyPool) ListInstances

func (sp *StrategyPool) ListInstances() []types.Strategy

ListInstances 获取所有策略实例

func (*StrategyPool) ListInstancesByType

func (sp *StrategyPool) ListInstancesByType(strategyType string) []types.Strategy

ListInstancesByType 根据类型获取策略实例列表

func (*StrategyPool) RemoveInstance

func (sp *StrategyPool) RemoveInstance(instanceKey string) error

RemoveInstance 移除策略实例

func (*StrategyPool) SearchInstances

func (sp *StrategyPool) SearchInstances(keyword string) []types.Strategy

SearchInstances 搜索策略实例(按实例键、类型、描述关键字)

type StrategyPoolInfo

type StrategyPoolInfo struct {
	TotalStrategies int            `json:"total_strategies"`
	TypeCount       int            `json:"type_count"`
	StrategyTypes   map[string]int `json:"strategy_types"`
	Strategies      []StrategyInfo `json:"strategies"`
}

StrategyPoolInfo 策略池信息

Jump to

Keyboard shortcuts

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