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.3a5.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.3a5.tar.gz.

File metadata

File hashes

Hashes for hivemind_persona_agent_plugin-0.0.3a5.tar.gz
Algorithm Hash digest
SHA256 921caeab724dc31de233b751a76a123e7123cd5358fa10cd33abebc1ab9aabe2
MD5 adfab857c405bf6a7af7a9299e3b9703
BLAKE2b-256 0f97968b8f4cabbb5bd58f402e5270e7c5c3fad50b53f6485d6d7434dcc6ee04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hivemind_persona_agent_plugin-0.0.3a5-py3-none-any.whl
Algorithm Hash digest
SHA256 36309e4d618a37203bda78fcb0652c1e393d4d805ccd61b112d37c718b8bd17f
MD5 b3726a0e6a50da7f1916cb70c4031adf
BLAKE2b-256 d20bb2a12938cdf364f75e1067a77970a7c3a6abf2146fd515e954fd7bcf2e8f

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