capabilities

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Feb 4, 2025 License: MIT Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FindBestAgent

func FindBestAgent(agents map[string]*AgentCapabilities, reqs *TaskRequirements) (string, error)

FindBestAgent selects the most suitable agent for a task

Types

type AgentCapabilities

type AgentCapabilities struct {
	// Capabilities maps capability names to proficiency levels
	Capabilities map[Capability]CapabilityLevel

	// Priority indicates the agent's priority level for task assignment
	Priority int

	// MaxConcurrentTasks is the maximum number of tasks this agent can handle
	MaxConcurrentTasks int

	// CurrentTasks is the number of tasks currently assigned
	CurrentTasks int
}

AgentCapabilities represents the set of capabilities an agent has

func NewAgentCapabilities

func NewAgentCapabilities() *AgentCapabilities

NewAgentCapabilities creates a new capabilities instance with defaults

func (*AgentCapabilities) CanAcceptTask

func (ac *AgentCapabilities) CanAcceptTask() bool

CanAcceptTask checks if the agent can take on another task

func (*AgentCapabilities) HasCapability

func (ac *AgentCapabilities) HasCapability(cap Capability, minLevel CapabilityLevel) bool

HasCapability checks if the agent has the required capability at minimum level

type AgentMatch

type AgentMatch struct {
	AgentID string
	Score   float64
	Reasons []string
}

AgentMatch represents how well an agent matches task requirements

func CalculateMatch

func CalculateMatch(agentID string, caps *AgentCapabilities, reqs *TaskRequirements) *AgentMatch

CalculateMatch determines how well an agent matches task requirements

type Capability

type Capability string

Capability represents a specific skill or ability an agent has

const (
	// Core capabilities
	CapabilityTextProcessing  Capability = "text_processing"
	CapabilityCodeAnalysis    Capability = "code_analysis"
	CapabilityMathComputation Capability = "math_computation"

	// Task-specific capabilities
	CapabilityTaskPlanning   Capability = "task_planning"
	CapabilityTaskDelegation Capability = "task_delegation"
	CapabilityTaskMonitoring Capability = "task_monitoring"

	// Domain-specific capabilities
	CapabilityDataAnalysis    Capability = "data_analysis"
	CapabilityImageProcessing Capability = "image_processing"
	CapabilityNLPProcessing   Capability = "nlp_processing"
)

type CapabilityLevel

type CapabilityLevel float64

CapabilityLevel represents how proficient an agent is at a capability

const (
	CapabilityLevelNone     CapabilityLevel = 0.0
	CapabilityLevelBasic    CapabilityLevel = 0.3
	CapabilityLevelModerate CapabilityLevel = 0.6
	CapabilityLevelAdvanced CapabilityLevel = 0.9
	CapabilityLevelExpert   CapabilityLevel = 1.0
)

type TaskRequirements

type TaskRequirements struct {
	Required map[Capability]CapabilityLevel
	Optional map[Capability]CapabilityLevel
	Priority int
	Deadline *time.Time
}

TaskRequirements represents the capabilities required for a task TaskRequirements defines what capabilities are needed for a task

func NewTaskRequirements

func NewTaskRequirements() *TaskRequirements

NewTaskRequirements creates a new requirements instance

Jump to

Keyboard shortcuts

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