Skip to content

feat(runtime): restore DeepSeek native WebSearch on Open Responses #3689

Description

@MoonOld

Problem

#2972 deliberately disabled first-party DeepSeek model-native WebSearch when DeepSeek moved to @ai-sdk/open-responses, because that adapter dropped provider-defined tools and did not decode hosted tool results. Tavily and the Anthropic-compatible DeepSeek path remained alternatives.

The shared adapter work in #3685 now lowers tools: [{ type: "web_search" }] and preserves all observed Responses actions (search, open_page, and find_in_page). A real first-party probe on 2026-08-24 used deepseek-v4-flash through https://api.deepseek.com/responses: six provider-executed WebSearch calls completed with a grounded answer and a normal stop outcome.

The transport is therefore ready, but resolveHostedWebSearchCapability(deepseek, ...) still returns implemented:false, so normal Maka composition never advertises the tool.

Desired outcome

Restore native WebSearch for first-party DeepSeek V4 Responses models after #3685 lands.

  • Enable the implemented capability for deepseek-v4-flash and deepseek-v4-pro only on their effective Responses wire.
  • Preserve explicit openai-chat model overrides, privacy-mode removal, scoped child tool ceilings, and explicit no-fallback behavior.
  • Keep provider-executed search history on the existing grounded-text fallback until Open Responses can round-trip hosted call/result pairs safely.
  • Add capability and production-routing regressions plus a normal routed live smoke.

Alternatives or workarounds

Users can select Tavily with a separate credential, or configure the DeepSeek Anthropic-compatible endpoint and use web_search_20250305. Neither restores the first-party Responses capability that was intentionally disabled in #2972.

Related: #2152, #2927, #2972, #3685.

Activity

  1. MoonOld commented on Aug 24, 2026

    @MoonOld
    ContributorAuthor

    I will take this. The capability and routing change is implemented and the normal routed first-party live smoke now passes; I am opening the stacked Draft PR with the verification evidence.

  2. MoonOld commented on Aug 24, 2026

    @MoonOld
    ContributorAuthor

    Draft implementation is now in #3694. The normal routed first-party deepseek-v4-flash live smoke completed six provider-executed actions and a grounded final answer; sanitized evidence is in the PR body.

  3. added
    staleNo qualifying activity within the lifecycle policy window
    on Sep 24, 2026
  4. github-actions commented on Sep 24, 2026

    @github-actions

    This issue has had no human activity for 30 days and has been marked stale. It will be closed in 30 days unless someone comments.

    If the issue is still current, please confirm it against the latest main and add any information that would help move it forward. Assigned issues and issues labelled pinned are exempt from this policy.

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

    enhancementNew feature or requestgood first issueGood for newcomershelp wantedExtra attention is neededstaleNo qualifying activity within the lifecycle policy window

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions