← all repositories
MycroftAI/adapt

Parsing "play Radiohead" without a neural net

A lightweight, rule-based intent parser for voice assistants that trades ML complexity for explicit control.

721 stars Python AgentsOther AI
adapt
Velocity · 7d
+0.2
★ / day
Trend
steady
star history

What it does

Adapt turns spoken or typed natural language into structured intents using hand-defined entities and rules. You register vocabulary (“play” is a Listen Command, “Radiohead” is an Artist) and build intents from required or optional pieces. It’s the parser behind the Mycroft open-source voice assistant.

The interesting bit

The framework is deliberately non-neural. You define what matters — no training data, no GPU, no stochastic surprises. The Pandora example in the README shows dynamic vocabulary populated from an API at runtime, which is where this gets useful: static commands plus live data.

Key highlights

  • Rule-based matching with require() and optionally() constraints
  • Runtime vocabulary registration (good for user-specific data like playlists or station names)
  • Debug serialization via adapt.tools.debug for reproducible issue reports
  • Apache 2.0 licensed, though the project requires a CLA for contributions
  • Production-ready badge, but Travis CI and Coveralls links suggest older tooling

Caveats

  • README examples use Python 2-era virtualenv syntax and Travis CI (deprecated), so setup may need adjustment
  • No performance benchmarks or latency claims in the documentation
  • Requires manual vocabulary curation; scaling to broad domains means more elbow grease

Verdict

Good fit if you’re building a voice interface with a constrained, known vocabulary and want debuggability over magic. Skip it if you need open-domain understanding or expect users to say things you haven’t explicitly planned for.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.