subagent

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: May 11, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ToJSONRPCMessage

func ToJSONRPCMessage(msg provider.Message) types.Message

ToJSONRPCMessage converts a provider message to JSON-RPC format

Types

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
}

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 agent.ToolRegistry) *Manager

NewManager creates a new subagent manager

func (*Manager) GetResult

func (m *Manager) GetResult(id string) *Result

GetResult returns a result by task ID

func (*Manager) GetStats

func (m *Manager) GetStats() map[string]interface{}

GetStats returns manager statistics

func (*Manager) GetTask

func (m *Manager) GetTask(id string) *Task

GetTask returns a task by ID

func (*Manager) KillSubAgent

func (m *Manager) KillSubAgent(id string) error

KillSubAgent terminates a subagent

func (*Manager) ListSubAgents

func (m *Manager) ListSubAgents() []map[string]interface{}

ListSubAgents returns all active subagents

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

func (m *Manager) SpawnTask(description, input string, tools []string) (string, error)

SpawnTask spawns a new subagent 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) Start

func (m *Manager) Start()

Start starts the subagent manager

func (*Manager) Stop

func (m *Manager) Stop()

Stop stops the subagent manager

func (*Manager) SubmitTask

func (m *Manager) SubmitTask(task *Task) error

SubmitTask submits a task to the queue

func (*Manager) WaitForResult

func (m *Manager) WaitForResult(taskID string, timeout time.Duration) (*Result, error)

WaitForResult waits for a task result with timeout

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"`
}

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

func (*SubAgent) Run

func (s *SubAgent) Run(ctx context.Context, input string) (string, error)

Run executes the subagent

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"`
	CreatedAt   time.Time              `json:"created_at"`
}

Task represents a task to be executed by a subagent

Jump to

Keyboard shortcuts

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