Problem
When a tool finishes with an empty-looking result like None or {}, Pipecat may treat that as if there was no real result.
That causes two problems:
- the LLM may not run again, so the assistant stays silent
- the tool result stored in context can become
"COMPLETED" instead of the real value
Example
A weather tool times out and returns None.
Current behavior:
- the tool call is marked finished
- the assistant is not triggered to speak again
- the user hears nothing
Expected behavior:
- Pipecat should still treat this as a finished tool call
- the LLM should be able to say something like
Sorry, that tool timed out
Another example:
A tool returns {} to mean no data found.
Current behavior:
- Pipecat stores
"COMPLETED" in context
Expected behavior:
- Pipecat should preserve
{} in context so the model can reason about the real result
Scope
This issue is about final tool results that are falsy:
Problem
When a tool finishes with an empty-looking result like
Noneor{}, Pipecat may treat that as if there was no real result.That causes two problems:
"COMPLETED"instead of the real valueExample
A weather tool times out and returns
None.Current behavior:
Expected behavior:
Sorry, that tool timed outAnother example:
A tool returns
{}to meanno data found.Current behavior:
"COMPLETED"in contextExpected behavior:
{}in context so the model can reason about the real resultScope
This issue is about final tool results that are falsy:
None""0{}[]