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.
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 ¶
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.