Available plugins
June 20, 2026 · View on GitHub
This package ships five plugins, all backed by a shared OpenAI Chat Completions client
(ovos_openai_plugin.api.OpenAIChatCompletions).
ovos-chat-openai-plugin — Chat engine
- Entry point group:
opm.agents.chat - Class:
ovos_openai_plugin.chat.OpenAIChatEngine(ChatEngine)
A multi-turn conversational agent for ovos-persona. Implements:
continue_chat(messages, ...) -> AgentMessage— full responsestream_tokens(messages, ...)— raw token stream (not TTS-safe)stream_sentences(messages, ...)— complete sentences, buffered viasentence-stream(TTS-safe)get_response(utterance, ...)— convenience one-shot helper (from the base class)
System prompt handling is controlled by system_prompt and allow_system_prompts
(see configuration).
Tool / function calling
OpenAIChatEngine sets supports_tools = True. Pass ToolBox object(s) (or OpenAI
tool dicts) to continue_chat(..., tools=...); the engine exposes them to the model
and, when the model requests a tool, returns an assistant AgentMessage whose
tool_calls (a list of ToolCall) are populated. Feed the results back as
MessageRole.TOOL messages and call again to continue. The
ovos-native-toolcall-loop
engine drives this loop for you; this plugin just needs to be the brain.
ovos-summarizer-openai-plugin — Summarizer
- Entry point group:
opm.agents.summarizer - Class:
ovos_openai_plugin.summarizer.OpenAISummarizer(SummarizerEngine)
Summarizes a document via summarize(document, lang=None) -> str. The prompt is built from
prompt_template (must contain {content}).
ovos-translate-openai-plugin — Translator
- Entry point group:
opm.lang.translate - Class:
ovos_openai_plugin.translate.OpenAITextTranslator(LanguageTranslator)
translate(text, target=None, source=None) -> str. Language codes are expanded to human-readable
names (via langcodes) before being inserted into the prompt. If target is omitted, the configured
lang from OVOS configuration is used. If source is omitted, the model auto-detects it.
ovos-lang-detect-openai-plugin — Language detector
- Entry point group:
opm.lang.detect - Class:
ovos_openai_plugin.translate.OpenAITextLangDetector(LanguageDetector)
detect(text) -> str returns a standardized BCP-47 tag; detect_probs(text) -> Dict[str, float]
returns {lang: 1.0}.
ovos-dialog-transformer-openai-plugin — Dialog transformer
- Entry point group:
opm.transformer.dialog - Class:
ovos_openai_plugin.dialog_transformers.OpenAIDialogTransformer(DialogTransformer)
Rewrites dialog text just before TTS. transform(dialog, context) -> (text, context). The rewrite
prompt comes from context["prompt"] or the configured rewrite_prompt; if neither is set the dialog
is returned unchanged.
Demo persona
The opm.plugin.persona entry point Remote Llama exposes a ready-made persona
(ovos_openai_plugin.LLAMA_DEMO) pointed at a public OpenAI-compatible LLama server.