hivemind-persona-agent-plugin

July 31, 2026 ยท View on GitHub

An ovos-persona agent protocol for HiveMind-core. The hub answers natural-language queries from an LLM or solver persona instead of a full OVOS skills stack.

Unlike the default hivemind-ovos-agent-plugin, this agent needs no OVOS bus and no running skills. It answers queries directly from the configured persona. It streams the model output sentence by sentence, so a satellite can start speaking before generation finishes.

Install

pip install hivemind-persona-agent-plugin

Or from source:

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

Quickstart

1. Create a persona file

ovos-persona personas are JSON files. Here is a minimal LLM-backed persona:

{
  "name": "MyAssistant",
  "solvers": [
    {
      "module": "ovos-solver-openai-plugin",
      "ovos-solver-openai-plugin": {
        "api_url": "http://localhost:8000/v1",
        "model": "local-model"
      }
    }
  ]
}

Save it to ~/.config/ovos_persona/persona.json, or any path. You reference the path in the config below.

2. Configure hivemind-core

Edit ~/.config/hivemind-core/server.json:

{
  "agent_protocol": {
    "module": "hivemind-persona-agent-plugin",
    "hivemind-persona-agent-plugin": {
      "persona": "~/.config/ovos_persona/persona.json"
    }
  }
}

The persona value can be either:

  • a path to a persona JSON file (string, ~ expands), or
  • an inline persona config dict.

3. Start hivemind-core

hivemind-core listen

Satellites that connect to this hub receive answers streamed from the persona.

Configuration

All keys live under "hivemind-persona-agent-plugin" in server.json.

KeyTypeRequiredDescription
personastring or dictyesPath to a persona JSON file, or an inline persona config.

How queries are answered

The QUERY handler in hivemind-core calls natural_language_query(utterance, lang) on the active agent. This plugin implements that method. It calls Persona.stream(messages, lang=lang) and yields each output chunk as the persona produces it. The final None sentinel signals end of query to hivemind-core, which sends a hive.query.complete control message back to the satellite.

See docs/query_flow.md for a detailed trace.

Documentation

License

Apache 2.0.