Skip to content

feat: Streaming Responses - Progressive output for multi-duck toolsΒ #47

@nesquikm

Description

@nesquikm

πŸ¦† Duck Enhancement Proposal

πŸ’‘ The Problem

All responses are currently buffered β€” the client waits until every LLM finishes before seeing anything. For duck_council (all providers), duck_debate (multi-round), and duck_iterate (back-and-forth), this means long waits with zero feedback.

πŸš€ Proposed Solution

Stream partial results as each duck completes its response, rather than waiting for all ducks to finish.

What to stream:

  • compare_ducks / duck_council β†’ emit each provider's response as it arrives
  • duck_debate β†’ emit each round as it completes
  • duck_iterate β†’ emit each refinement step
  • Single-duck tools (ask_duck, chat_with_duck) β†’ stream token-by-token

Technical notes:

  • OpenAI SDK already supports streaming (stream: true) β€” currently hardcoded to false in DuckProvider
  • MCP spec supports progress notifications for long-running operations
  • The upcoming multi-turn SSE transport SEP will further improve streaming support

πŸ“Ž Related

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions