Files
pipecat/changelog/xxxx.added.md
Mark Backman f1f5a986e8 Add UIWorker
UIWorker is an LLMContextWorker that observes and drives a client GUI over the
RTVI UI channel: it stores accessibility snapshots, auto-injects <ui_state> at
the start of each respond job, dispatches client events to @on_ui_event
handlers, sends UI commands back to the client, and surfaces fan-out work as
cancellable task cards via user_job_group(). The optional ReplyToolMixin exposes
a bundled reply tool.

The prompt_guide parameter auto-appends the UI wire-format guide to the LLM's
system instruction (default UI_STATE_PROMPT_GUIDE; override with a string or
disable with None), so the LLM can parse the injected <ui_state> / <ui_event>
messages without the app concatenating the guide by hand.
2026-05-21 23:20:40 -04:00

1.2 KiB

  • Added pipecat.workers.ui.UIWorker, an LLMContextWorker that observes and drives a client GUI over the RTVI UI channel: it stores live accessibility snapshots, auto-injects <ui_state> at the start of each respond job, dispatches client events to @on_ui_event handlers, and sends UI commands (scroll_to, highlight, select_text, click, set_input_value) back to the client. The optional ReplyToolMixin exposes a bundled reply tool, and user_job_group(...) surfaces fan-out work to the client as cancellable task cards. A native RTVI⇄bus UI bridge is built into PipelineWorker (active whenever RTVI is enabled), so no decorator or manual wiring is needed: inbound UI messages are broadcast on the bus as BusUIEventMessage, and outbound BusUICommandMessage / BusUITask* carriers are translated into RTVI frames for the client.

  • UIWorker auto-injects the UI wire-format guide (UI_STATE_PROMPT_GUIDE) into its LLM's system instruction by default, via a prompt_guide parameter — pass your own string to override the guide, or None to disable. Apps no longer need to concatenate UI_STATE_PROMPT_GUIDE into the LLM's system_instruction by hand.