Skip to content

Reasoning models fail every turn: tools + reasoning_effort rejected on /v1/chat/completions #58

Open

Description

@raoofaltaher

With a reasoning-by-default OpenAI model in OPENAI_MODEL, every Dot turn fails with:
400 Function tools with reasoning_effort are not supported for <model> in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'.

The agent uses openaiCompatibleText (Chat Completions only, src/server/dot-agent.ts:15) and always sends tools, so these models can't be used. Switching to gpt-5.4-mini fixed it.

Suggestion: support the Responses API or allow setting reasoning_effort, and document which models are supported.

Env: Docker Compose (compose.yml + computers overlays), main @ c2569bb, Chromium.

Activity

  1. DevJoaoLopes commented on Oct 6, 2026

    @DevJoaoLopes

    I can confirm the same failure when running OpenDots locally on macOS with npm run dev, using OPENAI_MODEL=gpt-6.1-sol.

    The local checkout is on main at 565bf781d654339ee1ce83b17ee00d76d679608e (after the originally reported c2569bb). Both Vite and the application server start successfully; the failure occurs when a Dot executes a model turn.

    The runtime reports:

    400 Function tools with reasoning_effort are not supported for gpt-6.1-sol in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'.
    

    The error originates from openai-compatible.chatStream and propagates through convertTanStackStream in the CopilotKit runtime. The current src/server/dot-agent.ts still explicitly selects api: 'chat-completions'.

    This provides another reproduction outside Docker, on the newer main revision. Switching models, setting reasoning_effort to none, and using the Responses API have not yet been tested in this environment.

    Posted with AI assistance on behalf of the user who reported this local failure.

  2. DevJoaoLopes commented on Oct 6, 2026

    @DevJoaoLopes

    Update: I have prepared two linked contributions for this issue:

    • CopilotKit runtime fix: CopilotKit/CopilotKit#7672 preserves TanStack encrypted reasoning events, correctly associates step/message IDs, and replays reasoning/tool metadata across human review and history continuations.
    • OpenDots integration (Draft): #104 adds explicit DOT_MODEL_API, DOT_MAX_OUTPUT_TOKENS, and optional DOT_REASONING_EFFORT settings, with native options for Chat Completions and Responses. Chat Completions/2200 and the provider's unspecified effort remain the defaults.

    Validation

    Using the reviewed, locally built runtime package on macOS/Node 24, I verified gpt-6.1-sol with:

    DOT_MODEL_API=responses
    DOT_MAX_OUTPUT_TOKENS=8192
    DOT_REASONING_EFFORT=medium

    The final UI flow made 9 model requests returning HTTP 200, with no HTTP 400. It covered actual page-tool execution, approval and decline of review cards, and reopening the conversation in a fresh browser context. The provider reported 34 reasoning tokens, and the outgoing request after reopening included an encrypted reasoning item. Owner pause also aborted an active provider request; a new turn succeeded after unpausing.

    Offline checks: 2,831 runtime tests and 344 OpenDots tests passed, along with formatting, lint, typechecks and builds in the validated local configurations.

    Release dependency

    The OpenDots PR is Draft, not ready to merge. Published runtime 1.77.0 still lacks the SDK fix. A clean install from its current public lock reproduces 7 failures / 337 passes: three SDK compatibility gates and four review-resume cases. They are retained as regression guards, not skipped.

    Once the SDK fix is merged and published, the OpenDots lock needs updating to that corrected release and normal clean-install CI needs to pass. Until then, the two fixes can be tested together using a locally built runtime package; a merge alone does not update installed dependencies.

    The budget/effort above are explicit test choices, not requirements or new defaults. Model/provider support varies. No credentials, encrypted values or private page content are included in the PRs or this comment.

    Prepared with AI assistance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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