Details (original message): Add catalog-driven orchestration: intent catalog injection, deterministic plan validation, and system-function steps.
52 lines
2.0 KiB
Go
52 lines
2.0 KiB
Go
package squad
|
|
|
|
import "context"
|
|
|
|
// StepEvaluator 单步评估器:顺序步骤完成后评估产出,产出动态调整建议。
|
|
// 默认实现为 NoOpEvaluator(不做任何调整);产品可注入规则/模型评估器。
|
|
type StepEvaluator interface {
|
|
// Evaluate 返回对该步骤产出的评估与调整建议(加步/跳步/新假设)。
|
|
// DynamicStepsToAdd 中的新步骤默认插入最后一个"成文/终审"步骤之前。
|
|
Evaluate(ctx context.Context, req EvaluateRequest) (*EvaluationResult, error)
|
|
}
|
|
|
|
// EvaluateRequest 评估输入。
|
|
type EvaluateRequest struct {
|
|
RunID string
|
|
Step StepSpec
|
|
Workspace string // 运行工作区根目录
|
|
Output string // 步骤主产出文本
|
|
Blackboard *BlackboardState
|
|
}
|
|
|
|
// EvaluationResult 评估结论与动态调整建议(与产品 squad 语义对齐)。
|
|
type EvaluationResult struct {
|
|
StepID string `json:"step_id"`
|
|
Action StepAction `json:"action"`
|
|
Reason string `json:"reason"`
|
|
NewAssumptions []AssumptionItem `json:"new_assumptions,omitempty"`
|
|
ResolvedGaps []string `json:"resolved_gaps,omitempty"`
|
|
DynamicStepsToAdd []StepSpec `json:"dynamic_steps_to_add,omitempty"`
|
|
StepsToSkip []string `json:"steps_to_skip,omitempty"`
|
|
// NeedsApproval 为 true 时,本批调整先经 HITL 审批再应用。
|
|
NeedsApproval bool `json:"needs_approval,omitempty"`
|
|
ApprovalNote string `json:"approval_note,omitempty"`
|
|
}
|
|
|
|
// StepAction 动态调整动作。
|
|
type StepAction string
|
|
|
|
const (
|
|
ActionContinue StepAction = "CONTINUE"
|
|
ActionAddStep StepAction = "ADD_STEP"
|
|
ActionUpdateStep StepAction = "UPDATE_STEP"
|
|
ActionSkipStep StepAction = "SKIP_STEP"
|
|
)
|
|
|
|
// NoOpEvaluator 默认空评估器。
|
|
type NoOpEvaluator struct{}
|
|
|
|
func (NoOpEvaluator) Evaluate(ctx context.Context, req EvaluateRequest) (*EvaluationResult, error) {
|
|
return &EvaluationResult{StepID: req.Step.ID, Action: ActionContinue}, nil
|
|
}
|