package tools import ( "strings" "code.tczkiot.com/wlw/ai-agent/internal/ai/runtime/registry" "code.tczkiot.com/wlw/ai-agent/internal/pkg/toolx" ) type Decision string const ( DecisionConfirm Decision = "confirm" DecisionCancel Decision = "cancel" ) func ParseConfirmationDecision(value string) Decision { value = strings.ToLower(strings.TrimSpace(value)) if value == "" { return "" } cancelWords := []string{ "不确认", "取消", "不用", "不需要", "算了", "no", "cancel", "不提交", "不要提交", "暂不提交", "不办理", "不要办理", "不执行", "不要执行", } for _, item := range cancelWords { if strings.Contains(value, item) { return DecisionCancel } } confirmWords := []string{ "确认", "是", "好的", "可以", "ok", "yes", "continue", "confirm", "继续", "同意", "提交", "确定", "办理", "执行", } for _, item := range confirmWords { if strings.Contains(value, item) { return DecisionConfirm } } return "" } func NewRuntimeStaticTool(toolCode string) registry.Tool { switch toolx.NormalizeToolCodeAlias(strings.TrimSpace(toolCode)) { case toolx.GraphTriageServiceRequest.Code: return NewTriageServiceRequestTool() case toolx.GraphAnalyzeConversation.Code: return NewAnalyzeConversationTool() case toolx.GraphHandoffConversation.Code: return NewHandoffGraphTool() default: return nil } }