Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
87068d5
add interface draft
chenghao-mou Feb 5, 2026
e0d5ec1
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou Mar 6, 2026
8eebccc
draft
chenghao-mou Mar 11, 2026
f92fbc0
fix type issues
chenghao-mou Mar 11, 2026
d1086ff
refactor stream to support turn detector protocol
chenghao-mou Mar 12, 2026
0a02bb1
minor fixes
chenghao-mou Mar 12, 2026
168d0d7
minor fixes
chenghao-mou Mar 12, 2026
277db6e
WIP: use only ws stream
chenghao-mou Mar 24, 2026
03c0e2e
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou Mar 24, 2026
56b4796
fix uv.lock bad merge
chenghao-mou Mar 24, 2026
be9a550
WIP: more refactoring
chenghao-mou Mar 25, 2026
601229c
fix mypy
chenghao-mou Mar 25, 2026
c4d92f8
remove temp url
chenghao-mou Mar 25, 2026
e963d85
disable turn detection when agent is still speaking
chenghao-mou Mar 25, 2026
c529d79
minor refactoring
chenghao-mou Mar 29, 2026
09baed8
fix type issues
chenghao-mou Mar 29, 2026
3830638
wip
chenghao-mou Apr 10, 2026
f214aa0
clean up encoder
chenghao-mou Apr 20, 2026
c922f44
wip
chenghao-mou Apr 20, 2026
f94a0dd
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou Apr 20, 2026
604bfdc
update protos
chenghao-mou Apr 21, 2026
f9ec64a
minor fixes
chenghao-mou Apr 21, 2026
ddbf594
address comments
chenghao-mou Apr 21, 2026
d465564
add text fallback
chenghao-mou Apr 22, 2026
6e7d6bf
add text fallback
chenghao-mou Apr 22, 2026
200d634
fix threshold
chenghao-mou Apr 22, 2026
dbd11b0
remove temp deps
chenghao-mou Apr 22, 2026
60004dd
support realtime model
chenghao-mou Apr 22, 2026
6de53f4
fix type issues
chenghao-mou Apr 22, 2026
4ed8a82
add id in logs
chenghao-mou Apr 23, 2026
0db57ea
use threaded audio encoder
chenghao-mou Apr 24, 2026
bbcfc3a
close encoder
chenghao-mou Apr 24, 2026
7e04332
update dep
chenghao-mou Apr 27, 2026
04db92f
address comments
chenghao-mou Apr 30, 2026
46fd3bf
add cloud agent worker token
chenghao-mou Apr 30, 2026
e4e8ef6
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou Apr 30, 2026
fc94068
fix type issues
chenghao-mou Apr 30, 2026
999edd5
add token in header instead
chenghao-mou Apr 30, 2026
cde90de
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou Apr 30, 2026
3603f04
wip
chenghao-mou May 13, 2026
6272402
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 13, 2026
3bc3ff3
refactor for the cloud model
chenghao-mou May 14, 2026
a08b624
add support for both v1 and v1-mini
chenghao-mou May 14, 2026
f435571
fix example
chenghao-mou May 15, 2026
8e75d60
address comments
chenghao-mou May 15, 2026
cf54cbe
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 15, 2026
4f10a69
address comments
chenghao-mou May 15, 2026
e96f1be
clean up session _on_error annotation
chenghao-mou May 15, 2026
97400d2
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 15, 2026
b1e9294
merge inference and local eot code
chenghao-mou May 15, 2026
49f0de0
update tests
chenghao-mou May 17, 2026
7fe2bfb
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 17, 2026
8b150aa
clean up
chenghao-mou May 17, 2026
28af3f5
minor refactor and clean up
chenghao-mou May 18, 2026
75ddae6
refactor
chenghao-mou May 19, 2026
76cec5d
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 19, 2026
2ccf54d
refactor
chenghao-mou May 19, 2026
7fbca08
clean up
chenghao-mou May 19, 2026
82c599a
refactor
chenghao-mou May 19, 2026
4b6fdb5
clean up
chenghao-mou May 19, 2026
7500160
more refactoring
chenghao-mou May 19, 2026
efe8d5c
fix makefile indentation
chenghao-mou May 19, 2026
3237f9d
update protocol
chenghao-mou May 20, 2026
09cdb0c
add direct commit for late stt transcripts
chenghao-mou May 20, 2026
f02d24e
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 21, 2026
0a6a66d
add local inference dependency
chenghao-mou May 21, 2026
80fbc29
update deps
chenghao-mou May 21, 2026
21310ee
use local inference pacakge and deprecate the turn detector package
chenghao-mou May 23, 2026
5408ae1
feat(vad): bundle optimized silero vad and deprecate the plugin (#5800)
chenghao-mou May 25, 2026
442d857
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 25, 2026
9d9cb52
fix type issue
chenghao-mou May 25, 2026
2b4cc7e
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 25, 2026
a42cf7a
refactoring
chenghao-mou May 25, 2026
f592a16
drop duplicate calls and simplify triggers
chenghao-mou May 25, 2026
82ad113
fix vad restore bug
chenghao-mou May 25, 2026
f93f7ca
adjust thresholds for the cloud model
chenghao-mou May 25, 2026
7ff1eb1
update warning message
chenghao-mou May 25, 2026
e9b8a1e
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 25, 2026
cc6b6a9
avoid duplicate eot event fire
chenghao-mou May 27, 2026
1447d1d
fix env var
chenghao-mou May 27, 2026
cbf3a3a
fix env and example
chenghao-mou May 27, 2026
f4a91a1
clean up examples and readme
chenghao-mou May 27, 2026
09ae669
more clean up and refactoring
chenghao-mou May 27, 2026
f8c9672
adjust default vad value to match the eot requirement
chenghao-mou May 27, 2026
5e47173
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou May 27, 2026
63521b2
fix user speaking state bug
chenghao-mou May 27, 2026
6c713de
livekit-agents@1.6.0.rc1 (#5866)
github-actions[bot] May 27, 2026
21c9604
more default refactoring
chenghao-mou May 28, 2026
719b76e
more refactoring and clean up
chenghao-mou May 28, 2026
bde8445
more refactoring and clean up
chenghao-mou May 28, 2026
7d71be9
address comment
chenghao-mou May 28, 2026
a4d1414
Merge remote-tracking branch 'origin/main' into feat/AGT-2520-multimo…
chenghao-mou May 28, 2026
545f115
rename backend to model
chenghao-mou May 29, 2026
080216a
livekit-agents@1.6.0.rc2 (#5891)
github-actions[bot] May 29, 2026
1b48088
improve default parsing
chenghao-mou Jun 3, 2026
66d94c2
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou Jun 3, 2026
c512a5d
clean up error logs
chenghao-mou Jun 3, 2026
d417609
reformat
chenghao-mou Jun 3, 2026
3bc119c
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou Jun 4, 2026
e4f7fad
fix tests
chenghao-mou Jun 5, 2026
28e54ee
refactor(eot): rename AudioTurnDetector to TurnDetector, model arg to…
chenghao-mou Jun 6, 2026
b4f5d41
fix(tests): init _user_silence_ev in EOU recognition test helper
chenghao-mou Jun 6, 2026
c2ee019
Merge remote-tracking branch 'origin/main' into feat/AGT-2520-multimo…
chenghao-mou Jun 7, 2026
1a3a270
skip None threshold or probability events
chenghao-mou Jun 7, 2026
b99d4d1
docs: add LiveKit Model License and reference it in README
chenghao-mou Jun 8, 2026
6cbb55e
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou Jun 9, 2026
f8a6ce7
Update livekit-agents/livekit/agents/inference/_utils.py
chenghao-mou Jun 9, 2026
d74df8d
drop FSM in stream and move logic to audio recognition
chenghao-mou Jun 10, 2026
66f0e1c
remove TurnDetector reference
chenghao-mou Jun 10, 2026
157e7b4
restore deps due to bad merge
chenghao-mou Jun 11, 2026
b73663d
Merge branch 'main' into feat/AGT-2520-multimodal-EOU
chenghao-mou Jun 11, 2026
62cd057
fix(voice): route and drain AsyncToolset executors correctly on hando…
toubatbrian Jun 11, 2026
1e1332e
fix(deepgram): use stored language when validating model in update_op…
adityajha2005 Jun 11, 2026
a528fc9
simulation: read the dispatch from the simulator participant metadata…
theomonnom Jun 11, 2026
c8f0e26
remove the next-release changeset machinery (#6054)
theomonnom Jun 11, 2026
13af956
fix(bargein): error when no interruption threshold is known (#6034)
chenghao-mou Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions .github/next-release/changeset-soniox-target-segments.md

This file was deleted.

110 changes: 9 additions & 101 deletions .github/update_versions.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
import pathlib
import re
import yaml
import click
from packaging.version import Version
import colorama
from typing import Dict, Tuple, List
from typing import Dict

colorama.init()

BUMP_ORDER: Dict[str, int] = {"patch": 0, "minor": 1, "major": 2}


def _iter_plugin_dirs(plugins_root: pathlib.Path) -> list[pathlib.Path]:
"""Return all plugin directories."""
Expand All @@ -34,44 +31,6 @@ def _read_pypi_name(pdir: pathlib.Path) -> str:
def _esc(*codes: int) -> str:
return "\033[" + ";".join(str(c) for c in codes) + "m"

def parse_changeset_file(path: pathlib.Path) -> Tuple[Dict[str, str], str]:
"""Parse a changeset file of the form:

---
some_yaml_bumps
---
changelog text
"""
text = path.read_text()
parts = text.split("---", 2)
if len(parts) < 3:
raise ValueError(f"Invalid changeset file format in {path}")

yaml_part = parts[1].strip()
changelog_part = parts[2].strip()
data = yaml.safe_load(yaml_part)
return data, changelog_part

def load_changesets(dir: pathlib.Path) -> Dict[str, Tuple[str, List[str]]]:
agg: Dict[str, Tuple[str, List[str]]] = {}
if not dir.is_dir():
raise ValueError(f"{dir} is not a directory or does not exist.")

for file in dir.glob("*"):
if not file.is_file():
continue
data, changelog = parse_changeset_file(file)
for pkg, bump_type in data.items():
if pkg not in agg:
agg[pkg] = (bump_type, [changelog])
else:
cur_bump, changelogs = agg[pkg]
if BUMP_ORDER[bump_type] > BUMP_ORDER[cur_bump]:
cur_bump = bump_type
changelogs.append(changelog)
agg[pkg] = (cur_bump, changelogs)
return agg

def read_version(f: pathlib.Path) -> str:
"""Read __version__ = \"X.Y.Z\" from a Python file."""
text = f.read_text()
Expand Down Expand Up @@ -161,46 +120,7 @@ def replacer(m: re.Match, _new_version=new_version) -> str:
agents_pyproject.write_text(new_text)
print("Updated livekit-agents/pyproject.toml optional-dependencies")

def update_versions(changesets: Dict[str, Tuple[str, List[str]]]) -> None:
agents_ver = pathlib.Path("livekit-agents/livekit/agents/version.py")
plugins_root = pathlib.Path("livekit-plugins")

new_agents_version = None
plugin_versions = {}

if agents_ver.exists() and "livekit-agents" in changesets:
bump_type, _ = changesets["livekit-agents"]
cur = read_version(agents_ver)
new = bump_version(cur, bump_type)
print(f"livekit-agents: {_esc(31)}{cur}{_esc(0)} -> {_esc(32)}{new}{_esc(0)}")
write_new_version(agents_ver, new)
new_agents_version = new
else:
print("Warning: No version.py or no bump info for livekit-agents.")

for pdir in _iter_plugin_dirs(plugins_root):
vf = pdir / "livekit" / "plugins" / pdir.name.split("livekit-plugins-")[1].replace("-", "_") / "version.py"
pypi_name = _read_pypi_name(pdir)
if vf.exists():
if pdir.name in changesets:
bump_type, _ = changesets[pdir.name]
cur = read_version(vf)
new = bump_version(cur, bump_type)
print(f"{pypi_name}: {_esc(31)}{cur}{_esc(0)} -> {_esc(32)}{new}{_esc(0)}")
write_new_version(vf, new)
plugin_versions[pypi_name] = new
else:
print(f"Warning: Found version.py for {pypi_name}, but no bump info in next-release.")
else:
print(f"Warning: version.py not found for {pypi_name} at {vf}")

if new_agents_version:
update_plugins_pyproject_agents_version(new_agents_version)

if plugin_versions:
update_agents_pyproject_optional_dependencies(plugin_versions)

def update_versions_ignore_changesets(bump_type: str) -> None:
def update_versions(bump_type: str) -> None:
agents_ver = pathlib.Path("livekit-agents/livekit/agents/version.py")
plugins_root = pathlib.Path("livekit-plugins")

Expand Down Expand Up @@ -275,35 +195,23 @@ def update_prerelease(prerelease_type: str) -> None:
default="none",
help="Pre-release type. Use 'none' for normal bump, or 'rc'/'dev' for pre-release."
)
@click.option(
"--ignore-changesets",
is_flag=True,
default=False,
help="Ignore changeset files and bump all packages using a uniform bump type."
)
@click.option(
"--bump-type",
type=click.Choice(["patch", "minor", "major", "release"]),
default="patch",
help="Type of version bump to apply when ignoring changesets. Use 'release' to strip pre-release suffixes. Defaults to patch."
help="Type of version bump to apply to every package. Use 'release' to strip pre-release suffixes. Defaults to patch."
)
def bump(pre: str, ignore_changesets: bool, bump_type: str) -> None:
def bump(pre: str, bump_type: str) -> None:
"""
Single command to do either normal or pre-release bumps.

For a normal release (with --pre=none), by default the script uses changesets from
.github/next-release to determine per-package bump types. Use --ignore-changesets to ignore
the changesets and bump every package with the specified --bump-type.

For pre-release bumps (--pre=rc or --pre=dev), it updates the current versions to a new RC or DEV version.
In both cases, plugin pyproject.toml references for 'livekit-agents' will be updated if that version changes.
For a normal release (with --pre=none), every package is bumped with the specified
--bump-type. For pre-release bumps (--pre=rc or --pre=dev), it updates the current
versions to a new RC or DEV version. In both cases, plugin pyproject.toml references
for 'livekit-agents' will be updated if that version changes.
"""
if pre == "none":
if ignore_changesets:
update_versions_ignore_changesets(bump_type)
else:
changesets = load_changesets(pathlib.Path(".github/next-release"))
update_versions(changesets)
update_versions(bump_type)
else:
update_prerelease(pre)

Expand Down
9 changes: 3 additions & 6 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,21 +74,18 @@ jobs:

case "$key" in
patch|minor|major)
python .github/update_versions.py \
--ignore-changesets --bump-type "$key"
python .github/update_versions.py --bump-type "$key"
;;
patch-rc|minor-rc|major-rc)
bump="${key%-rc}"
python .github/update_versions.py \
--ignore-changesets --bump-type "$bump"
python .github/update_versions.py --bump-type "$bump"
python .github/update_versions.py --pre rc
;;
next-rc)
python .github/update_versions.py --pre rc
;;
promote)
python .github/update_versions.py \
--ignore-changesets --bump-type release
python .github/update_versions.py --bump-type release
;;
esac

Expand Down
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ it.
| Marker | Flag | Meaning |
|--------|------|---------|
| `pytest.mark.unit` | `--unit` | fast, hermetic, no external providers/credentials/network |
| `pytest.mark.audio_eot` | `--audio_eot` | hermetic audio end-of-turn / turn-detection suite |
| `pytest.mark.plugin("name")` | `--plugin [name]` | provider integration test (needs that provider's deps/keys) |
| `pytest.mark.stt` | `--stt` | cross-provider speech-to-text suite (`tests/test_stt.py`) |
| `pytest.mark.tts` | `--tts` | cross-provider text-to-speech suite (`tests/test_tts.py`) |
Expand Down
113 changes: 113 additions & 0 deletions MODEL_LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
LIVEKIT MODEL LICENSE AGREEMENT

1. Introduction

LiveKit Incorporated ("LiveKit") is making available its proprietary models for
use pursuant to the terms and conditions of this Agreement. As further
described below, you may use these LiveKit models freely but can only use them
together with the LiveKit Agents framework. You cannot use the LiveKit models
on a standalone basis or with any other frameworks.

BY CLICKING "I ACCEPT," OR BY DOWNLOADING, INSTALLING, OR OTHERWISE ACCESSING
OR USING THE LIVEKIT MATERIALS, YOU AGREE THAT YOU HAVE READ AND UNDERSTOOD,
AND, AS A CONDITION TO YOUR USE OF THE LIVEKIT MATERIALS, YOU AGREE TO BE
BOUND BY, THE FOLLOWING TERMS AND CONDITIONS.

2. Definitions

"Agreement" means this LiveKit Model License Agreement.

"Documentation" means the specifications, manuals, and documentation
accompanying any LiveKit Model and distributed by LiveKit.

"Licensee" or "you" means the individual or entity agreeing to be bound by
this Agreement.

"LiveKit Agents" means the proprietary LiveKit software framework for building
real-time multimodal AI applications with programmable backend participants.

"LiveKit Materials" means, collectively, the LiveKit Models and Documentation.

"LiveKit Model" means any of LiveKit's proprietary software models or
algorithms, including machine-learning software code, model weights,
inference-enabling software code, training-enabling software code, and
fine-tuning enabling software code. Any derivative works of a LiveKit Model,
whether developed by LiveKit, you, or any third party, will be deemed the
"LiveKit Model" for the purposes of this Agreement.

3. License Rights

Right to Use LiveKit Materials. Subject to the terms and conditions of this
Agreement, including the requirements of Section 3.b, LiveKit grants you a
nonexclusive, nontransferable, worldwide, royalty-free license under LiveKit's
intellectual property rights to use, reproduce, distribute, copy, and create
derivative works of the LiveKit Materials.

Limitation on Use. As a condition to your use of the LiveKit Materials, you
agree: (i) not to use any LiveKit Models on a standalone basis or with any
frameworks other than LiveKit Agents; (ii) not to use any LiveKit Materials or
any output from, or results of using, LiveKit Models (including any derivative
works thereof) to improve or otherwise develop any other models that are not
LiveKit Models; or (iii) distribute or otherwise make available the LiveKit
Materials (including any derivative works thereof) except (x) pursuant to the
terms of this Agreement, and (y) you reproduce the above copyright notice.

4. Intellectual Property

The LiveKit Materials are owned by LiveKit and its licensors. Except for the
rights granted to you under this Agreement, all rights are reserved and no
other express or implied rights are granted.

You will own any derivative works that you created from the LiveKit Materials,
subject to the terms of this Agreement.

5. Disclaimer

UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, LIVEKIT PROVIDES
THE LIVEKIT MATERIALS, AND ANY OUTPUT OR RESULTS THEREFROM, ON AN "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. YOU
ARE SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING OR
REDISTRIBUTING THE LIVEKIT MATERIALS AND ASSUME ANY RISKS ASSOCIATED WITH YOUR
USE OF THE LIVEKIT MATERIALS AND ANY OUTPUT AND RESULTS.

6. Limitation of Liability

IN NO EVENT AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING NEGLIGENCE),
CONTRACT, OR OTHERWISE, UNLESS REQUIRED BY APPLICABLE LAW (SUCH AS DELIBERATE
AND GROSSLY NEGLIGENT ACTS) OR AGREED TO IN WRITING, WILL LIVEKIT BE LIABLE TO
YOU FOR INDIRECT DAMAGES, INCLUDING ANY SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES OF ANY CHARACTER ARISING AS A RESULT OF THIS AGREEMENT OR OUT OF THE
USE OR INABILITY TO USE THE LIVEKIT MATERIALS OR ANY OUTPUT OR RESULTS
THEREFROM (INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOSS OF GOODWILL, WORK
STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL
DAMAGES OR LOSSES), EVEN IF LIVEKIT HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

7. Trademarks

This Agreement does not grant permission to use the trade names, trademarks,
service marks, or product names of LiveKit, except as required for reasonable
and customary use in describing the origin of the LiveKit Materials.

8. Term and Termination

The term of this Agreement commences upon your acceptance of this Agreement
and continues in effect until you cease using the LiveKit Materials or it is
terminated by either party (on immediate written notice to the other party).
This Agreement will automatically terminate if you breach any of its terms.
Upon termination, you must immediately cease all use of the LiveKit Materials.
Sections 4, 5, 6, and 9 will survive termination.

9. Governing Law and Venue

This Agreement is subject to the laws of the State of California, without
regard to its conflict of laws principles. The UN Convention on Contracts for
the International Sale of Goods does not apply to this Agreement. The courts
located in San Francisco, California, have exclusive jurisdiction for any
dispute arising out of this Agreement.

+ + + +

Last Updated: November 25, 2024
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ agents that can see, hear, and understand.
To install the core Agents library, along with plugins for popular model providers:

```bash
pip install "livekit-agents[openai,silero,deepgram,cartesia,turn-detector]"
pip install "livekit-agents[openai,deepgram,cartesia]"
```

## Docs and guides
Expand Down Expand Up @@ -92,7 +92,6 @@ from livekit.agents import (
function_tool,
inference,
)
from livekit.plugins import silero


@function_tool
Expand All @@ -111,7 +110,7 @@ server = AgentServer()
@server.rtc_session()
async def entrypoint(ctx: JobContext):
session = AgentSession(
vad=silero.VAD.load(),
vad=inference.VAD(),
# any combination of STT, LLM, TTS, or realtime API can be used
# this example shows LiveKit Inference, a unified API to access different models via LiveKit Cloud
# to use model provider keys directly, replace with the following:
Expand Down Expand Up @@ -200,7 +199,7 @@ class StoryAgent(Agent):
async def entrypoint(ctx: JobContext):
userdata = StoryData()
session = AgentSession[StoryData](
vad=silero.VAD.load(),
vad=inference.VAD(),
stt="deepgram/nova-3",
llm="openai/gpt-4.1-mini",
tts="cartesia/sonic-3:9626c31c-bec5-4cca-baa8-f8ba9e84c8bc",
Expand Down Expand Up @@ -382,6 +381,10 @@ python myagent.py start

Runs the agent with production-ready optimizations.

## License

The Agents framework is licensed under [Apache-2.0](LICENSE). The LiveKit turn detection models are licensed under the [LiveKit Model License](MODEL_LICENSE).

## Contributing

The Agents framework is under active development in a rapidly evolving field. We welcome and appreciate contributions of any kind, be it feedback, bugfixes, features, new plugins and tools, or better documentation. You can file issues under this repo, open a PR, or chat with us in the [LiveKit community](https://docs.livekit.io/intro/community/).
Expand Down
2 changes: 1 addition & 1 deletion examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ To run the examples, you'll need:

- A [LiveKit Cloud](https://cloud.livekit.io) account or a local [LiveKit server](https://github.com/livekit/livekit)
- API keys for the model providers you want to use in a `.env` file
- Python 3.9 or higher
- Python 3.10 or higher
- [uv](https://docs.astral.sh/uv/)

### Environment file
Expand Down
2 changes: 0 additions & 2 deletions examples/avatar_agents/audio_wave/agent_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
from livekit.agents.voice.avatar import DataStreamAudioOutput
from livekit.agents.voice.io import PlaybackFinishedEvent, PlaybackStartedEvent
from livekit.agents.voice.room_io import ATTRIBUTE_PUBLISH_ON_BEHALF
from livekit.plugins import silero

load_dotenv()

Expand Down Expand Up @@ -75,7 +74,6 @@ async def entrypoint(ctx: JobContext):
stt=inference.STT("deepgram/nova-3"),
llm=inference.LLM("google/gemini-2.5-flash"),
tts=inference.TTS("cartesia/sonic-3"),
vad=silero.VAD.load(),
resume_false_interruption=False,
)

Expand Down
Loading
Loading