From 33745b8b5438f49f9268ff485734a2ff79cb38ba Mon Sep 17 00:00:00 2001 From: Xin Wang Date: Mon, 15 Dec 2025 17:03:58 +0800 Subject: [PATCH] add inactive user state in comment --- agents/my_basic_agent_1_2_9.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/agents/my_basic_agent_1_2_9.py b/agents/my_basic_agent_1_2_9.py index 71dd818..7b9b8ed 100644 --- a/agents/my_basic_agent_1_2_9.py +++ b/agents/my_basic_agent_1_2_9.py @@ -22,6 +22,7 @@ from livekit.agents import ( BuiltinAudioClip, JobContext, JobProcess, + UserStateChangedEvent, MetricsCollectedEvent, RoomInputOptions, RoomOutputOptions, @@ -845,6 +846,20 @@ async def launch_avatar(ctx: JobContext, avatar_dispatcher_url: str, avatar_iden async def entrypoint(ctx: JobContext, avatar_dispatcher_url: str = None, vision_backend: str = "siliconflow", llm_backend: str = "deepseek"): + # inactivity_task: asyncio.Task | None = None + + # async def user_presence_task(): + # # try to ping the user 3 times, if we get no answer, close the session + # for _ in range(3): + # await session.generate_reply( + # instructions=( + # "你礼貌的询问用户是否还在通话。" + # ) + # ) + # await asyncio.sleep(10) + + # session.shutdown() + # each log entry will include these fields ctx.log_context_fields = { "room": ctx.room.name, @@ -975,6 +990,17 @@ async def entrypoint(ctx: JobContext, avatar_dispatcher_url: str = None, vision_ }, ) + # @session.on("user_state_changed") + # def _user_state_changed(ev: UserStateChangedEvent): + # nonlocal inactivity_task + # if ev.new_state == "away": + # inactivity_task = asyncio.create_task(user_presence_task()) + # return + + # # ev.new_state: listening, speaking, .. + # if inactivity_task is not None: + # inactivity_task.cancel() + await session.start( agent=MyAgent(initial_instructions, vision_backend=vision_backend), room=ctx.room,