Skip to content

bug: website classifies Modality Signal as heuristic instead of learned #1577

@Xunzhuo

Description

@Xunzhuo

Describe the bug

The website currently places Modality Signal under the heuristic tutorial group, but the implementation and surrounding docs treat modality as a router-owned detector with learned classification support.

Today the docs say modality "sits under heuristic" in website/docs/tutorials/signal/heuristic/modality.md, and the signal overview links modality from the heuristic section in website/docs/tutorials/signal/overview.md.

That taxonomy looks wrong or at least misleading, because modality is wired through global.model_catalog.modules.modality_detector, supports classifier and hybrid detection methods, and has dedicated training assets for a modality routing classifier.

To Reproduce

  1. Open website/docs/tutorials/signal/overview.md.
  2. See modality listed under Heuristic Signals and linked to ./heuristic/modality.
  3. Open website/docs/tutorials/signal/heuristic/modality.md.
  4. Read the statement that modality "sits under heuristic".
  5. Compare that with the implementation and model-facing docs:
    • src/semantic-router/pkg/config/image_gen_plugin.go
    • src/vllm-sr/cli/models.py
    • src/training/model_classifier/modality_routing_classifier/README.md

Expected behavior

modality should be documented as a learned signal on the website, and the overview/navigation should move it out of the heuristic section.

If maintainers want to preserve the fact that modality also supports keyword fallback, the docs should still avoid presenting it as heuristic-only. A learned page with a note about keyword/hybrid modes would be less misleading.

Affected layer

signal

Additional context

Relevant implementation details:

  • src/semantic-router/pkg/config/image_gen_plugin.go defines modality detection methods classifier, keyword, and hybrid.
  • src/semantic-router/pkg/classification/classifier.go implements classifier-first / hybrid modality detection.
  • src/semantic-router/pkg/config/canonical_global.go exposes global.model_catalog.modules.modality_detector alongside other router-owned model modules.
  • src/vllm-sr/cli/models.py documents ModalityRule as reading detection config from modality_detector.
  • src/training/model_classifier/modality_routing_classifier/README.md documents the dedicated modality routing classifier.

Likely docs/files to update:

  • website/docs/tutorials/signal/overview.md
  • website/docs/tutorials/signal/heuristic/modality.md
  • potentially a new website/docs/tutorials/signal/learned/modality.md

This looks like a contained docs issue and a reasonable help wanted candidate.

Metadata

Metadata

Labels

area/docsbugSomething isn't workinghelp wantedExtra attention is needed

Type

No type

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions