Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

ovos-hivemind-pipeline-plugin

When a local OVOS install can't handle an utterance, ask a smarter HiveMind hub.

This is an OVOS intent pipeline plugin (opm.pipeline entry point). It sits at a configurable position in the OVOS pipeline and forwards unmatched utterances to a remote HiveMind-core hub. The hub processes the utterance with its own skills/agent and speaks the answer through the local OVOS TTS or (in slave mode) directly via the shared bus.

Typical use case: a lightweight OVOS satellite (e.g. a Pi Zero) that escalates anything beyond its local skills to a powerful central hub.

Install

pip install ovos-hivemind-pipeline-plugin

Quickstart

1. Register a client on the HiveMind hub

On the machine running hivemind-core:

hivemind-core add-client
# note the Access Key and Password

2. Set the identity on the OVOS satellite

On the satellite (where OVOS and this plugin run):

hivemind-client set-identity \
  --key <access_key> \
  --password <password> \
  --host <hub_ip> --port 5678 --siteid satellite

Verify the connection:

hivemind-client test-identity
# should print: == Identity successfully connected to HiveMind!

3. Add the plugin to the OVOS pipeline

Edit ~/.config/mycroft/mycroft.conf:

{
  "intents": {
    "pipeline": [
      "ovos-padatious-pipeline-plugin-high",
      "ovos-adapt-pipeline-plugin",
      "ovos-padatious-pipeline-plugin-medium",
      "ovos-commonqa-pipeline-plugin",
      "ovos-hivemind-pipeline-plugin"
    ],
    "ovos-hivemind-pipeline-plugin": {
      "name": "Hive Mind",
      "confirmation": true,
      "slave_mode": false,
      "allow_selfsigned": false
    }
  }
}

Place "ovos-hivemind-pipeline-plugin" near the end of the pipeline so it only fires when local intent engines have already failed.

Configuration

All keys are under "ovos-hivemind-pipeline-plugin" in mycroft.conf.

Key Type Default Description
name string "Hive Mind" Name spoken in the confirmation dialog.
confirmation bool true Speak a confirmation before sending the utterance to HiveMind.
slave_mode bool false Share the local OVOS bus with the hub for passive monitoring and bidirectional message injection.
allow_selfsigned bool false Accept self-signed TLS certificates on the HiveMind connection.

How it works

When the OVOS pipeline reaches this plugin, match() always returns a match — it acts as a catch-all. The match queues a hivemind:ask event. ask_hivemind() optionally speaks a confirmation dialog, then calls hm.emit_mycroft(utterance) to forward the utterance to the hub.

The hub processes the utterance and, depending on slave_mode:

  • slave_mode disabled (default): the hub's speak messages are forwarded back via the HiveMind WebSocket and re-emitted on the local OVOS bus by on_speak.
  • slave_mode enabled: the hub has direct bus access and handles TTS itself.

Slave mode

In slave mode the hub receives all local bus messages for passive monitoring and can inject arbitrary messages into the local OVOS bus.

To send a message from the satellite to the hub (upstream):

bus.emit(Message("hive.send.upstream", {
    "msg_type": "bus",
    "payload": some_message.serialize()
}))

To push a message from the hub to the satellite (downstream):

bus.emit(Message("hive.send.downstream", {
    "msg_type": "bus",
    "payload": some_message.serialize()
}))

This also enables nested hives: a device can run both hivemind-core (as a hub for its own satellites) and this plugin (as a satellite to a larger hub).

Documentation

License

Apache 2.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ovos_hivemind_pipeline_plugin-0.1.0a4.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovos_hivemind_pipeline_plugin-0.1.0a4-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file ovos_hivemind_pipeline_plugin-0.1.0a4.tar.gz.

File metadata

File hashes

Hashes for ovos_hivemind_pipeline_plugin-0.1.0a4.tar.gz
Algorithm Hash digest
SHA256 593efc8479a7f8fc88a37e95d5308ca11a0c3778a62c26992315a8e5aa039d18
MD5 63b9d01a70781fb025bc274b8e462438
BLAKE2b-256 79d4932e2a5e47c47e762f74cd7ef002e46246da8fef6288e4b9268f13a24dee

See more details on using hashes here.

File details

Details for the file ovos_hivemind_pipeline_plugin-0.1.0a4-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_hivemind_pipeline_plugin-0.1.0a4-py3-none-any.whl
Algorithm Hash digest
SHA256 5f609d6d68fde560f56e66b7e9aa17bd49c7a100fd80800ebd66b9a1deaba566
MD5 1ffb7cd5e35294bcce9f32de7bb78738
BLAKE2b-256 54e7011c26cae2a2602ddf3a8d31c66a6aada8a18f8f45ed31b3229425d23137

See more details on using hashes here.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page