hivemind pipeline plugin for OVOS
Project description
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
speakmessages are forwarded back via the HiveMind WebSocket and re-emitted on the local OVOS bus byon_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
docs/pipeline_integration.md— how the plugin integrates with the OVOS pipeline.docs/configuration.md— full configuration reference.docs/slave_mode.md— slave mode and nested hives.
License
Apache 2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ovos_hivemind_pipeline_plugin-0.0.4a2.tar.gz.
File metadata
- Download URL: ovos_hivemind_pipeline_plugin-0.0.4a2.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f4fad587329d7d2aab76d452ca40bf7b0d5c6c1e2d97da0edf8d9eff7fe0319
|
|
| MD5 |
a7e2973782c18bc0abbb7c1f6088b0fc
|
|
| BLAKE2b-256 |
8348cf3f40024491988f9c5c487399be66ea6dc8757e86fc25b0c36ca661f216
|
File details
Details for the file ovos_hivemind_pipeline_plugin-0.0.4a2-py3-none-any.whl.
File metadata
- Download URL: ovos_hivemind_pipeline_plugin-0.0.4a2-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddd9f067ae7651fab631bce22316b877a6a9c70c77be27e691fe9c17baf4d53f
|
|
| MD5 |
7d228353cc09005759755343b107c7be
|
|
| BLAKE2b-256 |
46ca73f828d276236e3b89153103c9b2a5fe76638365f6007d2dca99b3166973
|