Configuration

September 1, 2026 · View on GitHub

Entry points

The package publishes three OPM opm.pipeline entry points, the flat plugin and two domain-organised variants:

[project.entry-points."opm.pipeline"]
"ovos-adapt-pipeline-plugin" = "ovos_adapt.opm:AdaptPipeline"
"ovos-adapt-domain-pipeline-plugin" = "ovos_adapt.opm:DomainAdaptPipeline"
"ovos-adapt-hierarchical-pipeline-plugin" = "ovos_adapt.opm:HierarchicalAdaptPipeline"

OVOS discovers each by its id. This page covers the flat ovos-adapt-pipeline-plugin. The variants behave the same way and accept the same keys in their own config sections, see Pipeline variants.

Enabling it in the pipeline

mycroft.conf, under intents.pipeline, lists the matcher stages in priority order. Each Adapt stage is referenced by id plus a confidence-tier suffix:

{
  "intents": {
    "pipeline": [
      "ovos-adapt-pipeline-plugin-high",
      "ovos-padatious-pipeline-plugin-high",
      "ovos-adapt-pipeline-plugin-medium",
      "ovos-adapt-pipeline-plugin-low"
    ]
  }
}

A stage earlier in the list wins ties. A common layout runs every matcher's high tier first, then medium, then low, so a confident match from any matcher beats a shaky match from the one listed first.

Confidence tiers

The plugin exposes three matchers, one per tier. Each returns a match only when its confidence clears the tier threshold:

TierMethodDefault thresholdConfig key
highmatch_high0.65conf_high
mediummatch_medium0.45conf_med
lowmatch_low0.25conf_low

The same utterance is scored once. The tier only decides which threshold the score must clear. Lower a threshold to let weaker matches through that tier; raise it to demand a stronger match.

Settings

KeyDefaultEffect
conf_high0.65minimum confidence for a match_high result
conf_med0.45minimum confidence for a match_medium result
conf_low0.25minimum confidence for a match_low result
max_words50utterances longer than this are skipped unmatched

Keep the thresholds ordered conf_low <= conf_med <= conf_high. An inverted order makes a tier unreachable.

max_words is a guard: very long utterances are rarely commands and are expensive to expand into cliques, so they are dropped before matching.

Tuning

  • Too many false matches (the assistant acts on off-hand remarks), raise conf_high, or give the over-eager intents more required slots so they demand a fuller command. See Concepts.
  • Real commands missed, check the utterance actually contains a registered surface form for every required slot. Confidence cannot rescue a missing require. Lowering conf_low only helps if the intent scored something.
  • Confidence feels low on correct matches, short keywords in long sentences score low by design (little of the utterance is covered). Register longer, more specific surface forms, or add optionally slots that cover more words.

← Writing intents · Home · Pipeline variants →