Documentation
¶
Index ¶
- func DefaultStepRunner(ctx context.Context, step core.StepProtocol, input core.StepInput) (core.StepOutput, error)
- type DAGStrategy
- type ExecutionMode
- type ExecutionNode
- type ExecutionResult
- type Executor
- type ParallelStrategy
- type RouteSelector
- type RoutingStrategy
- type ScheduleStrategy
- type SequentialStrategy
- type StepDependencies
- type StepRunner
- type StepSpec
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultStepRunner ¶
func DefaultStepRunner(ctx context.Context, step core.StepProtocol, input core.StepInput) (core.StepOutput, error)
DefaultStepRunner validates and executes step implementations.
Types ¶
type DAGStrategy ¶
type DAGStrategy struct{}
DAGStrategy 拓扑排序 + ready queue 并发。
func (*DAGStrategy) Schedule ¶
func (s *DAGStrategy) Schedule(ctx context.Context, nodes []*ExecutionNode, runner StepRunner) (*ExecutionResult, error)
type ExecutionMode ¶
type ExecutionMode string
ExecutionMode 工作流执行模式。
const ( ModeSequential ExecutionMode = "sequential" ModeParallel ExecutionMode = "parallel" ModeDAG ExecutionMode = "dag" ModeRouting ExecutionMode = "routing" )
type ExecutionNode ¶
type ExecutionNode struct {
ID string
Step core.StepProtocol
Dependencies []string // 依赖的节点 ID
Input core.StepInput
}
ExecutionNode 执行节点,包装步骤与依赖关系。
func BuildExecutionNode ¶
func BuildExecutionNode(spec StepSpec, deps StepDependencies) (*ExecutionNode, error)
BuildExecutionNode creates an execution node from step spec and shared dependencies.
type ExecutionResult ¶
type ExecutionResult struct {
Outputs map[string]core.StepOutput // nodeID -> output
Errors map[string]error // nodeID -> error (if any)
}
ExecutionResult 执行结果。
type Executor ¶
type Executor struct {
// contains filtered or unexported fields
}
Executor 唯一执行入口。 对外仅暴露 Execute,策略选择在内部完成。
func (*Executor) Execute ¶
func (e *Executor) Execute(ctx context.Context, mode ExecutionMode, nodes []*ExecutionNode, runner StepRunner) (*ExecutionResult, error)
Execute 执行工作流,根据 mode 选择策略。
func (*Executor) RegisterStrategy ¶
func (e *Executor) RegisterStrategy(mode ExecutionMode, strategy ScheduleStrategy)
RegisterStrategy 注册自定义策略。
type ParallelStrategy ¶
type ParallelStrategy struct{}
ParallelStrategy 无依赖步骤并发执行。
func (*ParallelStrategy) Schedule ¶
func (s *ParallelStrategy) Schedule(ctx context.Context, nodes []*ExecutionNode, runner StepRunner) (*ExecutionResult, error)
type RouteSelector ¶
type RouteSelector func(ctx context.Context, input core.StepInput, nodes []*ExecutionNode) (*ExecutionNode, error)
RouteSelector 路由选择函数,根据输入选择要执行的节点。
type RoutingStrategy ¶
type RoutingStrategy struct {
Selector RouteSelector
}
RoutingStrategy 条件分支选择。
func (*RoutingStrategy) Schedule ¶
func (s *RoutingStrategy) Schedule(ctx context.Context, nodes []*ExecutionNode, runner StepRunner) (*ExecutionResult, error)
type ScheduleStrategy ¶
type ScheduleStrategy interface {
Schedule(ctx context.Context, nodes []*ExecutionNode, runner StepRunner) (*ExecutionResult, error)
}
ScheduleStrategy 调度策略接口(Strategy Pattern)。
type SequentialStrategy ¶
type SequentialStrategy struct{}
SequentialStrategy 按序执行(Chain 模式)。
func (*SequentialStrategy) Schedule ¶
func (s *SequentialStrategy) Schedule(ctx context.Context, nodes []*ExecutionNode, runner StepRunner) (*ExecutionResult, error)
type StepDependencies ¶
type StepDependencies struct {
Gateway core.GatewayLike
ToolRegistry core.ToolRegistry
HumanHandler core.HumanInputHandler
AgentExecutor core.AgentExecutor
CodeHandler workflowsteps.CodeHandler
HybridRetriever workflowsteps.HybridRetriever
MultiHopReasoner workflowsteps.MultiHopReasoner
RetrievalReranker workflowsteps.RetrievalReranker
}
StepDependencies holds external dependencies required by different step types.
type StepRunner ¶
type StepRunner func(ctx context.Context, step core.StepProtocol, input core.StepInput) (core.StepOutput, error)
StepRunner 执行单个步骤的回调。
type StepSpec ¶
type StepSpec struct {
ID string
Type core.StepType
Model string
Prompt string
Temperature float64
MaxTokens int
ToolName string
ToolParams map[string]any
InputPrompt string
InputType string
Options []string
Timeout time.Duration
Query string
Dependencies []string
Input core.StepInput
}
StepSpec describes one workflow step in a transport-friendly shape.