-
Notifications
You must be signed in to change notification settings - Fork 117
Expand file tree
/
Copy pathindex.yaml
More file actions
1253 lines (1253 loc) · 39.3 KB
/
index.yaml
File metadata and controls
1253 lines (1253 loc) · 39.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
version: '1.0'
description: Index of all LiveKit Agent examples with metadata
total_examples: 77
examples:
- file_path: complex-agents/avatars/hedra/dynamically_created_avatar/agent.py
title: Dynamically Created Avatar
category: avatars
tags:
- avatar
- openai
- deepgram
difficulty: intermediate
description: Shows how to create an avatar dynamically in an agent.
demonstrates:
- Making parallel calls to an LLM while speaking to the voice agent
- Creating an avatar dynamically in an agent
- Creating a new hedra avatar session using a custom image
- A function tool that uses a docstring to describe the tool for the LLM to use
- file_path: complex-agents/avatars/hedra/education_avatar/agent.py
title: Education Avatar
category: avatars
tags:
- avatar
- openai
- deepgram
- hedra
difficulty: advanced
description: Shows how to create an avatar that can help a user learn about the Fall of the Roman Empire using flash cards
and quizzes.
demonstrates:
- Creating a new hedra avatar session using a custom image
- Using RPC to send messages to the client for flash cards and quizzes using `perform_rpc`
- Using `register_rpc_method` to register the RPC methods so that the agent can receive messages from the client
- Using UserData to store state for the cards and the quizzes
- Using custom data classes to represent the flash cards and quizzes
- file_path: complex-agents/avatars/hedra/pipeline_avatar/agent.py
title: Hedra Avatar with Pipeline
category: avatars
tags:
- hedra
- avatar
- static_image
- pipeline
- inworld_tts
- multilingual
difficulty: intermediate
description: Visual avatar using Hedra with static image, pipeline architecture, and Inworld TTS
demonstrates:
- Hedra avatar session with static image loading
- Pipeline architecture with separate STT/LLM/TTS components
- Inworld TTS voice integration
- Multilingual turn detection model
- Noise cancellation with BVC
- file_path: complex-agents/avatars/hedra/realtime_avatar/agent.py
title: Hedra Avatar with Realtime
category: avatars
tags:
- hedra
- avatar
- static_image
- openai_realtime
difficulty: intermediate
description: Visual avatar using Hedra with OpenAI Realtime model integration
demonstrates:
- Hedra avatar session with dynamic image selection
- OpenAI Realtime model for low-latency conversation
- Minimal agent configuration with realtime model
- Avatar participant identity management
- file_path: complex-agents/avatars/tavus/tavus.py
title: Tavus Avatar
category: avatars
tags:
- avatar
- openai
- deepgram
- tavus
difficulty: intermediate
description: Shows how to create a tavus avatar that can help a user learn about the Fall of the Roman Empire using flash
cards and quizzes.
demonstrates:
- Creating a new tavus avatar session
- Using RPC to send messages to the client for flash cards and quizzes using `perform_rpc`
- Using `register_rpc_method` to register the RPC methods so that the agent can receive messages from the client
- Using UserData to store state for the cards and the quizzes
- Using custom data classes to represent the flash cards and quizzes
- file_path: change_agent_instructions/page.mdoc
title: Change Agent Instructions
category: basics
tags:
- instructions
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to change the instructions of an agent at runtime.
demonstrates:
- Changing agent instructions after the agent has started using update_instructions()
- Conditional logic based on participant attributes
- file_path: context_variables/page.mdoc
title: Context Variables
category: basics
tags:
- context
- variables
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to give an agent context about the user using simple variables.
demonstrates:
- Using context variables from a simple dictionary
- Formatting instructions with user-specific data
- file_path: label_messages/page.mdoc
title: Conversation Event Monitoring Agent
category: basics
tags:
- events
- conversation-monitoring
- logging
- deepgram
- openai
difficulty: beginner
description: Shows how to monitor and log conversation events as they occur, useful for debugging and understanding agent-user
interactions.
demonstrates:
- Conversation event handling and logging
- file_path: echo_transcriber_agent/page.mdoc
title: Echo Transcriber Agent
category: basics
tags:
- echo
- transcriber
- assemblyai
- silero
difficulty: beginner
description: Shows how to create an agent that can transcribe audio and echo it back.
demonstrates:
- Transcribing audio
- Echoing audio back that's stored in a buffer
- Custom STT node processing
- Custom VAD stream handling
- file_path: exit_message/page.mdoc
title: Exit Message
category: basics
tags:
- exit
- message
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to use the on_exit method to take an action when the agent exits.
demonstrates:
- Using the on_exit method to take an action when the agent exits
- Using function tools to end sessions gracefully
- file_path: say_in_voice/page.mdoc
title: Function Tool Voice Switching Agent
category: basics
tags:
- tts
- voice-switching
- function-tools
- inworld
- assemblyai
- openai
difficulty: beginner
description: Demonstrates how to create an agent that can dynamically switch between different voices during a conversation
using function tools.
demonstrates:
- Dynamic TTS voice switching
- Function tool integration
- Multiple TTS provider support (Inworld)
- file_path: listen_and_respond/page.mdoc
title: Listen and Respond
category: basics
tags:
- basics
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to create an agent that can listen to the user and respond.
demonstrates:
- This is the most basic agent that can listen to the user and respond. This is a good starting point for any agent.
- file_path: playing_audio/page.mdoc
title: Playing Audio
category: basics
tags:
- audio
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to play audio from a file in an agent.
demonstrates:
- Playing audio from a file
- file_path: repeater/page.mdoc
title: Repeater
category: basics
tags:
- repeater
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to create an agent that can repeat what the user says.
demonstrates:
- Using the `on_user_input_transcribed` event to listen to the user's input
- Using the `say` method to respond to the user with the same input
- file_path: tool_calling/page.mdoc
title: Tool Calling
category: basics
tags:
- tool-calling
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to use tool calling in an agent.
demonstrates:
- Using the most basic form of tool calling in an agent to print to the console
- file_path: uninterruptable/page.mdoc
title: Uninterruptable Agent
category: basics
tags:
- interruptions
- allow_interruptions
- agent_configuration
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Agent configured to complete responses without user interruptions
demonstrates:
- Setting allow_interruptions=False in agent configuration
- Testing interruption handling behavior
- Agent-initiated conversation with on_enter
- file_path: complex-agents/role-playing/agents/base_agent.py
title: Base Game Agent
category: complex-agents
tags:
- rpg
- game-state
- agent-switching
- context-preservation
- rpc-communication
difficulty: advanced
description: Base class for RPG game agents with context preservation and state management
demonstrates:
- Agent inheritance patterns for game systems
- Chat context preservation across agent switches
- Game state integration and management
- RPC communication for client updates
- Agent lifecycle management with session data
- Context truncation and memory management
- file_path: complex-agents/role-playing/agents/combat_agent.py
title: Combat Agent
category: complex-agents
tags:
- rpg
- combat-system
- turn-based-combat
- npc-ai
- function-tools
difficulty: advanced
description: Specialized agent for handling turn-based combat encounters in RPG games
demonstrates:
- Turn-based combat management
- Combat action queueing and processing
- NPC AI for automated combat turns
- Real-time combat state updates via RPC
- Experience and loot distribution
- Dynamic combat flow with player/NPC interactions
- Combat action validation and execution
- file_path: complex-agents/role-playing/agent.py
title: D&D Role-Playing Game
category: complex-agents
tags:
- rpg
- game_state
- rpc_methods
- item_generation
- combat_system
- npc_interaction
difficulty: advanced
description: Dungeons & Dragons role-playing game with narrator and combat agents
demonstrates:
- Complex game state management
- Multiple RPC methods for game queries
- Dynamic NPC and item generation
- Combat system with initiative tracking
- Character creation and stats management
- Inventory and equipment system
- Voice acting for different NPCs
- file_path: complex-agents/doheny-surf-desk/agent.py
title: Doheny Surf Desk Booking Agent
category: complex-agents
tags:
- multi_agent
- tasks
- task_groups
- observer_pattern
- guardrails
- llm_evaluation
- context_injection
- phone_receptionist
- booking_system
- telephony
difficulty: advanced
description: Phone receptionist agent for surf school bookings with background observer and task groups - great example
for building phone-based booking systems
requires: livekit-agents>=1.3.0
demonstrates:
- Complete phone receptionist workflow for appointment booking (you need to connect your calendar) and payment processing
(demo, not real payment processing)
- Background observer agent that monitors conversation transcripts in real-time
- LLM-based evaluation every 3 user turns to detect safety issues (minors, injuries, weather concerns, skill mismatches,
VIP customers)
- Context injection pattern - observer injects system messages into active agent's chat context as guardrails
- Task groups for sequential task execution with structured return values (profile collection, payment processing)
- Multi-agent workflow with 5 specialized agents (IntakeAgent, SchedulerAgent, GearAgent, BillingAgent, FrontDeskAgent)
- Observer can improve conversation quality by monitoring outputs in background
- file_path: complex-agents/exa-deep-researcher/agent.py
title: EXA Deep Researcher
category: complex-agents
tags:
- exa
- research
- voice_controlled
- background_jobs
- rpc_streaming
difficulty: advanced
description: Voice-controlled deep research agent using EXA for web intelligence
demonstrates:
- Voice-only control
- Single background research job with state management
- EXA API integration for search and content fetching
- RPC streaming to UI for status, notes, and reports
- Token-aware compression and concurrency control
- Cited final reports saved to disk
- file_path: complex-agents/role-playing/core/game_state.py
title: Game State Management
category: complex-agents
tags:
- rpg
- state-management
- dataclass
- session-data
- type-safety
difficulty: intermediate
description: Centralized game state management for RPG sessions with type-safe data structures
demonstrates:
- Dataclass-based state management
- Session data persistence across agent switches
- Type-safe context handling with generics
- Game progression tracking and history
- Multi-agent state coordination
- Combat state integration
- file_path: complex-agents/ivr-agent/agent.py
title: IVR Phone System Navigator
category: complex-agents
tags:
- ivr
- dtmf
- telephony
- sip
- participant_attributes
- cooldown
difficulty: advanced
description: Agent that navigates phone IVR systems using DTMF codes
demonstrates:
- DTMF code transmission for phone navigation
- SIP participant detection and handling
- Task extraction from participant attributes
- Cooldown mechanism for DTMF presses
- Dynamic instruction updates based on task
- Function tool for sending DTMF codes
- file_path: complex-agents/role-playing/generators/item_generator.py
title: Item Generator
category: complex-agents
tags:
- rpg
- procedural-generation
- llm-generation
- yaml-configuration
- item-creation
difficulty: advanced
description: AI-powered procedural item generation system for RPG games
demonstrates:
- LLM-driven content generation with structured prompts
- YAML-based rule configuration for generation
- Context-aware item creation based on NPC and location
- Automated mechanical property assignment
- Fallback systems for generation failures
- JSON parsing and validation for generated content
- file_path: complex-agents/nova-sonic/form_agent.py
title: Job Application Form Agent
category: complex-agents
tags:
- aws_realtime
- form_filling
- rpc_frontend
- interview
- structured_data
difficulty: advanced
description: Interactive interview agent for job applications with AWS Realtime
demonstrates:
- AWS Realtime model integration
- Structured form data collection
- RPC communication with frontend for live updates
- Multi-section interview process
- Field validation and capitalization
- Application status tracking
- Frontend form highlighting and updates
- file_path: complex-agents/medical_office_triage/triage.py
title: Medical Office Triage System
category: complex-agents
tags:
- multi_agent
- agent_transfer
- medical
- context_preservation
- chat_history
difficulty: advanced
description: Multi-agent medical triage system with specialized departments
demonstrates:
- Multiple specialized agents (triage, support, billing)
- Agent-to-agent transfer with context preservation
- Chat history truncation and management
- Shared userdata across agent transfers
- Room attribute updates for agent tracking
- YAML prompt loading for agent instructions
- file_path: complex-agents/role-playing/generators/npc_generator.py
title: NPC Generator
category: complex-agents
tags:
- rpg
- procedural-generation
- character-creation
- personality-generation
- dialogue-system
difficulty: advanced
description: AI-powered NPC generation system with personality, backstory, and dynamic dialogue
demonstrates:
- Dynamic NPC creation with context-aware traits
- Parallel content generation for efficiency
- YAML rule-based character archetypes
- Personality and backstory generation
- Dynamic dialogue creation and management
- Integration with item generation systems
- file_path: complex-agents/role-playing/agents/narrator_agent.py
title: Narrator Agent
category: complex-agents
tags:
- rpg
- storytelling
- npc-interaction
- voice-acting
- exploration
difficulty: advanced
description: Main storytelling agent for RPG games with voice acting and world interaction
demonstrates:
- Dynamic storytelling and narrative flow
- Multi-voice character portrayal with TTS switching
- NPC interaction and dialogue management
- World exploration and location transitions
- Character creation and progression
- Trading and inventory management
- Skill check resolution and dice rolling
- file_path: complex-agents/note-taking-assistant/agent.py
title: Note Taking Assistant
category: complex-agents
tags:
- complex-agents
- cerebras
- deepgram
difficulty: intermediate
description: Shows how to use the Note Taking Assistant.
demonstrates:
- Using the Note Taking Assistant.
- file_path: complex-agents/nutrition-assistant/agent.py
title: Nutrition Tracker Assistant
category: complex-agents
tags:
- sqlite_database
- nutrition
- food_tracking
- rpc_updates
- thread_pool
difficulty: advanced
description: Nutrition tracking assistant with SQLite database and real-time updates
demonstrates:
- SQLite database for persistent food tracking
- Thread pool executor for non-blocking database operations
- Nutritional data calculation and aggregation
- RPC updates to frontend for live nutrition display
- Daily summaries and food consumption history
- Fixed participant identity for testing
- Initial data sync on connection
- file_path: complex-agents/personal_shopper/personal_shopper.py
title: Personal Shopper Multi-Agent
category: complex-agents
tags:
- customer_database
- multi_agent_transfer
- order_management
- customer_identification
difficulty: advanced
description: E-commerce personal shopper with triage, sales, and returns departments
demonstrates:
- Customer identification and database management
- Three specialized agents with different responsibilities
- Order creation and management with pricing
- Order history retrieval for returns
- Context-aware agent transfers with personalization
- Customer database with order tracking
- Persistent customer data across sessions
- file_path: complex-agents/shopify-voice-shopper/shopify.py
title: Shopify Voice Shopping Agent
category: complex-agents
tags:
- mcp_server
- shopify
- dynamic_agent_switching
- rpc_navigation
- fast_llm_response
difficulty: advanced
description: Voice shopping assistant for Shopify stores with MCP server integration
demonstrates:
- MCP server integration for Shopify operations
- Dynamic shop switching with agent updates
- RPC navigation to frontend browser
- Fast LLM for quick acknowledgments
- Voice-optimized response formatting
- Factory pattern for agent creation
- Shop URL handling and validation
- file_path: complex-agents/teleprompter/cartesia-ink.py
title: Teleprompter Transcription Agent
category: complex-agents
tags:
- rpc_transcript
- cartesia_stt
- user_input_transcribed
- frontend_communication
difficulty: intermediate
description: Real-time teleprompter that sends transcriptions to frontend via RPC
demonstrates:
- Cartesia STT for transcription
- RPC method registration for status checks
- Event handler for final transcriptions
- Async RPC calls to send transcripts
- Frontend communication pattern
- Real-time transcript streaming
- file_path: complex-agents/turn-taking/agent.py
title: Turn-Taking Detection Agent
category: complex-agents
tags:
- eou_probability
- turn_detection
- gladia_stt
- multilingual
- rpc_eou_updates
difficulty: advanced
description: Agent that exposes end-of-utterance probability for turn-taking research
demonstrates:
- Custom turn detector wrapper exposing EOU probability
- Real-time EOU probability RPC updates to frontend
- Multilingual STT with Gladia
- Percentage formatting for tiny probabilities
- Session userdata for RPC communication
- STT event processing for transcript logging
- file_path: complex-agents/vision/agent.py
title: Vision-Enabled Agent
category: complex-agents
tags:
- video_stream
- grok_vision
- x_ai
- frame_capture
- image_content
difficulty: intermediate
description: Agent with camera vision capabilities using Grok-2 Vision model
demonstrates:
- Video stream processing from remote participants
- Frame buffering from video tracks
- X.AI Grok-2 Vision model integration
- Dynamic video track subscription
- Image content injection into chat context
- Track publication event handling
- file_path: recording_agent/page.mdoc
title: Recording Agent
category: egress
tags:
- recording
- assemblyai
- openai
- cartesia
difficulty: intermediate
description: Shows how to create an agent that can record the input to a room and save it to a file.
demonstrates:
- Using egress to record the input to a room
- file_path: basic_event/page.mdoc
title: Basic Event
category: events
tags:
- events
- openai
- assemblyai
- cartesia
difficulty: beginner
description: Shows how to use events in an agent to trigger actions.
demonstrates:
- Using events in an agent to trigger actions
- Using on() to register an event listener
- Using off() to unregister an event listener
- Using once() to register an event listener that will only be triggered once
- file_path: event_emitters/page.mdoc
title: Event Emitters
category: events
tags:
- events
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to use event emitters in an agent to trigger actions.
demonstrates:
- Using event emitters in an agent to trigger custom actions like welcome and farewell messages
- Custom event handling with EventEmitter
- file_path: update_tools/page.mdoc
title: Dynamic Tool Updates
category: function-calling
tags:
- dynamic-tools
- tool-updates
- runtime-modification
- function-composition
- assemblyai
- openai
- cartesia
difficulty: intermediate
description: Demonstrates dynamically adding function tools to agents at runtime
demonstrates:
- Dynamic function tool creation and addition
- Runtime agent tool modification with update_tools
- External function wrapping with function_tool decorator
- Tool composition and agent enhancement
- Combining static and dynamic function tools
- file_path: pi_zero_transcriber/page.mdoc
title: Pi Zero Transcriber
category: hardware
tags:
- hardware
- deepgram
difficulty: beginner
description: Shows how to create a simple transcriber that uses the LiveKit SDK to transcribe audio from the microphone.
demonstrates:
- Using the LiveKit SDK to transcribe audio from the microphone.
- Displaying the transcribed text on a Pirate Audio display on a Raspberry Pi Zero 2 W.
- file_path: home_assistant/page.mdoc
title: Home Automation
category: home-automation
tags:
- home-automation
- openai
- assemblyai
difficulty: intermediate
description: Shows how to create an agent that can control home automation devices.
demonstrates:
- Using function tools to control home automation devices.
- Using a wake word to trigger the agent.
- file_path: stdio_mcp_client/page.mdoc
title: MCP Agent
category: mcp
tags:
- mcp
- openai
- assemblyai
- cartesia
difficulty: beginner
description: Shows how to use a LiveKit Agent as an MCP client.
demonstrates:
- Connecting to a local MCP server as a client.
- Connecting to a remote MCP server as a client.
- Using a function tool to retrieve data from the MCP server.
- file_path: http_mcp_client/page.mdoc
title: MCP Agent
category: mcp
tags:
- mcp
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to use a LiveKit Agent as an MCP client.
demonstrates:
- Connecting to a remote MCP server as a client
- Using MCP tools with voice-based interaction
- file_path: metrics_llm/page.mdoc
title: LLM Metrics
category: metrics
tags:
- metrics
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to use the LLM metrics to log metrics to the console for all of the different LLM models.
demonstrates:
- Using the LLM metrics to log metrics to the console
- Inspecting fields like type, label, request ID, timestamps, duration, time to first token, cancellation, token counts,
and throughput
- file_path: langfuse_tracing/page.mdoc
title: Langfuse Tracing
category: metrics
tags:
- metrics
- openai
- deepgram
difficulty: intermediate
description: Shows how to use the langfuse tracer to trace the agent session.
demonstrates:
- Using the langfuse tracer to trace the agent session.
- Using the metrics_collected event to log metrics to langfuse.
- file_path: metrics_stt/page.mdoc
title: STT Metrics
category: metrics
tags:
- metrics
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to use the STT metrics to log metrics to the console.
demonstrates:
- Using the STT metrics to log metrics to the console.
- This includes:
- Type
- Label
- Request ID
- Timestamp
- Duration
- Speech ID
- Error
- file_path: metrics_tts/page.mdoc
title: TTS Metrics
category: metrics
tags:
- metrics
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to use the TTS metrics to log metrics to the console.
demonstrates:
- Using the TTS metrics to log metrics to the console.
- This includes:
- TTFB
- Duration
- Audio Duration
- Cancelled
- Characters Count
- Streamed
- Speech ID
- Error
- file_path: metrics_vad/page.mdoc
title: VAD Metrics
category: metrics
tags:
- metrics
- assemblyai
- openai
- cartesia
difficulty: beginner
description: Shows how to use the VAD metrics to log metrics to the console.
demonstrates:
- Using the VAD metrics to log metrics to the console.
- This includes:
- Idle Time
- Inference Duration Total
- Inference Count
- Speech ID
- Error
- file_path: agent_transfer/page.mdoc
title: Agent Transfer
category: multi-agent
tags:
- multi-agent
- assemblyai
- openai
- cartesia
difficulty: intermediate
description: Shows how to switch between agents mid-call using function tools.
demonstrates:
- Agent transfer using update_agent()
- Function tools for agent switching
- Lightweight agent design with instructions and tools only
- Shared AgentSession across agent swaps
style: two-column
- file_path: interrupt_user/page.mdoc
title: Interrupt User
category: pipeline-llm
tags:
- pipeline-llm
- openai
- deepgram
difficulty: intermediate
description: Shows how to interrupt the user if they've spoken too much.
demonstrates:
- Using the `session.say` method to interrupt the user.
- Using the `allow_interruptions` parameter to prevent the user from interrupting the agent.
- Once the agent has spoken, it will allow the user to interrupt again.
- file_path: replacing_llm_output/page.mdoc
title: LLM Output Replacement
category: pipeline-llm
tags:
- deepseek
- groq
- deepgram
- openai
difficulty: intermediate
description: Replaces Deepseek thinking tags with custom messages for TTS
demonstrates:
- Groq integration with Deepseek model
- Real-time stream processing
- Text replacement in LLM output
- Custom llm_node for output manipulation
- Handling model-specific output formats
- file_path: llm_powered_content_filter/page.mdoc
title: LLM-Powered Content Filter
category: pipeline-llm
tags:
- content_moderation
- assemblyai
- openai
- cartesia
difficulty: advanced
description: Content filter using a separate LLM for real-time moderation decisions
demonstrates:
- Dual LLM setup (main + moderator)
- Sentence-level content buffering
- Stream processing with moderation checks
- Custom llm_node override for filtering
- Handling different chunk formats
- Real-time content evaluation
- file_path: large_context/page.mdoc
title: Large Context Window LLM
category: pipeline-llm
tags:
- gemini_2_flash
- large_context
- book_analysis
- war_and_peace
difficulty: intermediate
description: Agent using Gemini 2.0 Flash to analyze War and Peace with large context window
demonstrates:
- Loading large text files into LLM context
- Google Gemini 2.0 Flash model for large contexts
- Book analysis and discussion capabilities
- Direct text quotation from context
- Custom TTS instructions for literary tone
- file_path: simple_content_filter/page.mdoc
title: Simple Content Filter
category: pipeline-llm
tags:
- pipeline-llm
- openai
- deepgram
difficulty: beginner
description: Basic keyword-based content filter with inline replacement
demonstrates:
- Simple keyword filtering approach
- Inline content replacement
- Custom llm_node override
- Static offensive terms list
- Stream processing with substitution
- file_path: transcription_node/page.mdoc
title: Transcription Node Modifier
category: pipeline-llm
tags:
- transcription_modification
- word_replacement
- emoji_injection
- assemblyai
- openai
- cartesia
difficulty: intermediate
description: Modifies transcriptions by replacing words with custom versions
demonstrates:
- Custom transcription_node override
- Word replacement in transcriptions
- Emoji injection in text
- Async stream processing for text
- Model settings usage
- file_path: keyword-detection/page.mdoc
title: Keyword Detection
category: pipeline-stt
tags:
- pipeline-stt
- assemblyai
- openai
- cartesia
difficulty: intermediate
description: Shows how to detect keywords in user speech.
demonstrates:
- If the user says a keyword, the agent will log the keyword to the console.
- Using the `user_input_transcribed` event to inspect transcripts.
- file_path: transcriber/page.mdoc
title: Transcriber
category: pipeline-stt
tags:
- pipeline-stt
- assemblyai
difficulty: beginner
description: Shows how to transcribe user speech to text without TTS or an LLM.
demonstrates:
- Saving transcripts to a file.
- An Agent that does not have TTS or an LLM. This is STT only.
- file_path: changing_language/page.mdoc
title: ElevenLabs Change Language
category: pipeline-tts
tags:
- pipeline-tts
- elevenlabs
- deepgram
- openai
difficulty: intermediate
description: Shows how to use the ElevenLabs TTS model to change the language of the agent.
demonstrates:
- Using the update_options() method to change the language of STT and TTS
- Allowing agents to self-update their own options using function tools
- Accessing session STT/TTS from within an agent
- file_path: short_replies_only/page.mdoc
title: Short Replies Only
category: pipeline-tts
tags:
- pipeline-tts
- openai
- deepgram
- rime
difficulty: beginner
description: Shows how to override the default TTS node to only respond with short replies based on the number of chunks.
demonstrates:
- Using the `tts_node` method to override the default TTS node and add custom logic to only respond with short replies.
- Using the `session.interrupt` method to interrupt the agent if it's taking too long to respond, and then informing the
user with `session.say`
- file_path: tts_comparison/page.mdoc
title: TTS Comparison
category: pipeline-tts
tags:
- pipeline-tts
- deepgram
- openai
- rime
- elevenlabs
- cartesia
- playai
difficulty: intermediate
description: Switches between different TTS providers using function tools.
demonstrates:
- Using function tools to switch between different TTS providers.
- Each function tool returns a new agent with the same instructions, but with a different TTS provider.
- file_path: tts_node_modifications/page.mdoc
title: TTS Node Override
category: pipeline-tts
tags:
- pipeline-tts
- deepgram
- openai
- rime
difficulty: intermediate
description: Shows how to override the default TTS node to do replacements on the output.
demonstrates:
- Using the `tts_node` method to override the default TTS node and add custom logic to do replacements on the output, like
replacing "lol" with "<laughs>".
- file_path: rag/page.mdoc
title: RAG Voice Agent
category: rag
tags:
- annoy_index
- vector_search
- embeddings
- livekit_docs
- deduplication
difficulty: advanced
description: RAG-enabled agent with vector search for LiveKit documentation
demonstrates:
- Annoy vector index loading and querying
- OpenAI embeddings for semantic search
- Result deduplication with seen tracking
- Function tool for document search
- Paragraph-based context retrieval
- Noise cancellation with BVC
- file_path: gemini_live_vision/page.mdoc
title: Gemini Realtime Agent with Live Vision
category: realtime
tags:
- gemini_realtime
- live_vision
- google