Documentation
¶
Index ¶
- func ToJSONRPCMessage(msg provider.Message) types.Message
- type AgentFactory
- type AgentRunner
- type Config
- type Manager
- func (m *Manager) CancelTask(id string) error
- func (m *Manager) GetResult(id string) *Result
- func (m *Manager) GetStats() map[string]interface{}
- func (m *Manager) GetTask(id string) *Task
- func (m *Manager) KillSubAgent(id string) error
- func (m *Manager) ListSubAgents() []map[string]interface{}
- func (m *Manager) ListTasks(statusFilter TaskStatus) []*Task
- func (m *Manager) SpawnMultiple(tasks []struct{ ... }) ([]Result, error)
- func (m *Manager) SpawnNestedTask(parentTaskID, description, input string, tools []string, ...) (string, error)
- func (m *Manager) SpawnTask(description, input string, tools []string) (string, error)
- func (m *Manager) SpawnTaskWithContext(description, input string, tools []string, ctx map[string]interface{}) (string, error)
- func (m *Manager) Start()
- func (m *Manager) Stop()
- func (m *Manager) SubmitTask(task *Task) error
- func (m *Manager) WaitForResult(taskID string, timeout time.Duration) (*Result, error)
- type Result
- type SubAgent
- type Task
- type TaskStatus
- type Tool
- type ToolRegistry
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AgentFactory ¶ added in v0.3.0
type AgentFactory func(provider provider.Provider, registry ToolRegistry, toolsSchema []map[string]interface{}, systemPrompt string) AgentRunner
AgentFactory is a function type for creating agents
type AgentRunner ¶ added in v0.3.0
AgentRunner is an interface for running agent conversations
type Config ¶
type Config struct {
MaxConcurrent int `json:"max_concurrent"` // Max parallel subagents
MaxDepth int `json:"max_depth"` // Max recursion depth
Timeout time.Duration `json:"timeout"` // Task timeout
EnableNested bool `json:"enable_nested"` // Enable nested subagents
}
Config holds subagent configuration
func DefaultConfig ¶
func DefaultConfig() *Config
DefaultConfig returns default subagent configuration
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages all subagents
func NewManager ¶
func NewManager(cfg *Config, prov provider.Provider, registry ToolRegistry, factory AgentFactory) *Manager
NewManager creates a new subagent manager
func (*Manager) CancelTask ¶ added in v0.3.0
CancelTask cancels a task by ID
func (*Manager) KillSubAgent ¶
KillSubAgent terminates a subagent
func (*Manager) ListSubAgents ¶
ListSubAgents returns all active subagents
func (*Manager) ListTasks ¶ added in v0.3.0
func (m *Manager) ListTasks(statusFilter TaskStatus) []*Task
ListTasks returns all tasks with optional status filter
func (*Manager) SpawnMultiple ¶
func (m *Manager) SpawnMultiple(tasks []struct { Description string Input string Tools []string }) ([]Result, error)
SpawnMultiple spawns multiple tasks and waits for all results
func (*Manager) SpawnNestedTask ¶ added in v0.3.0
func (m *Manager) SpawnNestedTask(parentTaskID, description, input string, tools []string, ctx map[string]interface{}) (string, error)
SpawnNestedTask spawns a nested subagent task from a parent task
func (*Manager) SpawnTaskWithContext ¶
func (m *Manager) SpawnTaskWithContext(description, input string, tools []string, ctx map[string]interface{}) (string, error)
SpawnTaskWithContext spawns a task with additional context
func (*Manager) SubmitTask ¶
SubmitTask submits a task to the queue
type Result ¶
type Result struct {
TaskID string `json:"task_id"`
Success bool `json:"success"`
Output string `json:"output"`
Error string `json:"error,omitempty"`
Duration time.Duration `json:"duration"`
SubResults []Result `json:"sub_results,omitempty"`
CreatedAt time.Time `json:"created_at"`
}
Result represents the result of a subagent task
type SubAgent ¶
type SubAgent struct {
// contains filtered or unexported fields
}
SubAgent represents a subagent that can execute tasks
type Task ¶
type Task struct {
ID string `json:"id"`
Description string `json:"description"`
Input string `json:"input"`
Tools []string `json:"tools,omitempty"` // Tools to enable for this task
Context map[string]interface{} `json:"context,omitempty"`
ParentID string `json:"parent_id,omitempty"`
Depth int `json:"depth"`
Status TaskStatus `json:"status"`
CreatedAt time.Time `json:"created_at"`
StartedAt *time.Time `json:"started_at,omitempty"`
CompletedAt *time.Time `json:"completed_at,omitempty"`
Cancelled bool `json:"cancelled"`
// contains filtered or unexported fields
}
Task represents a task to be executed by a subagent
func (*Task) GetStatus ¶ added in v0.3.0
func (t *Task) GetStatus() TaskStatus
GetStatus gets the task status thread-safely
func (*Task) IsCancelled ¶ added in v0.3.0
IsCancelled checks if the task is cancelled
func (*Task) SetStatus ¶ added in v0.3.0
func (t *Task) SetStatus(status TaskStatus)
SetStatus sets the task status thread-safely
type TaskStatus ¶ added in v0.3.0
type TaskStatus string
TaskStatus represents the status of a task
const ( TaskStatusPending TaskStatus = "pending" TaskStatusRunning TaskStatus = "running" TaskStatusCompleted TaskStatus = "completed" TaskStatusFailed TaskStatus = "failed" TaskStatusCancelled TaskStatus = "cancelled" )