AsyncTools can't continuously update the user while also treating tool output as a normal output
Bug Description
I have noticed that Livekit AsyncTools can't continuously keep updating the user during tool execution while at the same time return the tool output as a normal return/output. I see that the agent is able to either update the agent during tool execution, but not treat the tool output as a normal tool output. Or it can return the tool output as a normal output, but then it can't continuously keep updating the user during execution. It looks like these two things mutually exclusive and that we can't have both.
For more info on this, have a look at this post in Livekit community
Expected Behavior
My expectation is that a Livekit agent that has an AsyncTool should be able to continuously keep updating the agent during tool execution using ctx.update() and ctx.with_filler(). And when a tool output is returned, it should treat the tool output as a normal output and speak the result to the user.
Reproduction Steps
1. Create an AsyncTool that performs a long executing worfklow.
2. Implement ctx.update(), ctx.with_filler() and the tool output in the toolOperating System
macOs
Models Used
Amazon Nova Sonic
Package Versions
Python 3.14
livekit 1.1.17
livekit-agents 1.8.0
livekit-api 1.2.1
livekit-plugins-aws 1.8.0Session/Room/Call IDs
No response
Proposed Solution
AsyncTools should be able to continuously keep updating the agent during tool execution using ctx.update() and ctx.with_filler(). And when a tool output is returned, it should treat the tool output as a normal output and speak the result to the user.Additional Context
Check this post in the Livekit community.
Screenshots and Recordings
No response
Source: livekit/agents