agent

package
v1.8.9 Latest Latest
Warning

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

Go to latest
Published: Mar 23, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultAgents

func DefaultAgents() map[string]*Info

Types

type AgentConfig

type AgentConfig struct {
	Name        string                 `json:"name,omitempty"`
	Description string                 `json:"description,omitempty"`
	Mode        Mode                   `json:"mode,omitempty"`
	Native      bool                   `json:"native,omitempty"`
	Hidden      bool                   `json:"hidden,omitempty"`
	TopP        *float64               `json:"top_p,omitempty"`
	Temperature *float64               `json:"temperature,omitempty"`
	Color       string                 `json:"color,omitempty"`
	Model       string                 `json:"model,omitempty"`
	Variant     string                 `json:"variant,omitempty"`
	Prompt      string                 `json:"prompt,omitempty"`
	Options     map[string]interface{} `json:"options,omitempty"`
	Steps       *int                   `json:"steps,omitempty"`
	Permission  map[string]interface{} `json:"permission,omitempty"`
	Disable     bool                   `json:"disable,omitempty"`
}

type Config

type Config struct {
	Agents map[string]*AgentConfig `json:"agents,omitempty"`
}

type Factory

type Factory interface {
	GetAgent(name string) (*Info, bool)
	GetLLMProvider() types.LLMProvider
	GetTools() []types.Tool
}

type FileAttachment

type FileAttachment struct {
	Path    string
	Name    string
	Content []byte
}

type Info

type Info struct {
	Name        string                 `json:"name"`
	Description string                 `json:"description,omitempty"`
	Mode        Mode                   `json:"mode"`
	Native      bool                   `json:"native,omitempty"`
	Hidden      bool                   `json:"hidden,omitempty"`
	TopP        *float64               `json:"top_p,omitempty"`
	Temperature *float64               `json:"temperature,omitempty"`
	Color       string                 `json:"color,omitempty"`
	Permission  permission.Ruleset     `json:"permission"`
	Model       *ModelInfo             `json:"model,omitempty"`
	Variant     string                 `json:"variant,omitempty"`
	Prompt      string                 `json:"prompt,omitempty"`
	Options     map[string]interface{} `json:"options,omitempty"`
	Steps       *int                   `json:"steps,omitempty"`
}

type Manager

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

func NewManager

func NewManager(factory Factory) *Manager

func (*Manager) Close

func (m *Manager) Close()

func (*Manager) CloseAgent

func (m *Manager) CloseAgent(name string)

func (*Manager) Execute

func (m *Manager) Execute(ctx context.Context, req *Request) (*Result, error)

func (*Manager) GetSubagent

func (m *Manager) GetSubagent(name string) (Subagent, error)

type Mode

type Mode string
const (
	ModeSubagent Mode = "subagent"
	ModePrimary  Mode = "primary"
	ModeAll      Mode = "all"
)

type ModelInfo

type ModelInfo struct {
	ModelID    string `json:"model_id"`
	ProviderID string `json:"provider_id"`
}

type Request

type Request struct {
	AgentName string
	Prompt    string
	Input     string
	Files     []FileAttachment
}

type Result

type Result struct {
	Output string
	Error  error
	Usage  types.Usage
}

type Subagent

type Subagent interface {
	Execute(ctx context.Context, req *Request) (*Result, error)
	Close()
}

func NewSubagent

func NewSubagent(info *Info, llmProvider types.LLMProvider, tools []types.Tool) (Subagent, error)

type SubagentConfig

type SubagentConfig struct {
	Enabled          bool              `yaml:"enabled"`
	TriggerOnKeyword bool              `yaml:"trigger_on_keyword"`
	Triggers         []SubagentTrigger `yaml:"triggers"`
}

type SubagentEvent

type SubagentEvent struct {
	Type      string
	AgentName string
	Content   string
	Error     error
	Done      bool
}

type SubagentEventEmitter

type SubagentEventEmitter interface {
	Emit(event *SubagentEvent)
}

type SubagentHandler

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

func NewSubagentHandler

func NewSubagentHandler(manager *SubagentManager, emitter SubagentEventEmitter) *SubagentHandler

func (*SubagentHandler) ManualDelegate

func (h *SubagentHandler) ManualDelegate(ctx context.Context, agentName, input string) (*Result, error)

func (*SubagentHandler) ProcessInput

func (h *SubagentHandler) ProcessInput(ctx context.Context, input string) (bool, error)

type SubagentManager

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

func NewSubagentManager

func NewSubagentManager(config *SubagentConfig, factory SubagentManagerFactory) *SubagentManager

func (*SubagentManager) Close

func (sm *SubagentManager) Close()

func (*SubagentManager) Execute

func (sm *SubagentManager) Execute(ctx context.Context, agentName, input string) (*Result, error)

func (*SubagentManager) ShouldDelegate

func (sm *SubagentManager) ShouldDelegate(input string) *TriggerResult

type SubagentManagerFactory

type SubagentManagerFactory interface {
	GetLLMProvider() types.LLMProvider
	GetTools() []types.Tool
	GetAgent(name string) (*Info, bool)
}

type SubagentTool

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

func NewSubagentTool

func NewSubagentTool(manager *SubagentManager) *SubagentTool

func (*SubagentTool) Description

func (t *SubagentTool) Description() string

func (*SubagentTool) Execute

func (t *SubagentTool) Execute(ctx context.Context, input map[string]interface{}) (interface{}, error)

func (*SubagentTool) Metadata

func (t *SubagentTool) Metadata() types.ToolMetadata

func (*SubagentTool) Name

func (t *SubagentTool) Name() string

func (*SubagentTool) Schema

func (t *SubagentTool) Schema() map[string]interface{}

type SubagentTrigger

type SubagentTrigger struct {
	AgentName string   `yaml:"agent_name"`
	Keywords  []string `yaml:"keywords"`
	Patterns  []string `yaml:"patterns"`
	Priority  int      `yaml:"priority"`
}

type TriggerResult

type TriggerResult struct {
	AgentName  string
	Confidence float64
	Reason     string
}

Jump to

Keyboard shortcuts

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