Documentation
¶
Overview ¶
Package config 提供 Hexagon AI Agent 框架的配置加载能力
Config 支持从 YAML 文件加载 Agent、Workflow、Team 等配置。
主要配置类型:
- AgentConfig: Agent 配置,包括 LLM、工具、记忆等
- TeamConfig: 团队配置,定义多 Agent 协作
- WorkflowConfig: 工作流配置,定义图编排
特性:
- 支持环境变量展开:${VAR} 或 $VAR
- 配置验证:自动验证必填字段
- 热更新支持(计划中)
使用示例:
config, err := LoadAgentConfig("./agents/researcher.yaml")
if err != nil {
log.Fatal(err)
}
Package config 提供配置差异对比能力 ¶
Package config 提供多环境配置管理能力 ¶
Package config 提供配置热更新能力 ¶
Package config 提供配置版本管理能力
Index ¶
- func SaveAgentConfig(path string, config *AgentConfig) error
- type AgentConfig
- type Builder
- func (b *Builder) BuildAgent(config *AgentConfig) (agent.Agent, error)
- func (b *Builder) BuildAgentFromFile(path string) (agent.Agent, error)
- func (b *Builder) BuildTeam(config *TeamConfig) (*agent.Team, error)
- func (b *Builder) BuildTeamFromFile(path string) (*agent.Team, error)
- func (b *Builder) BuildWorkflow(config *WorkflowConfig) (*workflow.Workflow, error)
- func (b *Builder) BuildWorkflowFromFile(path string) (*workflow.Workflow, error)
- func (b *Builder) Registry() *Registry
- func (b *Builder) SetProviderFactory(factory ProviderFactory)
- func (b *Builder) SetToolFactory(factory ToolFactory)
- type BuilderConfig
- type BuilderOption
- type ConfigWatcher
- type Diff
- type DiffResult
- type DiffSummary
- type DiffType
- type EdgeConfig
- type Environment
- type EnvironmentConfig
- type EnvironmentManager
- func (m *EnvironmentManager) CopyConfig(name string, fromEnv, toEnv Environment) error
- func (m *EnvironmentManager) CurrentEnvironment() Environment
- func (m *EnvironmentManager) InitializeEnvironments() error
- func (m *EnvironmentManager) ListEnvironments() ([]Environment, error)
- func (m *EnvironmentManager) LoadAgentConfig(name string) (*AgentConfig, error)
- func (m *EnvironmentManager) LoadRawConfig(env Environment, name string) (map[string]any, error)
- func (m *EnvironmentManager) LoadTeamConfig(name string) (*TeamConfig, error)
- func (m *EnvironmentManager) LoadWorkflowConfig(name string) (*WorkflowConfig, error)
- func (m *EnvironmentManager) SaveConfig(env Environment, name string, config any) error
- func (m *EnvironmentManager) SwitchEnvironment(env Environment) error
- func (m *EnvironmentManager) ValidateEnvironmentSetup(env Environment) ([]string, error)
- type EnvironmentManagerOption
- type ErrorHandler
- type HotReloadManager
- func (m *HotReloadManager) Count() int
- func (m *HotReloadManager) List() []string
- func (m *HotReloadManager) StopAll()
- func (m *HotReloadManager) Unwatch(name string)
- func (m *HotReloadManager) Watch(name, path, configType string, callback ReloadCallback, ...) error
- func (m *HotReloadManager) WatchDir(dir string, callback ReloadCallback, opts ...HotReloadOption) ([]string, error)
- type HotReloadOption
- type HotReloader
- type LLMConfig
- type MemoryConfig
- type MultiConfig
- type NodeConfig
- type ProviderFactory
- type ProviderOptions
- type Registry
- func (r *Registry) GetAgent(name string) (agent.Agent, bool)
- func (r *Registry) GetTeam(name string) (*agent.Team, bool)
- func (r *Registry) GetWorkflow(name string) (*workflow.Workflow, bool)
- func (r *Registry) GetWorkflowStep(name string) (workflow.Step, bool)
- func (r *Registry) RegisterAgent(name string, a agent.Agent)
- func (r *Registry) RegisterTeam(name string, t *agent.Team)
- func (r *Registry) RegisterWorkflow(name string, w *workflow.Workflow)
- func (r *Registry) RegisterWorkflowStep(name string, s workflow.Step)
- type ReloadCallback
- type RoleConfig
- type TeamConfig
- type ToolConfig
- type ToolFactory
- type Validator
- type Version
- type VersionManager
- func (m *VersionManager) Cleanup(keepCount int) (int, error)
- func (m *VersionManager) Count() int
- func (m *VersionManager) DeleteVersion(id string) error
- func (m *VersionManager) GetLatestVersion() (*Version, error)
- func (m *VersionManager) GetVersion(id string) (*Version, error)
- func (m *VersionManager) ListVersions(limit int) []*Version
- func (m *VersionManager) ListVersionsByTag(tag string) []*Version
- func (m *VersionManager) RollbackToVersion(id, targetPath string) (any, error)
- func (m *VersionManager) SaveVersion(config any, configType, description string, tags ...string) (*Version, error)
- func (m *VersionManager) TagVersion(id string, tags ...string) error
- type VersionManagerOption
- type WorkflowConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SaveAgentConfig ¶
func SaveAgentConfig(path string, config *AgentConfig) error
SaveAgentConfig 保存 Agent 配置到文件
Types ¶
type AgentConfig ¶
type AgentConfig struct {
// Name Agent 名称
Name string `yaml:"name" json:"name"`
// Description Agent 描述
Description string `yaml:"description" json:"description"`
// Type Agent 类型: react, plan, custom
Type string `yaml:"type" json:"type"`
// Role 角色配置
Role RoleConfig `yaml:"role" json:"role"`
// LLM LLM 配置
LLM LLMConfig `yaml:"llm" json:"llm"`
// Tools 工具列表
Tools []ToolConfig `yaml:"tools" json:"tools"`
// Memory 记忆配置
Memory MemoryConfig `yaml:"memory" json:"memory"`
// MaxIterations 最大迭代次数
MaxIterations int `yaml:"max_iterations" json:"max_iterations"`
// Verbose 详细输出
Verbose bool `yaml:"verbose" json:"verbose"`
}
AgentConfig Agent 配置
func LoadAgentConfig ¶
func LoadAgentConfig(path string) (*AgentConfig, error)
LoadAgentConfig 从文件加载 Agent 配置
func MergeAgentConfigs ¶
func MergeAgentConfigs(base, override *AgentConfig) *AgentConfig
MergeAgentConfigs 合并 Agent 配置
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder 配置构建器
func (*Builder) BuildAgent ¶
func (b *Builder) BuildAgent(config *AgentConfig) (agent.Agent, error)
BuildAgent 从配置构建 Agent
func (*Builder) BuildAgentFromFile ¶
BuildAgentFromFile 从文件构建 Agent
func (*Builder) BuildTeam ¶
func (b *Builder) BuildTeam(config *TeamConfig) (*agent.Team, error)
BuildTeam 从配置构建 Team
func (*Builder) BuildTeamFromFile ¶
BuildTeamFromFile 从文件构建 Team
func (*Builder) BuildWorkflow ¶
func (b *Builder) BuildWorkflow(config *WorkflowConfig) (*workflow.Workflow, error)
BuildWorkflow 从配置构建 Workflow
func (*Builder) BuildWorkflowFromFile ¶
BuildWorkflowFromFile 从文件构建 Workflow
func (*Builder) SetProviderFactory ¶
func (b *Builder) SetProviderFactory(factory ProviderFactory)
SetProviderFactory 设置 Provider 工厂
func (*Builder) SetToolFactory ¶
func (b *Builder) SetToolFactory(factory ToolFactory)
SetToolFactory 设置工具工厂
type BuilderConfig ¶
type BuilderConfig struct {
// BaseDir 基础目录
BaseDir string
// EnvPrefix 环境变量前缀
EnvPrefix string
// Strict 严格模式(验证所有引用)
Strict bool
// DefaultProvider 默认 LLM Provider
DefaultProvider string
// DefaultModel 默认模型
DefaultModel string
}
BuilderConfig 构建器配置
type ConfigWatcher ¶
type ConfigWatcher struct {
// contains filtered or unexported fields
}
ConfigWatcher 配置监视器
func NewConfigWatcher ¶
func NewConfigWatcher(path string, builder *Builder) *ConfigWatcher
NewConfigWatcher 创建配置监视器
func (*ConfigWatcher) OnChange ¶
func (w *ConfigWatcher) OnChange(callback func(config any, err error))
OnChange 设置变更回调
type Diff ¶
type Diff struct {
// Path 字段路径(如 "llm.model")
Path string `json:"path"`
// Type 差异类型
Type DiffType `json:"type"`
// OldValue 旧值
OldValue any `json:"old_value,omitempty"`
// NewValue 新值
NewValue any `json:"new_value,omitempty"`
// Message 差异描述
Message string `json:"message,omitempty"`
}
Diff 配置差异项
表示两个配置之间的一个差异点。
type DiffResult ¶
type DiffResult struct {
// Diffs 差异列表
Diffs []Diff `json:"diffs"`
// HasChanges 是否有变化
HasChanges bool `json:"has_changes"`
// AddedCount 新增字段数量
AddedCount int `json:"added_count"`
// RemovedCount 删除字段数量
RemovedCount int `json:"removed_count"`
// ModifiedCount 修改字段数量
ModifiedCount int `json:"modified_count"`
}
DiffResult 差异对比结果
包含所有差异项和统计信息。
func DiffAgentConfigs ¶
func DiffAgentConfigs(old, new *AgentConfig) (*DiffResult, error)
DiffAgentConfigs 对比两个 Agent 配置
func DiffConfigs ¶
func DiffConfigs(old, new any) (*DiffResult, error)
DiffConfigs 对比两个配置
参数:
- old: 旧配置对象
- new: 新配置对象
返回值:
- *DiffResult: 差异对比结果
- error: 错误(如果有)
func DiffTeamConfigs ¶
func DiffTeamConfigs(old, new *TeamConfig) (*DiffResult, error)
DiffTeamConfigs 对比两个 Team 配置
func DiffWorkflowConfigs ¶
func DiffWorkflowConfigs(old, new *WorkflowConfig) (*DiffResult, error)
DiffWorkflowConfigs 对比两个 Workflow 配置
func (*DiffResult) Format ¶
func (r *DiffResult) Format() string
Format 格式化差异结果为可读文本
返回值:
- string: 格式化的差异文本
func (*DiffResult) FormatCompact ¶
func (r *DiffResult) FormatCompact() string
FormatCompact 紧凑格式化差异结果
type DiffSummary ¶
type DiffSummary struct {
// ConfigType 配置类型
ConfigType string `json:"config_type"`
// Result 差异结果
Result *DiffResult `json:"result"`
// KeyChanges 关键变化(如 LLM 模型变化、工具新增/删除等)
KeyChanges []string `json:"key_changes,omitempty"`
}
DiffSummary 差异摘要
提供更高层次的差异摘要信息。
func SummarizeAgentDiff ¶
func SummarizeAgentDiff(old, new *AgentConfig) (*DiffSummary, error)
SummarizeAgentDiff 总结 Agent 配置差异
func SummarizeTeamDiff ¶
func SummarizeTeamDiff(old, new *TeamConfig) (*DiffSummary, error)
SummarizeTeamDiff 总结 Team 配置差异
type EdgeConfig ¶
type EdgeConfig struct {
// From 源节点
From string `yaml:"from" json:"from"`
// To 目标节点
To string `yaml:"to" json:"to"`
// Condition 条件(可选)
Condition string `yaml:"condition" json:"condition"`
// Label 标签
Label string `yaml:"label" json:"label"`
}
EdgeConfig 边配置
type Environment ¶
type Environment string
Environment 环境类型
const ( // EnvDevelopment 开发环境 EnvDevelopment Environment = "development" // EnvTest 测试环境 EnvTest Environment = "test" // EnvStaging 预发布环境 EnvStaging Environment = "staging" // EnvProduction 生产环境 EnvProduction Environment = "production" )
type EnvironmentConfig ¶
type EnvironmentConfig struct {
// CurrentEnv 当前环境
CurrentEnv Environment `yaml:"current_env" json:"current_env"`
// BaseDir 配置文件基础目录
BaseDir string `yaml:"base_dir" json:"base_dir"`
// Configs 各环境配置路径
Configs map[Environment]string `yaml:"configs" json:"configs"`
}
EnvironmentConfig 环境配置
支持多环境配置管理,包括:
- 基础配置(base)
- 环境特定配置(development/test/staging/production)
- 配置合并和覆盖
- 环境变量展开
type EnvironmentManager ¶
type EnvironmentManager struct {
// contains filtered or unexported fields
}
EnvironmentManager 环境配置管理器
管理多环境配置,支持:
- 环境切换
- 配置加载和合并
- 环境变量展开
- 配置验证
func NewEnvironmentManager ¶
func NewEnvironmentManager(opts ...EnvironmentManagerOption) *EnvironmentManager
NewEnvironmentManager 创建环境配置管理器
参数:
- opts: 可选配置
返回值:
- *EnvironmentManager: 环境管理器实例
func (*EnvironmentManager) CopyConfig ¶
func (m *EnvironmentManager) CopyConfig(name string, fromEnv, toEnv Environment) error
func (*EnvironmentManager) CurrentEnvironment ¶
func (m *EnvironmentManager) CurrentEnvironment() Environment
CurrentEnvironment 返回当前环境
func (*EnvironmentManager) InitializeEnvironments ¶
func (m *EnvironmentManager) InitializeEnvironments() error
InitializeEnvironments 初始化环境目录结构
创建标准的环境目录结构:
config/ base/ # 基础配置 development/ # 开发环境 test/ # 测试环境 staging/ # 预发布环境 production/ # 生产环境
func (*EnvironmentManager) ListEnvironments ¶
func (m *EnvironmentManager) ListEnvironments() ([]Environment, error)
ListEnvironments 列出所有可用环境
返回值:
- []Environment: 环境列表
func (*EnvironmentManager) LoadAgentConfig ¶
func (m *EnvironmentManager) LoadAgentConfig(name string) (*AgentConfig, error)
LoadAgentConfig 加载 Agent 配置(带环境支持)
加载顺序:
- 加载 base 配置(如果存在)
- 加载环境特定配置
- 合并配置(环境配置覆盖 base 配置)
- 展开环境变量
参数:
- name: 配置名称
返回值:
- *AgentConfig: Agent 配置
- error: 错误(如果有)
func (*EnvironmentManager) LoadRawConfig ¶
func (m *EnvironmentManager) LoadRawConfig(env Environment, name string) (map[string]any, error)
LoadRawConfig 加载原始配置文件(不进行合并)
参数:
- env: 环境
- name: 配置名称
返回值:
- map[string]any: 原始配置数据
- error: 错误(如果有)
func (*EnvironmentManager) LoadTeamConfig ¶
func (m *EnvironmentManager) LoadTeamConfig(name string) (*TeamConfig, error)
LoadTeamConfig 加载 Team 配置(带环境支持)
func (*EnvironmentManager) LoadWorkflowConfig ¶
func (m *EnvironmentManager) LoadWorkflowConfig(name string) (*WorkflowConfig, error)
LoadWorkflowConfig 加载 Workflow 配置(带环境支持)
func (*EnvironmentManager) SaveConfig ¶
func (m *EnvironmentManager) SaveConfig(env Environment, name string, config any) error
SaveConfig 保存配置到指定环境
参数:
- env: 环境
- name: 配置名称
- config: 配置对象
返回值:
- error: 错误(如果有)
func (*EnvironmentManager) SwitchEnvironment ¶
func (m *EnvironmentManager) SwitchEnvironment(env Environment) error
SwitchEnvironment 切换环境
参数:
- env: 目标环境
返回值:
- error: 错误(如果有)
func (*EnvironmentManager) ValidateEnvironmentSetup ¶
func (m *EnvironmentManager) ValidateEnvironmentSetup(env Environment) ([]string, error)
ValidateEnvironmentSetup 验证环境配置设置
检查:
- 环境目录是否存在
- 必需的配置文件是否存在
- 配置文件是否有效
参数:
- env: 环境
返回值:
- []string: 验证问题列表
- error: 错误(如果有)
type EnvironmentManagerOption ¶
type EnvironmentManagerOption func(*EnvironmentManager)
EnvironmentManagerOption 环境管理器选项
func WithCurrentEnv ¶
func WithCurrentEnv(env Environment) EnvironmentManagerOption
WithCurrentEnv 设置当前环境
func WithEnvironmentBaseDir ¶
func WithEnvironmentBaseDir(dir string) EnvironmentManagerOption
WithBaseDir 设置配置文件基础目录
type HotReloadManager ¶
type HotReloadManager struct {
// contains filtered or unexported fields
}
HotReloadManager 热更新管理器
管理多个配置文件的热更新。
func NewHotReloadManager ¶
func NewHotReloadManager() *HotReloadManager
NewHotReloadManager 创建热更新管理器
func (*HotReloadManager) Watch ¶
func (m *HotReloadManager) Watch(name, path, configType string, callback ReloadCallback, opts ...HotReloadOption) error
Watch 监控配置文件
参数:
- name: 配置名称(用于标识)
- path: 配置文件路径
- configType: 配置类型
- callback: 变更回调
- opts: 可选配置
func (*HotReloadManager) WatchDir ¶
func (m *HotReloadManager) WatchDir(dir string, callback ReloadCallback, opts ...HotReloadOption) ([]string, error)
WatchDir 监控目录下的所有配置文件
参数:
- dir: 目录路径
- callback: 变更回调
- opts: 可选配置
返回值:
- []string: 已监控的配置文件名称列表
- error: 错误(如果有)
type HotReloadOption ¶
type HotReloadOption func(*HotReloader)
HotReloadOption 热更新选项
func WithErrorHandler ¶
func WithErrorHandler(handler ErrorHandler) HotReloadOption
WithErrorHandler 设置错误处理器
type HotReloader ¶
type HotReloader struct {
// contains filtered or unexported fields
}
HotReloader 配置热更新器
监控配置文件变化,自动重新加载并触发回调。 支持:
- 文件变化监控(基于 mtime)
- 自动重新加载
- 变更通知回调
- 优雅错误处理
线程安全:所有方法都是并发安全的
func NewHotReloader ¶
func NewHotReloader(path, configType string, callback ReloadCallback, opts ...HotReloadOption) *HotReloader
NewHotReloader 创建配置热更新器
参数:
- path: 配置文件路径
- configType: 配置类型(agent/team/workflow)
- callback: 变更回调
- opts: 可选配置
返回值:
- *HotReloader: 热更新器实例
func (*HotReloader) Start ¶
func (r *HotReloader) Start() error
Start 启动热更新监控
开始监控配置文件变化,当检测到变化时自动重新加载并触发回调。 非阻塞,在后台 goroutine 中运行。
type LLMConfig ¶
type LLMConfig struct {
// Provider 提供商: openai, deepseek, anthropic, etc.
Provider string `yaml:"provider" json:"provider"`
// Model 模型名称
Model string `yaml:"model" json:"model"`
// APIKey API 密钥(可从环境变量读取)
APIKey string `yaml:"api_key" json:"api_key"`
// BaseURL 自定义 API 地址
BaseURL string `yaml:"base_url" json:"base_url"`
// Temperature 温度参数
Temperature float64 `yaml:"temperature" json:"temperature"`
// MaxTokens 最大 Token 数
MaxTokens int `yaml:"max_tokens" json:"max_tokens"`
}
LLMConfig LLM 配置
type MemoryConfig ¶
type MemoryConfig struct {
// Type 记忆类型: buffer, vector, summary
Type string `yaml:"type" json:"type"`
// MaxSize 最大大小
MaxSize int `yaml:"max_size" json:"max_size"`
// Config 特定配置
Config map[string]any `yaml:"config" json:"config"`
}
MemoryConfig 记忆配置
type MultiConfig ¶
type MultiConfig struct {
Agents []*AgentConfig
Teams []*TeamConfig
Workflows []*WorkflowConfig
}
MultiConfig 多配置
type NodeConfig ¶
type NodeConfig struct {
// Name 节点名称
Name string `yaml:"name" json:"name"`
// Type 节点类型: agent, tool, condition, parallel
Type string `yaml:"type" json:"type"`
// Agent Agent 配置(如果是 agent 类型)
Agent *AgentConfig `yaml:"agent" json:"agent"`
// AgentRef Agent 引用(引用已定义的 Agent)
AgentRef string `yaml:"agent_ref" json:"agent_ref"`
// Condition 条件表达式(如果是 condition 类型)
Condition string `yaml:"condition" json:"condition"`
// Parallel 并行节点列表(如果是 parallel 类型)
Parallel []string `yaml:"parallel" json:"parallel"`
}
NodeConfig 节点配置
type ProviderFactory ¶
type ProviderFactory interface {
Create(provider string, opts ProviderOptions) (llm.Provider, error)
}
ProviderFactory Provider 工厂接口
func DefaultProviderFactory ¶
func DefaultProviderFactory() ProviderFactory
DefaultProviderFactory 返回默认工厂
type ProviderOptions ¶
type ProviderOptions struct {
Model string
APIKey string
BaseURL string
Temperature float64
MaxTokens int
}
ProviderOptions Provider 选项
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry 组件注册表
func (*Registry) GetWorkflow ¶
GetWorkflow 获取 Workflow
func (*Registry) GetWorkflowStep ¶
GetWorkflowStep 获取 Workflow 步骤
func (*Registry) RegisterAgent ¶
RegisterAgent 注册 Agent
func (*Registry) RegisterTeam ¶
RegisterTeam 注册 Team
func (*Registry) RegisterWorkflow ¶
RegisterWorkflow 注册 Workflow
type ReloadCallback ¶
ReloadCallback 重新加载回调
参数:
- config: 新配置(类型为 *AgentConfig/*TeamConfig/*WorkflowConfig)
- err: 加载错误(如果有)
type RoleConfig ¶
type RoleConfig struct {
// Name 角色名称
Name string `yaml:"name" json:"name"`
// Title 角色头衔
Title string `yaml:"title" json:"title"`
// Goal 角色目标
Goal string `yaml:"goal" json:"goal"`
// Backstory 背景故事
Backstory string `yaml:"backstory" json:"backstory"`
// Expertise 专长领域
Expertise []string `yaml:"expertise" json:"expertise"`
// Personality 性格特点
Personality string `yaml:"personality" json:"personality"`
// Constraints 行为约束
Constraints []string `yaml:"constraints" json:"constraints"`
}
RoleConfig 角色配置
type TeamConfig ¶
type TeamConfig struct {
// Name 团队名称
Name string `yaml:"name" json:"name"`
// Description 团队描述
Description string `yaml:"description" json:"description"`
// Mode 工作模式: sequential, hierarchical, collaborative, round_robin
Mode string `yaml:"mode" json:"mode"`
// Manager 管理者 Agent(仅用于 hierarchical 模式)
Manager string `yaml:"manager" json:"manager"`
// Agents Agent 配置列表
Agents []AgentConfig `yaml:"agents" json:"agents"`
// MaxRounds 最大轮次
MaxRounds int `yaml:"max_rounds" json:"max_rounds"`
}
TeamConfig 团队配置
func LoadTeamConfig ¶
func LoadTeamConfig(path string) (*TeamConfig, error)
LoadTeamConfig 从文件加载 Team 配置
type ToolConfig ¶
type ToolConfig struct {
// Name 工具名称
Name string `yaml:"name" json:"name"`
// Type 工具类型: builtin, mcp, custom
Type string `yaml:"type" json:"type"`
// Config 工具特定配置
Config map[string]any `yaml:"config" json:"config"`
}
ToolConfig 工具配置
type ToolFactory ¶
type ToolFactory interface {
Create(name, toolType string, config map[string]any) (tool.Tool, error)
}
ToolFactory 工具工厂接口
type Validator ¶
type Validator struct {
// contains filtered or unexported fields
}
Validator 配置验证器
func (*Validator) ValidateAgentConfig ¶
func (v *Validator) ValidateAgentConfig(config *AgentConfig) error
ValidateAgentConfig 验证 Agent 配置
func (*Validator) ValidateTeamConfig ¶
func (v *Validator) ValidateTeamConfig(config *TeamConfig) error
ValidateTeamConfig 验证 Team 配置
func (*Validator) ValidateWorkflowConfig ¶
func (v *Validator) ValidateWorkflowConfig(config *WorkflowConfig) error
ValidateWorkflowConfig 验证 Workflow 配置
type Version ¶
type Version struct {
// ID 版本 ID(时间戳 + 哈希前8位)
ID string `json:"id" yaml:"id"`
// Hash 配置内容哈希(SHA256)
Hash string `json:"hash" yaml:"hash"`
// Timestamp 创建时间戳
Timestamp time.Time `json:"timestamp" yaml:"timestamp"`
// Description 版本描述
Description string `json:"description" yaml:"description"`
// Tags 版本标签(如 production, staging, test)
Tags []string `json:"tags,omitempty" yaml:"tags,omitempty"`
// Config 配置内容(JSON 格式)
Config string `json:"config" yaml:"config"`
// ConfigType 配置类型(agent/team/workflow)
ConfigType string `json:"config_type" yaml:"config_type"`
}
Version 配置版本
记录配置的版本信息,包括内容哈希、时间戳、变更描述等。
type VersionManager ¶
type VersionManager struct {
// contains filtered or unexported fields
}
VersionManager 版本管理器
管理配置的版本历史,支持:
- 版本创建和保存
- 版本回滚
- 版本对比
- 版本查询
线程安全:所有方法都是并发安全的
func NewVersionManager ¶
func NewVersionManager(opts ...VersionManagerOption) (*VersionManager, error)
NewVersionManager 创建版本管理器
参数:
- opts: 可选配置
返回值:
- *VersionManager: 版本管理器实例
- error: 错误(如果有)
func (*VersionManager) Cleanup ¶
func (m *VersionManager) Cleanup(keepCount int) (int, error)
Cleanup 清理旧版本
参数:
- keepCount: 保留的版本数量
返回值:
- int: 删除的版本数量
- error: 错误(如果有)
func (*VersionManager) DeleteVersion ¶
func (m *VersionManager) DeleteVersion(id string) error
DeleteVersion 删除指定版本
参数:
- id: 版本 ID
返回值:
- error: 错误(如果有)
func (*VersionManager) GetLatestVersion ¶
func (m *VersionManager) GetLatestVersion() (*Version, error)
GetLatestVersion 获取最新版本
func (*VersionManager) GetVersion ¶
func (m *VersionManager) GetVersion(id string) (*Version, error)
GetVersion 获取指定版本
参数:
- id: 版本 ID
返回值:
- *Version: 版本信息
- error: 错误(如果有)
func (*VersionManager) ListVersions ¶
func (m *VersionManager) ListVersions(limit int) []*Version
ListVersions 列出所有版本
参数:
- limit: 最大返回数量(0 表示不限制)
返回值:
- []*Version: 版本列表(按时间倒序)
func (*VersionManager) ListVersionsByTag ¶
func (m *VersionManager) ListVersionsByTag(tag string) []*Version
ListVersionsByTag 根据标签列出版本
参数:
- tag: 标签名称
返回值:
- []*Version: 版本列表
func (*VersionManager) RollbackToVersion ¶
func (m *VersionManager) RollbackToVersion(id, targetPath string) (any, error)
RollbackToVersion 回滚到指定版本
参数:
- id: 版本 ID
- targetPath: 目标配置文件路径
返回值:
- any: 恢复的配置对象
- error: 错误(如果有)
func (*VersionManager) SaveVersion ¶
func (m *VersionManager) SaveVersion(config any, configType, description string, tags ...string) (*Version, error)
SaveVersion 保存配置版本
参数:
- config: 配置对象(*AgentConfig/*TeamConfig/*WorkflowConfig)
- configType: 配置类型
- description: 版本描述
- tags: 版本标签
返回值:
- *Version: 创建的版本
- error: 错误(如果有)
func (*VersionManager) TagVersion ¶
func (m *VersionManager) TagVersion(id string, tags ...string) error
TagVersion 给版本添加标签
参数:
- id: 版本 ID
- tags: 标签列表
返回值:
- error: 错误(如果有)
type VersionManagerOption ¶
type VersionManagerOption func(*VersionManager)
VersionManagerOption 版本管理器选项
type WorkflowConfig ¶
type WorkflowConfig struct {
// Name 工作流名称
Name string `yaml:"name" json:"name"`
// Description 工作流描述
Description string `yaml:"description" json:"description"`
// Nodes 节点列表
Nodes []NodeConfig `yaml:"nodes" json:"nodes"`
// Edges 边列表
Edges []EdgeConfig `yaml:"edges" json:"edges"`
// EntryPoint 入口点
EntryPoint string `yaml:"entry_point" json:"entry_point"`
}
WorkflowConfig 工作流配置
func LoadWorkflowConfig ¶
func LoadWorkflowConfig(path string) (*WorkflowConfig, error)
LoadWorkflowConfig 从文件加载 Workflow 配置