Skip to content

Tool calls with empty results can make the assistant stay silent #4298

@bnovik0v

Description

@bnovik0v

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:

  • None
  • ""
  • 0
  • {}
  • []

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions