You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Turns the Inference example into a lightweight agent-builder playground that pairs with the corresponding Jukebox PR (livekit/agents-jukebox#TODO).
Editable system prompt. Adds a set_system_prompt RPC that rewrites agent.instructions live. Deduped against the current value so the per-keystroke fires from the frontend don't spam update_instructions.
"Open in Builder" CTA. New type: link control in the YAML with an href_template that opens Cloud Builder pre-populated with the current instructions (URL-encoded), llm, stt, tts, and modelMode=pipeline. project_id is the p_ placeholder so Cloud routes through login when needed and preserves the params on redirect.
Live transcript view. Adds a views[].source: transcript entry; the Jukebox frontend renders LiveKit TranscriptionReceived segments into the existing view-card slot — no agent-side push needed.
Defaults bumped.cartesia/sonic-2 → cartesia/sonic-3, openai/gpt-4o-mini → openai/gpt-4.1-mini, both in playground.yaml and the agent's DEFAULT_* constants. Seed INSTRUCTIONS aligned with the textarea's default so the first session matches what the user sees before any edit.
YAML schema also picks up doc comments for the new textarea / link control types and the transcript view source — the Jukebox PR has the corresponding parser + renderer changes.
Test plan
cd examples/inference && python agent.py dev — connect via Jukebox playground; verify prompt edits land (system prompt updated (N chars) in agent logs) and the agent's behaviour changes within a turn.
Pick a new STT / LLM / TTS — confirm the model swap still works after the prompt-editing changes.
Click "Open in Builder" — confirm a Cloud Builder URL opens in a new tab with instructions, llm, stt, tts, and modelMode=pipeline matching the current Playground state.
Default-only session (no edits) — verify the agent's initial prompt matches the textarea's seed.
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You have signed the CLA already but the status is still pending? Let us recheck it.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Turns the Inference example into a lightweight agent-builder playground that pairs with the corresponding Jukebox PR (livekit/agents-jukebox#TODO).
set_system_promptRPC that rewritesagent.instructionslive. Deduped against the current value so the per-keystroke fires from the frontend don't spamupdate_instructions.type: linkcontrol in the YAML with anhref_templatethat opens Cloud Builder pre-populated with the currentinstructions(URL-encoded),llm,stt,tts, andmodelMode=pipeline.project_idis thep_placeholder so Cloud routes through login when needed and preserves the params on redirect.views[].source: transcriptentry; the Jukebox frontend renders LiveKitTranscriptionReceivedsegments into the existing view-card slot — no agent-side push needed.cartesia/sonic-2→cartesia/sonic-3,openai/gpt-4o-mini→openai/gpt-4.1-mini, both inplayground.yamland the agent'sDEFAULT_*constants. SeedINSTRUCTIONSaligned with the textarea'sdefaultso the first session matches what the user sees before any edit.YAML schema also picks up doc comments for the new
textarea/linkcontrol types and thetranscriptview source — the Jukebox PR has the corresponding parser + renderer changes.Test plan
cd examples/inference && python agent.py dev— connect via Jukebox playground; verify prompt edits land (system prompt updated (N chars)in agent logs) and the agent's behaviour changes within a turn.instructions,llm,stt,tts, andmodelMode=pipelinematching the current Playground state.Made with Cursor