LiveKit Agents
Trinity-2 options: Trinity2Config
The plugin’s SimliConfig sends Simli only the face ID, with a legacy style suffix, and the time limits. Its public create_json() method builds the body of the POST /compose/token request, so a subclass can override it: this one sends the plain face ID and adds the Trinity-2 fields. It’s from our LiveKit Agents starter:
simli.SimliConfig:
SimliConfig takes the Trinity-2 options and sends the plain face ID.
Pipecat
Trinity-2 options: the Simli SDK’s config
Pipecat’sSimliVideoService has no Trinity-2 options yet. It runs the Simli Python SDK, which sends every field of its SimliConfig to Simli when the session starts, so the starter adds the framing fields there. It’s from our Pipecat starter:
_simli_client is a private attribute of SimliVideoService, so this can break when Pipecat changes it. A fix that adds these options to Pipecat’s Simli service is pending upstream.
Remove it when that fix is in the Pipecat release you use and SimliVideoService takes the Trinity-2 options itself.
No video until the bot first speaks
SimliVideoService doesn’t pass on any video until the bot’s first audio (pipecat#4832). The starter has the bot greet the user as soon as they connect, so the avatar appears with the greeting.
Remove it when the fix, pipecat#5033, is in the Pipecat release you use. You can then let the user speak first if you like.
Use OpenAI Realtime, not GPT-Live
Pipecat’sSimliVideoService ignores the audio frames Pipecat’s GPT-Live service produces, so with GPT-Live the avatar never moves. The starter uses OpenAIRealtimeLLMService instead. The same pending upstream fix to Pipecat’s Simli service covers this.
Remove it when that fix is in the Pipecat release you use. GPT-Live then works with Simli like any other voice.