Skip to main content
Pre-release

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

OVOS Messagebus Chat Plugin

An OVOS ChatEngine agent plugin that proxies user turns through a connected OpenVoiceOS messagebus. Each continue_chat call sends the latest user utterance to the OVOS pipeline and collects the synthesized response.

The plugin reuses the SessionManager-owned Session for each session_id. This keeps OVOS-side state across multi-turn conversations: active skills, entity context, response-mode flags, and language. Skills that rely on MycroftSkill.get_response(), common_query disambiguation, or context-managed intents keep working across turns.

Installation

pip install ovos-messagebus-chat-plugin

Usage

Via plugin discovery

The plugin registers under opm.agents.chat with name ovos-messagebus. Any OVOS component that loads chat-agent plugins (e.g. ovos-persona) will pick it up automatically:

from ovos_plugin_manager.agents import load_chat_agent_plugin

agent_cls = load_chat_agent_plugin("ovos-messagebus")
agent = agent_cls(config={"autoconnect": True, "host": "127.0.0.1", "port": 8181})

Direct programmatic use

from ovos_bus_client import MessageBusClient
from ovos_messagebus_chat_plugin import OVOSMessagebusChatAgent
from ovos_plugin_manager.templates.agents import AgentMessage, MessageRole

bus = MessageBusClient()
bus.run_in_thread()
bus.connected_event.wait()

agent = OVOSMessagebusChatAgent(bus=bus, config={"timeout": 15})

reply = agent.continue_chat(
    [AgentMessage(role=MessageRole.USER, content="what time is it?")],
    session_id="kitchen",
)
print(reply.content)

# next turn: same session_id reuses the Session, so OVOS skills that need
# follow-up context (get_response, common_query, dialog flow) keep working
reply = agent.continue_chat(
    [
        AgentMessage(role=MessageRole.USER, content="what time is it?"),
        AgentMessage(role=MessageRole.ASSISTANT, content=reply.content),
        AgentMessage(role=MessageRole.USER, content="and tomorrow morning?"),
    ],
    session_id="kitchen",
)

Configuration

Key Type Default Notes
autoconnect bool False Open an internal MessageBusClient on init.
host str 127.0.0.1 OVOS messagebus host (only used with autoconnect).
port int 8181 OVOS messagebus port (only used with autoconnect).
timeout int 30 Per-utterance wait, refreshed on every speak to allow multi-speak.
source_name str messagebus_chat_agent Value set on outgoing context.source. Useful for OVOS routing rules.

Documentation

Full developer docs live in docs/:

Related projects

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.

Download files

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

Source Distribution

ovos_messagebus_chat_plugin-0.1.2a2.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

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

ovos_messagebus_chat_plugin-0.1.2a2-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file ovos_messagebus_chat_plugin-0.1.2a2.tar.gz.

File metadata

File hashes

Hashes for ovos_messagebus_chat_plugin-0.1.2a2.tar.gz
Algorithm Hash digest
SHA256 d4b3d17e147d8ba91453b2baf820f6c66c1b969a6c77f233741f36a39297db59
MD5 b788e080eac703de1c7ebd2d0290aa62
BLAKE2b-256 e2202e3d841e1e802a21e97563dda2d2432e24f3295ed1364202b98464f71779

See more details on using hashes here.

File details

Details for the file ovos_messagebus_chat_plugin-0.1.2a2-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_messagebus_chat_plugin-0.1.2a2-py3-none-any.whl
Algorithm Hash digest
SHA256 ec06c482b96c5af96ae6111b90e486358fd1da9fbfd4e46779f4418bfe39b886
MD5 e7792ce2147fee7434daaa2917fd89a2
BLAKE2b-256 28d3affddc62c923cedc1cd231c3be0dec8609acd7c4dd8f20850a5bd67c2493

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