Skip to main content
Pre-release

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

hivemind-persona-agent-plugin

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.

Key Type Required Description
persona string or dict yes Path 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

Related projects

License

Apache 2.0.

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hivemind_persona_agent_plugin-0.0.3a4.tar.gz (4.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file hivemind_persona_agent_plugin-0.0.3a4.tar.gz.

File metadata

File hashes

Hashes for hivemind_persona_agent_plugin-0.0.3a4.tar.gz
Algorithm Hash digest
SHA256 d9a4ac9afa564f435d11be259ec045963b2b8396a39be87c0397b9e2b5e7dc5f
MD5 c03fa002b55aa9d7ddd7050b062bf243
BLAKE2b-256 c9dc06d7aab60c496b2fd3ba4ae7dd3d40b089017f906c727dae61a8e97b349a

See more details on using hashes here.

File details

Details for the file hivemind_persona_agent_plugin-0.0.3a4-py3-none-any.whl.

File metadata

File hashes

Hashes for hivemind_persona_agent_plugin-0.0.3a4-py3-none-any.whl
Algorithm Hash digest
SHA256 26fd05c9818154c04855c2b1e1f147f62c34adb3de0378ac85c171f9d10e466a
MD5 c811c7ffaf16616af7ea2910612abb0c
BLAKE2b-256 6663b8488f26e2dc5d39368eb85e73654ee32fd3b0569efbbf29d3a337e788e5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page