Skip to main content
Pre-release

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

HiveMind OVOS Agent Plugin

This plugin connects HiveMind-core to an OpenVoiceOS message bus.

HiveMind clients connect to a hivemind-core node. This plugin forwards their Mycroft Message payloads to a local OVOS bus, and it routes OVOS responses back to the client that sent the original message.

Installation

pip install hivemind-ovos-agent-plugin

Or install it from source:

git clone https://github.com/JarbasHiveMind/hivemind-ovos-agent-plugin
cd hivemind-ovos-agent-plugin
pip install -e .

Usage

The plugin registers itself as a HiveMind agent protocol through the hivemind.agent.protocol entry point group, under the name hivemind-ovos-agent-plugin.

Add it to your hivemind-core configuration (~/.config/hivemind-core/server.json):

{
  "agent_protocol": {
    "module": "hivemind-ovos-agent-plugin",
    "hivemind-ovos-agent-plugin": {
      "host": "127.0.0.1",
      "port": 8181
    }
  }
}

hivemind-core discovers the plugin through its entry point and creates the OVOSAgentProtocol class with the config you supply. The plugin then connects to the OVOS message bus at the given host and port. The default host and port are 127.0.0.1:8181.

This configuration is also the default. If hivemind-core runs on the same host as OVOS, you do not need to change the config. hivemind-core ships with hivemind-ovos-agent-plugin pre-selected. It falls back to the websocket section of the global OVOS mycroft.conf for the bus address.

Direct programmatic use

from hivemind_ovos_agent_plugin import OVOSAgentProtocol

agent = OVOSAgentProtocol(config={"host": "127.0.0.1", "port": 8181})
# pass `agent` to your HiveMindListenerProtocol

How it works

The plugin owns two callbacks on the OVOS bus:

  • hive.send.downstream: OVOS components emit this message to push a HiveMessage to a connected HiveMind client. The plugin wraps the payload in a HiveMessage and sends it to the right peer, or fans it out for PROPAGATE and BROADCAST types.
  • message (catch-all): the plugin inspects every internal OVOS bus message. If its context["destination"] lists a connected HiveMind peer, the plugin forwards the message back to that peer, wrapped as a HiveMessageType.BUS message. This is where the plugin enforces client isolation: a client never sees responses meant for another client.

Upstream traffic (client to OVOS bus) is handled by hivemind-core itself. This plugin only handles the downstream half.

Policy plugin

This package also registers as a hivemind.policy provider under the name hivemind-ovos-agent-policy. hivemind-core runs the policy chain before it forwards any inbound client message. The built-in OVOSAgentPolicy reads the per-client skill_blacklist and intent_blacklist from the credential store, and it injects them into message.context["session"] as AddBlacklistedSkill and AddBlacklistedIntent mutations.

Five concrete Mutation subclasses are available for custom policy plugins:

Class Purpose
AddBlacklistedSkill Append to session["blacklisted_skills"]
AddBlacklistedIntent Append to session["blacklisted_intents"]
SetSessionField Set any key in message.context["session"]
SetContextField Set a nested path in message.context
RewriteUtterance Replace utterance text in recognizer_loop:utterance messages

You can import all these types directly from hivemind_ovos_agent_plugin. See docs/policy.md for full details.

Related projects

  • HiveMind-core: the server this plugin connects to.
  • OpenVoiceOS: the OVOS bus and skill ecosystem this plugin bridges to.

Documentation

Full developer documentation lives in docs/:

License

Apache 2.0. See LICENSE.md.

Credits

Developed by TigreGótico for OpenVoiceOS.

NGI0 Commons Fund

This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429.

Metadata

Release files for hivemind-ovos-agent-plugin 0.3.9a1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hivemind-ovos-agent-plugin 0.3.9a1
File Size Uploaded
hivemind_ovos_agent_plugin-0.3.9a1.tar.gz 30.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hivemind-ovos-agent-plugin 0.3.9a1
File Interpreter ABI Platform
hivemind_ovos_agent_plugin-0.3.9a1-py3-none-any.whl Python 3 none any Details

Total release size: 47.1 kB

Release files / hivemind_ovos_agent_plugin-0.3.9a1.tar.gz

Download URL hivemind_ovos_agent_plugin-0.3.9a1.tar.gz
Size 30.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b3deac74bfe3db8c2dd8ecc674eb9d9d1a590ffd2c8a004264754ac1ff30307e
BLAKE2b-256 checksum
How to use checksums
2fafd11a482ead0382fcfc612c79d6eb23c499a78e2194e3f269d387487294ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / hivemind_ovos_agent_plugin-0.3.9a1-py3-none-any.whl

Download URL hivemind_ovos_agent_plugin-0.3.9a1-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dde5beccd7396b492591a296595de5c6226283c9c9146d254f3d109dc0ef5017
BLAKE2b-256 checksum
How to use checksums
70ca33e9c09db566d2daf28a71d007c962c012c87ca07a4a2c1a4b515910b4ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
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