HiveMind Pipeline Plugin
The HiveMind Pipeline Plugin lets an OpenVoiceOS device query a smarter HiveMind when an intent is uncertain. It integrates directly into the OVOS intent pipeline.
Install
Install this plugin in ovos-core:
pip install ovos-hivemind-pipeline-plugin
Configuration
Configure the plugin through the standard mycroft.conf.
Learn more about intent pipelines and configuration in the OVOS technical manual.
Example configuration:
{
"intents": {
"pipeline": [
"...",
"ovos-hivemind-pipeline-plugin",
"..."
],
"ovos-hivemind-pipeline-plugin": {
"name": "Hive Mind",
"confirmation": true,
"slave_mode": false,
"allow_selfsigned": false
}
}
}
| Option | Value | Description |
|---|---|---|
name |
Hive Mind |
Name of the HiveMind AI assistant in confirmation dialogs |
confirmation |
true |
Speaks a confirmation when a request is sent to HiveMind |
allow_selfsigned |
false |
Allow self-signed SSL certificates for the HiveMind connection |
slave_mode |
false |
When true, the device passively monitors HiveMind and can inject messages into the OVOS bus |
HiveMind setup
- Register the pipeline plugin on HiveMind Core:
hivemind-core add-client
Example output:
Node ID: 2
Friendly Name: HiveMind-Node-2
Access Key: 5a9e580a2773a262cbb23fe9759881ff
Password: 9b247ca66c7cd2b6388ad49ca504279d
Encryption Key: 4185240103de0770
WARNING: Encryption Key is deprecated
- Set identity on the OVOS device:
hivemind-client set-identity \
--key 5a9e580a2773a262cbb23fe9759881ff \
--password 9b247ca66c7cd2b6388ad49ca504279d \
--host 0.0.0.0 \
--port 5678 \
--siteid test
Verify identity:
cat ~/.config/hivemind/_identity.json
Test the connection:
hivemind-client test-identity
If this step fails, the OVOS device cannot connect to HiveMind.
Slave mode
In slave mode, the device can passively monitor HiveMind and emit serialized HiveMessages over the regular OVOS bus.
- From slave to master (the master might reject this): emit
"hive.send.upstream"withmessage.data,{"msg_type": "bus", "payload": message.serialize()}. - From master to slave: emit
"hive.send.downstream"withmessage.data,{"msg_type": "bus", "payload": message.serialize()}.
This is what enables nested hives. OpenVoiceOS can act as both a master (by running
hivemind-core) and a slave (by running this plugin).