limited-pillow-7054
02/19/2026, 4:03 PMtall-airline-16756
02/19/2026, 4:03 PMtall-airline-16756
02/19/2026, 4:03 PMlivekit.toml).
1. Edit the code locally
• Extract the ZIP and open the project in your editor.
• Make whatever changes you need (for example agent.py, instructions, or adding custom tools/workflows). This lets you also add SDK-only features not available in the web UI.
1. Redeploy the updated agent with the LiveKit CLI
• From the agent project directory, run:
lk agent deploy --working-directory path/to/your/agent
This builds and deploys the updated agent to LiveKit Cloud.
1. (Optional) Delete the original dashboard-deployed agent
• After confirming the new deployment works, delete the old dashboard-created agent to avoid duplicate/conflicting agents.
If you’d like, tell me:
• Whether your agent is Python or Node.js (so I can call out file names or steps specific to that runtime), and
• The exact change you want to make (code, instructions, or adding a tool).
I can then give more specific edits or troubleshooting steps.
Sources: Agent Builder | LiveKit Documentation | Agent deployment overview | LiveKit Documentation | Examples | livekit/livekit_composite | DeepWikilimited-pillow-7054
02/19/2026, 4:04 PMtall-airline-16756
02/19/2026, 4:04 PMDockerfile, and livekit.toml).
• Make your changes locally (Python or Node.js files, instructions, tools, etc.).
• Redeploy with the LiveKit CLI:
lk agent deploy --working-directory path/to/your/agent
• Optionally delete the original dashboard-deployed agent after confirming the new deployment works to avoid duplicates.
If you want, tell me:
• Whether your agent is Python or Node.js (I can point to the main files like agent.py), and
• What kind of change you plan to make (logic, instructions, new tools).
I’ll give specific file names and deployment tips for your runtime.limited-pillow-7054
02/19/2026, 4:16 PMtall-airline-16756
02/19/2026, 4:16 PMlimited-pillow-7054
02/19/2026, 4:17 PMtall-airline-16756
02/19/2026, 4:17 PMlimited-pillow-7054
02/19/2026, 4:18 PMtall-airline-16756
02/19/2026, 4:19 PMgoogle.realtime.RealtimeModel). The plugin lets your agent call Gemini for low‑latency two‑way audio/video interactions and can be used directly as the agent’s LLM (no separate STT→LLM→TTS pipeline is required).
Key points and next steps you can follow:
• How it’s used in an agent
◦ Instantiate google.realtime.RealtimeModel and pass it to your AgentSession as the llm. Example (conceptual):
from livekit.plugins import google
session = AgentSession(
llm=google.realtime.RealtimeModel(
voice="Puck",
temperature=0.8,
instructions="You are a helpful assistant",
),
)
• The model supports voice settings, proactivity/affective dialogue, and can accept video input when you enable RoomOptions(video_input=True).
• Authentication & secrets
◦ For Gemini API set GOOGLE_API_KEY.
◦ For Vertex AI use GOOGLE_APPLICATION_CREDENTIALS (service account key file).
◦ When deploying to LiveKit Cloud, store these securely using LiveKit Cloud’s secrets store (file‑mounted secrets are supported for Vertex AI).
• Deployment flow
a. Add the Google plugin to your agent environment (for example: uv add "livekit-agents[google]" as part of your project setup).
b. Configure environment variables or mounted service account file.
c. Deploy the agent to LiveKit Cloud using the LiveKit CLI (lk agent create or lk agent deploy depending on your workflow). LiveKit Cloud will run the agent and route inference calls to Gemini.
• Useful capabilities
◦ Real‑time audio and video handling (vision-aware agents).
◦ Control over voice and modalities (e.g., use Gemini for reasoning while using a separate TTS if desired).
To give you concrete, runnable code and exact deployment steps, I need two quick details:
1. Which runtime are you using for the agent — Python or Node.js?
2. Are you planning to call Gemini Live via the Gemini API (API key) or via Vertex AI using service account credentials?
Tell me those and I’ll provide the specific code snippets (for your runtime), the exact env vars or secret setup for LiveKit Cloud, and a short deploy checklist.
Sources: Gemini Realtime Agent with Live Vision | LiveKit Documentation | Gemini Live API plugin | LiveKit Documentation | Google AI and LiveKit | LiveKit Documentation | Deploy and scale agents on LiveKit Cloudlimited-pillow-7054
02/19/2026, 4:20 PMtall-airline-16756
02/19/2026, 4:20 PMgoogle.realtime.RealtimeModel) that lets an agent call Gemini Live in real time and use it directly as the agent’s LLM for two‑way audio/video interactions.
• Support for passing voice and modality parameters, enabling video input, and using Gemini for reasoning + speech.
• Secure secret handling when you deploy agents to LiveKit Cloud (you provide API keys or service account files).
What you must provide/configure
• The actual Gemini/Vertex inference access (API key or Vertex service account). LiveKit does not provide the model hosting or the Gemini inference endpoint itself.
• Integration setup in your agent code and environment (install plugin, set env vars such as GOOGLE_API_KEY or GOOGLE_APPLICATION_CREDENTIALS, and deploy the agent).
If you want, I can:
• Show the exact code snippet for your runtime (Python or Node.js) that uses google.realtime.RealtimeModel.
• Walk you through storing the Gemini/Vertex credentials as LiveKit Cloud secrets and a short deploy checklist.
Which runtime are you using (Python or Node.js), and will you call Gemini via API key or via Vertex AI service account?limited-pillow-7054
02/19/2026, 4:26 PMtall-airline-16756
02/19/2026, 4:26 PMcreate_sip_participant) so an agent can dial a phone number once running.
• A dispatch mechanism to start agent jobs/rooms with metadata (so you can pass the phone number to the agent).
• Function tools in agents so your agent logic can take actions (like creating SIP participants) during a session.
What you must build
• The job scheduler / orchestrator that:
◦ Queries your data source (CRM, database, call list service) to get phone numbers and customer data.
◦ Creates dispatches (or otherwise triggers agent sessions) for each number, passing the number in the job metadata.
◦ Handles retries, rate limiting, concurrency, logging, and compliance rules.
• Any persistence and business logic (who to call, when, call outcomes, reporting).
• The in‑agent dialing workflow that reads metadata and uses the SIP API to place the call and run the conversation.
Typical automated workflow (high level)
1. Your application queries the phone list from your DB/CRM.
2. For each number, your app calls the LiveKit dispatch API (or CLI) to create a job and include the phone number in metadata.
3. The agent starts with that metadata, extracts the phone number, then calls create_sip_participant() to dial the number and handle the conversation.
4. Your app or the agent records call results (success/failure, transcript, tags) back to your system.
Concrete examples (conceptual)
• Dispatch command:
lk dispatch create \
--new-room \
--agent-name my-telephony-agent \
--metadata '{"phone_number":"+15105550123"}'
• In-agent dialing (Python snippet):
dial_info = json.loads(ctx.job.metadata)
phone_number = dial_info["phone_number"]
await ctx.api.sip.create_sip_participant(
api.CreateSIPParticipantRequest(
room_name=ctx.room.name,
sip_trunk_id='ST_xxxx',
sip_call_to=phone_number,
participant_identity=phone_number,
wait_until_answered=True,
)
)
Helpful resources
• Use the examples for outbound callers (GitHub) and the Agents telephony docs as templates when building your orchestrator and agent logic.
If you’d like, I can help with the next step — tell me which part you want help with:
• Building the dispatcher/orchestrator (language and hosting environment),
• An end‑to‑end example agent that dials a number and records results (Python or Node.js), or
• Best practices for concurrency, retries, and compliance when automating outbound calling. Sources: Agents telephony integration | LiveKit Documentation