Proposal: contributing an overlap barge-in decision model (duck_jev) as an optional interruption-handling component
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 30/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- python
调研方向
Start by reading the AgentSession integration points and the existing turn detector and interruption handling interfaces. The proposal describes an optional model service, documentation, and an example agent, but does not identify specific files or an agreed design. Done would require confirming the contribution's fit and interface with maintainers, then defining and implementing the component.
由索引模型根据 Issue 内容生成。
描述
Feature Type
Nice to have
Feature Description
Hi LiveKit team 👋
I'm an AI engineer building production voice agents, and I'd like to check whether a contribution in the area of overlap barge-in handling would be welcome before I open a PR.
What it is
An approach I call duck_jev, for the case where the user starts speaking while the agent is still talking:
- Duck: the agent immediately lowers its own volume instead of stopping outright.
- Judge: a small decision model decides whether the user is truly interrupting or just giving a backchannel ("uh-huh", "right", short acknowledgements).
- Resume or yield: if it's a backchannel, the agent restores volume and continues; if it's a real interruption, the agent yields the floor.
In my tests with LiveKit Agents, this feels more natural than VAD-only interruption. Interruption judgment from text input was accurate for "user is interrupting the bot". End-of-turn detection is a separate problem, and I'm using LiveKit's turn-detector model for that.
What I'd like to contribute
Package this as a standalone model service with a clean interface that plugs into AgentSession as an optional interruption-detection component, together with documentation and an example agent.
Questions
- Does this fit the project's direction? I noticed the contribution docs mention TTS/STT/LLM plugins in particular, so I'm not sure whether this kind of component belongs in the main repo.
- If yes, where would you prefer it: a plugin in
livekit/agents, a community package, or an example under a separate repo? - Is there an existing interface or hook for interruption/backchannel decisions that I should build against, so I don't duplicate in-progress work?
I'm happy to share a short demo and a design doc first, and to sign the CLA.
Thanks!
Workarounds / Alternatives
No response
Additional Context
No response
- 主要语言
- Python
- 星标
- 14.6k
- 派生
- 3.9k
- 平均合并
- 2 天 6 小时
- 30 天内合并 PR
- 227
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
livekit/agents 的其他 Issue
-
难度 1/5 1 小时以内 新手友好度 78/100
维护者通常 1 天内回复
-
enhancement
难度 2/5 1-3 小时 新手友好度 66/100
维护者通常 1 天内回复
-
ci: unit tests pin Python 3.12 while the package advertises 3.14 support可能已有人在做 @huong8373tt-beep 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
Assistant markup is stripped from chat history when expressive mode is off可能已有人在做 @ShivamSharma43 于 22 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
docs: openai.LLM vs openai.responses.LLM for HTTP OpenAI-compat hosts可能重新可做 @AbarnaaSree 于 61 天前认领,目前没有进行中的 PR。 未关闭
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
相似的 Issue
-
priority middle
难度 1/5 1 小时以内 新手友好度 62/100
KATO-Hiro/AtCoderClans#12940 ·
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 76/100
huggingface/huggingface_hub#5283 ·
维护者通常 1 天内回复
-
enhancement
难度 1/5 1 小时以内 新手友好度 86/100
维护者通常 1 天内回复
-
bug example
难度 2/5 1-3 小时 新手友好度 86/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 84/100
HKUDS/Vibe-Trading#2115 ·
维护者通常 1 天内回复