agent

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Jul 20, 2026 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrMCPStdioDisabled = errors.New("agent: mcp stdio disabled; set Config.MCPStdioEnabled=true")

ErrMCPStdioDisabled is returned when StartMCPStdioServer is called with MCPStdioEnabled=false.

Functions

This section is empty.

Types

type Agent

type Agent struct {
	UsageMetrics map[string]int
	// contains filtered or unexported fields
}

Agent represents an AI agent with a role, goal, tools, and memory.

func New

func New(cfg Config) *Agent

New creates a new Agent with the given configuration, applying sensible defaults.

func (*Agent) A2ACard added in v0.2.0

func (a *Agent) A2ACard() *a2a.AgentCard

A2ACard returns the agent's A2A agent card, or nil if not registered.

func (*Agent) A2AClient added in v0.2.0

func (a *Agent) A2AClient() *a2a.A2AClient

A2AClient returns the agent's A2A client, or nil if not enabled.

func (*Agent) A2AServer added in v0.2.0

func (a *Agent) A2AServer() *a2a.A2AServer

A2AServer returns the agent's A2A server, or nil if not enabled.

func (*Agent) AddKnowledgeSources added in v0.4.0

func (a *Agent) AddKnowledgeSources(sources ...knowledge.KnowledgeSource)

AddKnowledgeSources appends shared knowledge sources.

func (*Agent) CacheHitCount added in v0.8.0

func (a *Agent) CacheHitCount() int64

CacheHitCount returns the number of cache hits across all wrapped tools.

func (*Agent) CacheMissCount added in v0.8.0

func (a *Agent) CacheMissCount() int64

CacheMissCount returns the number of cache misses across all wrapped tools.

func (*Agent) ClearToolCache added in v0.8.0

func (a *Agent) ClearToolCache()

ClearToolCache clears all cached tool results.

func (*Agent) CloneWithBackstory added in v0.8.0

func (a *Agent) CloneWithBackstory(backstory string) *Agent

CloneWithBackstory returns a new Agent with the given backstory, sharing the same LLM client, tools, and other config. Used by ForEach placeholder substitution.

func (*Agent) Close added in v0.2.0

func (a *Agent) Close(ctx context.Context)

Close shuts down the A2A server and unregisters the agent card.

func (*Agent) DelegateTo added in v0.2.0

func (a *Agent) DelegateTo(ctx context.Context, role, request string) (*a2a.DelegationFuture, error)

DelegateTo delegates a task to another agent by role and returns a DelegationFuture.

func (*Agent) EmitFrame added in v0.7.0

func (a *Agent) EmitFrame(f stream.Frame)

EmitFrame sends a streaming frame. No-op if frame channel is nil. Sets Source and Seq before emitting.

func (*Agent) Equip

func (a *Agent) Equip(t ...tools.Tool)

Equip adds tools to the agent's available tool set.

func (*Agent) Execute

func (a *Agent) Execute(ctx context.Context, taskDesc, expectedOutput string, ctxTasks []string) (string, error)

Execute runs the agent's ReAct loop to complete a given task and returns the output.

func (*Agent) FrameChannel added in v0.7.0

func (a *Agent) FrameChannel() <-chan stream.Frame

FrameChannel returns the agent's frame channel, creating it lazily.

func (*Agent) GetBackstory

func (a *Agent) GetBackstory() string

GetBackstory returns the agent's backstory.

func (*Agent) GetGoal

func (a *Agent) GetGoal() string

GetGoal returns the agent's goal.

func (*Agent) GetMaxIter

func (a *Agent) GetMaxIter() int

GetMaxIter returns the maximum number of iterations for the agent's ReAct loop.

func (*Agent) GetPlan added in v0.8.0

func (a *Agent) GetPlan() string

@sk-task planner#T3.1: GetPlan returns the current plan text (AC-009)

func (*Agent) GetPlanning added in v0.8.0

func (a *Agent) GetPlanning() bool

@sk-task planner#T3.2: GetPlanning returns whether planning is enabled (AC-007)

func (*Agent) GetRole

func (a *Agent) GetRole() string

GetRole returns the agent's role.

func (*Agent) GetSkills added in v0.8.0

func (a *Agent) GetSkills() []skill.Skill

GetSkills returns the agent's loaded skills (agent-level only).

func (*Agent) GetTools

func (a *Agent) GetTools() []tools.Tool

GetTools returns the agent's available tools.

func (*Agent) GetUsageMetrics

func (a *Agent) GetUsageMetrics() map[string]int

GetUsageMetrics returns a copy of the agent's token and tool usage metrics.

func (*Agent) HandleA2AMessage added in v0.2.0

func (a *Agent) HandleA2AMessage(ctx context.Context, msg *a2a.A2AMessage) (*a2a.A2AMessage, error)

HandleA2AMessage processes an incoming delegation and returns a typed response.

func (*Agent) LoadSkills added in v0.8.0

func (a *Agent) LoadSkills() error

LoadSkills loads skills from Config.Skills paths and caches them on the agent. Returns an error if any skill path is invalid or SKILL.md is malformed.

func (*Agent) MCPServer added in v0.3.0

func (a *Agent) MCPServer() *mcp.MCPServer

MCPServer returns the agent's MCP server, or nil if not started.

func (*Agent) Sandbox added in v0.3.0

func (a *Agent) Sandbox() sandbox.Provider

Sandbox returns the agent's sandbox provider, or nil if not configured.

func (*Agent) SetCrewSkills added in v0.8.0

func (a *Agent) SetCrewSkills(skills []skill.Skill)

SetCrewSkills sets the crew-level skills on this agent. Crew skills are prepended before agent-level skills in the prompt.

func (*Agent) SetPlanning added in v0.8.0

func (a *Agent) SetPlanning(enabled bool)

@sk-task planner#T3.1: SetPlanning enables planning on this agent (AC-007)

func (*Agent) SetPlanningLLM added in v0.8.0

func (a *Agent) SetPlanningLLM(llmClient llm.Client)

@sk-task planner#T3.1: SetPlanningLLM sets the planning LLM for this agent (AC-008)

func (*Agent) SetToolCache added in v0.8.0

func (a *Agent) SetToolCache(tc cache.ToolCache)

SetToolCache sets the agent's tool cache backend (used by crew propagateCache). Wraps from the original (unwrapped) tools to avoid double-wrapping.

func (*Agent) SetUnifiedMemory added in v0.7.0

func (a *Agent) SetUnifiedMemory(m *memory.UnifiedMemory)

SetUnifiedMemory sets the agent's UnifiedMemory, auto-wrapping as memory.Store.

func (*Agent) StartMCPServer added in v0.3.0

func (a *Agent) StartMCPServer(ctx context.Context, port string) error

StartMCPServer starts an MCP server exposing the agent's tools.

func (*Agent) StartMCPStdioServer added in v0.3.0

func (a *Agent) StartMCPStdioServer(ctx context.Context) error

StartMCPStdioServer starts an MCP server over stdio.

type Config

type Config struct {
	Role             string
	Goal             string
	Backstory        string
	LLM              llm.Client
	Tools            []tools.Tool
	Memory           memory.Store
	MaxIter          int
	MaxRPM           int
	MaxRetries       int
	MaxExecutionTime time.Duration
	Verbose          bool
	AllowDelegation  bool
	StepCallback     callback.Callback
	// @sk-task a2a#T3.2: A2A protocol fields (AC-006)
	A2APort         int
	A2AAuthToken    string
	A2ACapabilities []string
	// @sk-task mcp-sandbox#T2.3, T3.1: sandbox type ("wasm"/"docker"/"") (AC-007)
	SandboxType string
	// @sk-task knowledge-sources#T2.2: knowledge sources and pipeline (AC-007)
	KnowledgeSources []knowledge.KnowledgeSource
	// @sk-task guardrails#T3.1: agent-level guardrails validated before final return (AC-009)
	Guardrails []guardrail.Guardrail
	// @sk-task training#T3.1: training directory for advice injection (AC-009, AC-010, AC-015)
	TrainingDir string
	// @sk-task mcp-stdio-server#T1.1: MCPStdioEnabled config guard (AC-004)
	MCPStdioEnabled bool
	// @sk-task unified-memory#T3.1: UnifiedMemory field (AC-003, AC-008, DEC-003)
	UnifiedMemory *memory.UnifiedMemory
	// @sk-task tool-caching#T2.2: tool cache config fields (AC-004)
	Cache        bool
	CacheTTL     time.Duration
	MaxCacheSize int
	// @sk-task skills-system#T2.1: skill paths for domain expertise injection (AC-004, AC-011)
	Skills []string
	// @sk-task planner#T1.1: plan generation config (AC-001, AC-002, AC-003, AC-004)
	Planning    bool
	PlanningLLM llm.Client
}

Config defines the configuration for an Agent.

Jump to

Keyboard shortcuts

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