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.

  • 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.5.0a1

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.5.0a1
File Size Uploaded
hivemind_ovos_agent_plugin-0.5.0a1.tar.gz 36.8 kB Details

Built distribution (wheel)

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

Total release size: 54.8 kB

Release files / hivemind_ovos_agent_plugin-0.5.0a1.tar.gz

Download URL hivemind_ovos_agent_plugin-0.5.0a1.tar.gz
Size 36.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1d5857242c9f20b43d2bbf2126f6c250c6f521b2d500aba36ffc8e1397aff0f0
BLAKE2b-256 checksum
How to use checksums
70f53c09e3ef146b96adc38133a423c0eb85f717ffed059db6a9cf00a1fd51f1
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.5.0a1-py3-none-any.whl

Download URL hivemind_ovos_agent_plugin-0.5.0a1-py3-none-any.whl
Size 18.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bc5cc8e516003184e268451e4517c709cc2a55f513196a8f025eb4063c2a6213
BLAKE2b-256 checksum
How to use checksums
a66dda9644aee8944f6c32444144fa0a162eb92ab56b8c33095e45a48358817b
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