engine

package
v1.4.6 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

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 NewExecutor

func NewExecutor() *Executor

NewExecutor 创建执行器,注册内置策略。

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.

Jump to

Keyboard shortcuts

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