Tencent/WeKnora · error

invalid follow-up suggestion mode %q

Error message

invalid follow-up suggestion mode %q

What it means

Validation error from QuestionSuggestionConfig.Validate: follow-ups.Mode is not one of generated, knowledge, or hybrid. The offending mode string is quoted; the config is rejected before persistence or model invocation.

Source

Thrown at internal/types/custom_agent.go:392

// persisted or used to incur a model call.
func (c *QuestionSuggestionConfig) Validate() error {
	if c == nil {
		return nil
	}
	if c.Starters.Count < 1 || c.Starters.Count > 8 {
		return fmt.Errorf("starter suggestion count must be between 1 and 8")
	}
	if c.FollowUps.Count < 1 || c.FollowUps.Count > 5 {
		return fmt.Errorf("follow-up suggestion count must be between 1 and 5")
	}
	if c.FollowUps.MaxContextTurns < 1 || c.FollowUps.MaxContextTurns > 5 {
		return fmt.Errorf("follow-up max_context_turns must be between 1 and 5")
	}
	if !oneOf(c.Starters.Mode, SuggestionModeCurated, SuggestionModeKnowledge, SuggestionModeHybrid) {
		return fmt.Errorf("invalid starter suggestion mode %q", c.Starters.Mode)
	}
	if !oneOf(c.FollowUps.Mode, SuggestionModeGenerated, SuggestionModeKnowledge, SuggestionModeHybrid) {
		return fmt.Errorf("invalid follow-up suggestion mode %q", c.FollowUps.Mode)
	}
	for i, item := range c.Starters.Items {
		trimmed := strings.TrimSpace(item)
		if trimmed == "" {
			return fmt.Errorf("starter suggestion %d cannot be empty", i+1)
		}
		if len([]rune(trimmed)) > 200 {
			return fmt.Errorf("starter suggestion %d exceeds 200 characters", i+1)
		}
	}
	if len([]rune(strings.TrimSpace(c.FollowUps.AdditionalInstruction))) > 2000 {
		return fmt.Errorf("follow-up additional_instruction exceeds 2000 characters")
	}
	for _, category := range c.FollowUps.Categories {
		if !oneOf(category, SuggestionCategoryClarify, SuggestionCategoryDeepen, SuggestionCategoryAction) {
			return fmt.Errorf("invalid follow-up suggestion category %q", category)
		}
	}

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Use one of the allowed follow-up modes: generated, knowledge, hybrid
  2. Reject agent output that invents mode values
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at internal/types/custom_agent.go:392 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02). Data as JSON: /api/errors/cb36837ccd98e6dd. Report an issue: GitHub.