Documentation
¶
Index ¶
- func GetOutput[T any](r *Result, taskID string) (T, error)
- type Awaitable
- type AwaitableState
- type Checkpoint
- type CheckpointStore
- type Config
- type Crew
- func (c *Crew) CacheHitCount() int64
- func (c *Crew) CacheMissCount() int64
- func (c *Crew) ClearToolCache()
- func (c *Crew) Fork(checkpointID string) (string, error)
- func (c *Crew) FrameStream() <-chan stream.Frame
- func (c *Crew) InjectTask(t *task.Task) error
- func (c *Crew) IsPaused() bool
- func (c *Crew) Kickoff(ctx context.Context) (*Result, error)
- func (c *Crew) KickoffAsync(ctx context.Context) (*Awaitable, <-chan CrewStreamingOutput, error)
- func (c *Crew) KickoffForEach(ctx context.Context, inputs []map[string]any) ([]*Result, error)
- func (c *Crew) KickoffForEachAsync(ctx context.Context, inputs []map[string]any) (<-chan ForEachResult, error)
- func (c *Crew) KickoffStream(ctx context.Context) (<-chan CrewStreamingOutput, error)
- func (c *Crew) Pause()
- func (c *Crew) Replay(ctx context.Context, freshCrew *Crew, taskID string) (*Result, error)
- func (c *Crew) ReplayFromCheckpoint(ctx context.Context, freshCrew *Crew, checkpointID, taskID string) (*Result, error)
- func (c *Crew) Resume(ctx context.Context, freshCrew *Crew, checkpointID string) (*Result, error)
- func (c *Crew) ResumeExecution()
- func (c *Crew) SetEventBus(bus *events.EventBus)
- func (c *Crew) SetStepCallback(cb callback.Callback)
- func (c *Crew) StepCallback() callback.Callback
- func (c *Crew) Train(ctx context.Context, iterations int, inputs map[string]any, trainingDir string, ...) (*TrainingReport, error)
- type CrewStreamingOutput
- type ForEachResult
- type NodeState
- type ProcessType
- type Result
- type TrainingReport
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Awaitable ¶ added in v0.8.0
type Awaitable struct {
// contains filtered or unexported fields
}
Awaitable is a future representing an async crew execution. It delivers the result once (to any number of awaiters) via a closed channel.
func (*Awaitable) Await ¶ added in v0.8.0
Await blocks until the crew finishes or the context is cancelled. Returns the cached result immediately on subsequent calls.
func (*Awaitable) AwaitWithTimeout ¶ added in v0.8.0
AwaitWithTimeout blocks until the crew finishes or the timeout expires.
func (*Awaitable) State ¶ added in v0.8.0
func (a *Awaitable) State() AwaitableState
State returns the current execution state without blocking.
type AwaitableState ¶ added in v0.8.0
type AwaitableState uint32
AwaitableState represents the execution state of an async crew.
const ( AwaitablePending AwaitableState = 0 AwaitableRunning AwaitableState = 1 AwaitableCompleted AwaitableState = 2 AwaitableFailed AwaitableState = 3 )
func (AwaitableState) String ¶ added in v0.8.0
func (s AwaitableState) String() string
type Checkpoint ¶
type Checkpoint struct {
ID string
ProcessType string
Phase string
NodeStates map[string]*NodeState
TaskStates map[string]*NodeState // new code populates both; readers prefer TaskStates, fall back to NodeStates
OrderedTaskIDs []string // preserves task execution order for resume
CrewID string // identifies which crew context this checkpoint belongs to
CreatedAt time.Time
UpdatedAt time.Time
}
Checkpoint represents a snapshot of crew execution state.
type CheckpointStore ¶
type CheckpointStore interface {
Save(ctx context.Context, ckpt *Checkpoint) error
Load(ctx context.Context, id string) (*Checkpoint, error)
List(ctx context.Context, filter map[string]any) ([]*Checkpoint, error)
Delete(ctx context.Context, id string) error
ListCheckpoints(ctx context.Context, crewID string) ([]*Checkpoint, error)
}
CheckpointStore defines the interface for checkpoint persistence. The implementation is provided by the checkpoint package to avoid circular dependency.
type Config ¶
type Config struct {
Agents []*agent.Agent
Tasks []*task.Task
Process ProcessType
ManagerLLM llm.Client
ManagerAgent *agent.Agent
Verbose bool
MaxRPM int
MaxCycles int
StepCallback callback.Callback
CheckpointStore CheckpointStore
// @sk-task knowledge-sources#T4.1: shared knowledge sources (AC-008)
KnowledgeSources []knowledge.KnowledgeSource
FlowEdges []flow.Edge
// @sk-task output-streaming#T2.1: streaming flag (AC-001, AC-002)
Stream bool
// @sk-task unified-memory#T3.1: crew-level memory (AC-004)
Memory *memory.UnifiedMemory
// @sk-task tool-caching#T3.1: crew-level cache override (AC-005)
Cache bool
// @sk-task async-crew-execution#T1.4: MaxParallel for KickoffForEachAsync (AC-013)
MaxParallel int
// @sk-task replay-system#T3.2: CrewID for checkpoint scoping (AC-007)
CrewID string
// @sk-task skills-system#T2.1: shared skill paths for all agents (AC-005, AC-006)
Skills []string
// @sk-task planner#T3.1: crew-level planning config (AC-007, AC-008)
Planning bool
PlanningLLM llm.Client
}
Config defines the configuration for a Crew.
type Crew ¶
type Crew struct {
// contains filtered or unexported fields
}
Crew orchestrates a group of agents to execute a collection of tasks.
func (*Crew) CacheHitCount ¶ added in v0.8.0
CacheHitCount returns the total cache hits across all agents.
func (*Crew) CacheMissCount ¶ added in v0.8.0
CacheMissCount returns the total cache misses across all agents.
func (*Crew) ClearToolCache ¶ added in v0.8.0
func (c *Crew) ClearToolCache()
ClearToolCache clears all cached tool results across all agents.
func (*Crew) Fork ¶ added in v0.8.0
Fork creates a deep copy of the checkpoint with the given ID and saves it under a new ID.
func (*Crew) FrameStream ¶ added in v0.7.0
FrameStream returns a merged frame channel from all agents. Returns nil if no agents have frame channels.
func (*Crew) InjectTask ¶ added in v0.6.0
InjectTask queues a new task for execution. Returns an error if the queue is full.
func (*Crew) KickoffAsync ¶ added in v0.8.0
KickoffAsync starts the crew's task execution in a background goroutine. Returns an Awaitable future and a channel of per-task streaming outputs. The stream channel is closed after all tasks complete. Works for all process types.
func (*Crew) KickoffForEach ¶ added in v0.8.0
KickoffForEach runs the crew sequentially for each input set. Each iteration clones the crew, substitutes placeholders, and calls Kickoff. Returns a slice of results in input order. Halts and returns the first error if any iteration fails.
func (*Crew) KickoffForEachAsync ¶ added in v0.8.0
func (c *Crew) KickoffForEachAsync(ctx context.Context, inputs []map[string]any) (<-chan ForEachResult, error)
KickoffForEachAsync runs the crew for each input set in parallel using a bounded worker pool. Returns a channel of ForEachResult. The channel is closed after all iterations complete. MaxParallel controls the maximum number of concurrent executions (0 = NumCPU).
func (*Crew) KickoffStream ¶ added in v0.7.0
func (c *Crew) KickoffStream(ctx context.Context) (<-chan CrewStreamingOutput, error)
KickoffStream starts the crew's task execution and returns a channel of per-task chunks. Stream must be true in Config, otherwise KickoffStream returns an error. The channel is closed after the last task. Only sequential process is supported for streaming.
func (*Crew) Pause ¶ added in v0.6.0
func (c *Crew) Pause()
Pause suspends crew execution at the next task boundary.
func (*Crew) Replay ¶ added in v0.8.0
Replay re-executes from the given taskID forward using the latest checkpoint. Tasks before taskID retain their checkpoint output without re-execution.
func (*Crew) ReplayFromCheckpoint ¶ added in v0.8.0
func (c *Crew) ReplayFromCheckpoint(ctx context.Context, freshCrew *Crew, checkpointID, taskID string) (*Result, error)
ReplayFromCheckpoint re-executes from the given taskID forward using a specific checkpoint.
func (*Crew) Resume ¶
Resume restores crew execution from a checkpoint, using a fresh crew for agents/LLMs. Completed tasks are not re-executed (matched by index position in the tasks slice); remaining tasks execute normally.
func (*Crew) ResumeExecution ¶ added in v0.6.0
func (c *Crew) ResumeExecution()
ResumeExecution continues a paused crew.
func (*Crew) SetEventBus ¶ added in v0.8.0
SetEventBus sets the event bus for publishing async lifecycle events.
func (*Crew) SetStepCallback ¶
SetStepCallback replaces the crew's step callback. Used by telemetry bridge.
func (*Crew) StepCallback ¶
StepCallback returns the crew's current step callback.
func (*Crew) Train ¶ added in v0.4.0
func (c *Crew) Train(ctx context.Context, iterations int, inputs map[string]any, trainingDir string, feedbackFn func(iteration int, result *Result) training.Feedback, ) (*TrainingReport, error)
Train runs the crew N iterations, collects human feedback after each iteration, persists negative feedback (Rating < 0), and consolidates advice per agent after all iterations. Only sequential process is supported; other processes return ErrInvalidProcess.
type CrewStreamingOutput ¶ added in v0.7.0
type CrewStreamingOutput struct {
TaskID string
AgentRole string
Content string
IsLast bool
TokenUsage llm.Usage
Error string
}
CrewStreamingOutput is a per-task output chunk delivered in real time.
type ForEachResult ¶ added in v0.8.0
ForEachResult holds the result of a single iteration of KickoffForEachAsync.
type NodeState ¶
type NodeState struct {
TaskID string
Processed bool
Failed bool
Output string
Error string
InputContext map[string]string // context passed to task execution
AgentID string // Role of the agent that executed this task
TokenUsage map[string]int // per-agent token usage at checkpoint time
TaskDescription string // task description at time of checkpoint
ExpectedOutput string // expected output at time of checkpoint
// @sk-task planner#T3.1: plan text for replay/audit (AC-009)
Plan string
}
NodeState represents the execution state of a single task or flow node within a checkpoint.
type ProcessType ¶
type ProcessType string
ProcessType defines the execution strategy for a crew.
const ( ProcessSequential ProcessType = "sequential" ProcessHierarchical ProcessType = "hierarchical" ProcessConsensual ProcessType = "consensual" ProcessReflective ProcessType = "reflective" ProcessFlow ProcessType = "flow" ProcessStateMachine ProcessType = "state_machine" )
Supported crew process types.