config

package
v0.5.10 Latest Latest
Warning

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

Go to latest
Published: Aug 13, 2026 License: Apache-2.0 Imports: 19 Imported by: 0

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

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 配置

func (*AgentConfig) Validate

func (c *AgentConfig) Validate() error

Validate 验证配置

type Builder

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

Builder 配置构建器

func NewBuilder

func NewBuilder(opts ...BuilderOption) *Builder

NewBuilder 创建构建器

func (*Builder) BuildAgent

func (b *Builder) BuildAgent(config *AgentConfig) (agent.Agent, error)

BuildAgent 从配置构建 Agent

func (*Builder) BuildAgentFromFile

func (b *Builder) BuildAgentFromFile(path string) (agent.Agent, error)

BuildAgentFromFile 从文件构建 Agent

func (*Builder) BuildTeam

func (b *Builder) BuildTeam(config *TeamConfig) (*agent.Team, error)

BuildTeam 从配置构建 Team

func (*Builder) BuildTeamFromFile

func (b *Builder) BuildTeamFromFile(path string) (*agent.Team, error)

BuildTeamFromFile 从文件构建 Team

func (*Builder) BuildWorkflow

func (b *Builder) BuildWorkflow(config *WorkflowConfig) (*workflow.Workflow, error)

BuildWorkflow 从配置构建 Workflow

func (*Builder) BuildWorkflowFromFile

func (b *Builder) BuildWorkflowFromFile(path string) (*workflow.Workflow, error)

BuildWorkflowFromFile 从文件构建 Workflow

func (*Builder) Registry

func (b *Builder) Registry() *Registry

Registry 返回注册表

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 构建器配置

func DefaultBuilderConfig

func DefaultBuilderConfig() BuilderConfig

DefaultBuilderConfig 默认构建器配置

type BuilderOption

type BuilderOption func(*BuilderConfig)

BuilderOption 构建器选项

func WithBaseDir

func WithBaseDir(dir string) BuilderOption

WithBaseDir 设置基础目录

func WithEnvPrefix

func WithEnvPrefix(prefix string) BuilderOption

WithEnvPrefix 设置环境变量前缀

func WithStrict

func WithStrict(strict bool) BuilderOption

WithStrict 设置严格模式

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 DiffType

type DiffType string

DiffType 差异类型

const (
	// DiffTypeAdded 新增字段
	DiffTypeAdded DiffType = "added"

	// DiffTypeRemoved 删除字段
	DiffTypeRemoved DiffType = "removed"

	// DiffTypeModified 修改字段
	DiffTypeModified DiffType = "modified"

	// DiffTypeUnchanged 未变化
	DiffTypeUnchanged DiffType = "unchanged"
)

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 配置(带环境支持)

加载顺序:

  1. 加载 base 配置(如果存在)
  2. 加载环境特定配置
  3. 合并配置(环境配置覆盖 base 配置)
  4. 展开环境变量

参数:

  • 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 ErrorHandler

type ErrorHandler func(err error)

ErrorHandler 错误处理器

type HotReloadManager

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

HotReloadManager 热更新管理器

管理多个配置文件的热更新。

func NewHotReloadManager

func NewHotReloadManager() *HotReloadManager

NewHotReloadManager 创建热更新管理器

func (*HotReloadManager) Count

func (m *HotReloadManager) Count() int

Count 返回监控的配置数量

func (*HotReloadManager) List

func (m *HotReloadManager) List() []string

List 返回所有监控的配置名称

func (*HotReloadManager) StopAll

func (m *HotReloadManager) StopAll()

StopAll 停止所有监控

func (*HotReloadManager) Unwatch

func (m *HotReloadManager) Unwatch(name string)

Unwatch 停止监控配置文件

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 设置错误处理器

func WithInterval

func WithInterval(interval time.Duration) HotReloadOption

WithInterval 设置检查间隔

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) IsRunning

func (r *HotReloader) IsRunning() bool

IsRunning 返回运行状态

func (*HotReloader) Reload

func (r *HotReloader) Reload() error

Reload 手动触发重新加载

func (*HotReloader) Start

func (r *HotReloader) Start() error

Start 启动热更新监控

开始监控配置文件变化,当检测到变化时自动重新加载并触发回调。 非阻塞,在后台 goroutine 中运行。

func (*HotReloader) Stop

func (r *HotReloader) Stop()

Stop 停止热更新监控

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 配置

func (*LLMConfig) Validate

func (c *LLMConfig) Validate() error

Validate 验证 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 多配置

func LoadConfigs

func LoadConfigs(dir string) (*MultiConfig, error)

LoadConfigs 加载目录下的所有配置

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 NewRegistry

func NewRegistry() *Registry

NewRegistry 创建注册表

func (*Registry) GetAgent

func (r *Registry) GetAgent(name string) (agent.Agent, bool)

GetAgent 获取 Agent

func (*Registry) GetTeam

func (r *Registry) GetTeam(name string) (*agent.Team, bool)

GetTeam 获取 Team

func (*Registry) GetWorkflow

func (r *Registry) GetWorkflow(name string) (*workflow.Workflow, bool)

GetWorkflow 获取 Workflow

func (*Registry) GetWorkflowStep

func (r *Registry) GetWorkflowStep(name string) (workflow.Step, bool)

GetWorkflowStep 获取 Workflow 步骤

func (*Registry) RegisterAgent

func (r *Registry) RegisterAgent(name string, a agent.Agent)

RegisterAgent 注册 Agent

func (*Registry) RegisterTeam

func (r *Registry) RegisterTeam(name string, t *agent.Team)

RegisterTeam 注册 Team

func (*Registry) RegisterWorkflow

func (r *Registry) RegisterWorkflow(name string, w *workflow.Workflow)

RegisterWorkflow 注册 Workflow

func (*Registry) RegisterWorkflowStep

func (r *Registry) RegisterWorkflowStep(name string, s workflow.Step)

RegisterWorkflowStep 注册 Workflow 步骤

type ReloadCallback

type ReloadCallback func(config any, err error)

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 配置

func (*TeamConfig) Validate

func (c *TeamConfig) Validate() error

Validate 验证团队配置

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 工具工厂接口

func DefaultToolFactory

func DefaultToolFactory() ToolFactory

DefaultToolFactory 返回默认工厂

type Validator

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

Validator 配置验证器

func NewValidator

func NewValidator() *Validator

NewValidator 创建验证器

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) Count

func (m *VersionManager) Count() int

Count 返回版本数量

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 版本管理器选项

func WithStorePath

func WithStorePath(path string) VersionManagerOption

WithStorePath 设置版本存储路径

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 配置

func (*WorkflowConfig) Validate

func (c *WorkflowConfig) Validate() error

Validate 验证工作流配置

Jump to

Keyboard shortcuts

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