Files
Agent-Squad/squad/evaluator.go
T
weichen b6ff0ab55f
ci / vet-and-test (push) Failing after 2s
ci / docker-checkout-hostgateway (push) Failing after 2s
Add catalog-driven orchestration: intent catalog injection
Details (original message):
Add catalog-driven orchestration: intent catalog injection, deterministic plan validation, and system-function steps.
2026-09-29 16:37:46 +00:00

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
}