Pipeline Plugins

March 12, 2026 ยท View on GitHub

Entry point group: opm.pipeline Template: ovos_plugin_manager.templates.pipeline

Pipeline plugins implement intent-matching stages for ovos-core. Each stage is given an utterance and returns an IntentHandlerMatch (or None) indicating whether and how the utterance should be handled.


IntentHandlerMatch dataclass

from ovos_plugin_manager.templates.pipeline import IntentHandlerMatch
FieldTypeDescription
match_typestrName of the service/handler that matched (e.g. "padatious:intent").
match_dataOptional[dict]Extracted entities or intent-specific data.
skill_idOptional[str]ID of the skill that owns the handler.
utteranceOptional[str]Original utterance that triggered the match.
updated_sessionOptional[Session]Modified session state (if the plugin changes session).

PipelinePlugin base class

from ovos_plugin_manager.templates.pipeline import PipelinePlugin

Constructor

PipelinePlugin(
    bus: Optional[Union[MessageBusClient, FakeBus]] = None,
    config: Optional[dict] = None,
)

Abstract method (must implement)

match(utterances: List[str], lang: str, message: Message) -> Optional[IntentHandlerMatch]

Attempt to match utterances against this plugin's knowledge. Return an IntentHandlerMatch on success, None otherwise.


ConfidenceMatcherPipeline base class

from ovos_plugin_manager.templates.pipeline import ConfidenceMatcherPipeline

Extends PipelinePlugin. For plugins that score utterances with confidence values without directly triggering handlers. Used by stages like adapt, padatious, etc.


Configuration

Pipeline plugins are configured under ovos.conf:

{
  "intents": {
    "pipeline": [
      "converse",
      "padatious_high",
      "adapt",
      "common_qa",
      "fallback_high",
      "fallback_low"
    ]
  }
}

Each name in the list must correspond to a plugin registered under opm.pipeline.