config

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AgentConfig

type AgentConfig struct {
	Name         string           `yaml:"name"`
	Description  string           `yaml:"description"`
	Model        string           `yaml:"model"`
	Instructions string           `yaml:"instructions"`
	Plugins      []PluginConfig   `yaml:"plugins,omitempty"`
	Topics       TopicsConfig     `yaml:"topics"`
	Memory       MemoryConfig     `yaml:"memory,omitempty"`
	MCP          MCPConfig        `yaml:"mcp,omitempty"`
	Connection   ConnectionConfig `yaml:"connection,omitempty"`
}

AgentConfig defines the agent's configuration.

type Config

type Config struct {
	Agent AgentConfig `yaml:"agent"`
}

Config represents a complete agent YAML file.

func Load

func Load(data []byte) (*Config, error)

Load parses YAML data into a Config.

func LoadFile

func LoadFile(path string) (*Config, error)

LoadFile loads and parses a YAML config file.

func (*Config) Validate

func (c *Config) Validate() error

Validate checks that the config contains all required fields.

type ConnectionConfig

type ConnectionConfig struct {
	Timeout     string `yaml:"timeout,omitempty"`      // Request timeout (e.g., "60s", "2m")
	MaxRetries  int    `yaml:"max_retries,omitempty"`  // Max reconnection retries (0 = infinite)
	BaseBackoff string `yaml:"base_backoff,omitempty"` // Initial backoff (e.g., "1s")
	MaxBackoff  string `yaml:"max_backoff,omitempty"`  // Max backoff (e.g., "30s")
}

ConnectionConfig defines SDK connection options.

func (*ConnectionConfig) GetOptions

func (c *ConnectionConfig) GetOptions() (ConnectionOptions, error)

GetOptions parses the connection config and returns options with defaults.

type ConnectionOptions

type ConnectionOptions struct {
	RequestTimeout time.Duration
	MaxRetries     int
	BaseBackoff    time.Duration
	MaxBackoff     time.Duration
}

ConnectionOptions holds parsed connection settings.

type MCPConfig

type MCPConfig struct {
	Servers []MCPServerConfig `yaml:"servers,omitempty"`
}

MCPConfig defines MCP server connections.

type MCPServerConfig

type MCPServerConfig struct {
	Name    string            `yaml:"name"`
	Command []string          `yaml:"command,omitempty"`
	URL     string            `yaml:"url,omitempty"`
	Env     map[string]string `yaml:"env,omitempty"`
}

MCPServerConfig defines an MCP server to connect to. Exactly one of Command or URL must be specified:

  • Command: spawns a local subprocess (stdio transport)
  • URL: connects to a remote server (Streamable HTTP transport)

type MemoryConfig

type MemoryConfig struct {
	Enabled       bool                 `yaml:"enabled"`
	SessionPrefix string               `yaml:"session_prefix,omitempty"`
	TTL           string               `yaml:"ttl,omitempty"` // Duration string like "1h", "24h"
	Profile       SessionProfileConfig `yaml:"profile,omitempty"`
}

MemoryConfig defines optional memory/session settings.

func (*MemoryConfig) GetProfile

func (m *MemoryConfig) GetProfile() SessionProfileConfig

GetProfile returns the session profile with defaults applied.

type PluginConfig

type PluginConfig struct {
	Name     string         `yaml:"name"`
	File     string         `yaml:"file"`
	Restrict []string       `yaml:"restrict,omitempty"`
	Config   map[string]any `yaml:"config,omitempty"`
}

PluginConfig defines a Lua plugin.

type RouteConfig

type RouteConfig struct {
	Topic       string `yaml:"topic"`
	Description string `yaml:"description"`
}

RouteConfig defines a dynamic routing destination. The LLM can route messages to these topics based on its analysis.

type SessionProfileConfig

type SessionProfileConfig struct {
	Type                   string `yaml:"type,omitempty"`                    // "rolling_window"
	MaxTokens              int    `yaml:"max_tokens,omitempty"`              // Max tokens in memory
	SummarizationThreshold int    `yaml:"summarization_threshold,omitempty"` // When to trigger summarization
}

SessionProfileConfig defines session memory behavior.

type TopicsConfig

type TopicsConfig struct {
	Subscribe []string      `yaml:"subscribe"`
	Publish   []string      `yaml:"publish"`
	Routes    []RouteConfig `yaml:"routes,omitempty"`
}

TopicsConfig defines pub/sub topics.

func (*TopicsConfig) BuildRoutingPrompt

func (t *TopicsConfig) BuildRoutingPrompt() string

BuildRoutingPrompt creates instructions for the LLM about available routes.

func (*TopicsConfig) HasRoutes

func (t *TopicsConfig) HasRoutes() bool

HasRoutes returns true if dynamic routes are configured.

func (*TopicsConfig) IsValidRoute

func (t *TopicsConfig) IsValidRoute(topic string) bool

IsValidRoute checks if a topic is in the allowed routes.

Jump to

Keyboard shortcuts

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