Skip to content

OpenAI Chat Completions streaming drops reasoning (delta.reasoning_content is never emitted as a StreamFrame) #2148

Description

@adamglin0

Summary

When streaming via the OpenAI Chat Completions endpoint, reasoning content is
silently dropped. Providers that return chain-of-thought in the streaming delta as
choices[].delta.reasoning_content (e.g. DeepSeek and OpenAI-compatible gateways)
produce no StreamFrame.ReasoningDelta / StreamFrame.ReasoningComplete, so the
reasoning is lost both during streaming and in the final toMessageResponse().

The non-streaming path works correctly — AbstractOpenAILLMClient reads
reasoning_content and produces a MessagePart.Reasoning — so switching a model
from execute() to executeStreaming() causes reasoning to disappear.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions