Skip to content

fix(deepseek): normalize mcp union tool schemas#83848

Merged
clawsweeper[bot] merged 3 commits into
mainfrom
clawsweeper/automerge-openclaw-openclaw-83766
May 19, 2026
Merged

fix(deepseek): normalize mcp union tool schemas#83848
clawsweeper[bot] merged 3 commits into
mainfrom
clawsweeper/automerge-openclaw-openclaw-83766

Conversation

@clawsweeper

@clawsweeper clawsweeper Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor

Makes #83766 merge-ready for the ClawSweeper automerge loop.
The edit pass should inspect the live PR diff, review comments, and failing checks; rebase if needed; keep the contributor branch credited; and stop only when validation is green or an external blocker is proven.

ClawSweeper 🐠 replacement reef notes:

  • Repair fallback: GitHub rejected the repair branch push because it updates workflow files and the ClawSweeper app token does not have workflows permission

Inherited issue-closing references from the source PR:
Fixes #83361

Co-author credit kept:

fish notes: model gpt-5.5, reasoning high; reviewed against cdd154f.

@clawsweeper clawsweeper Bot added agents Agent runtime and tooling size: M extensions: deepseek clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge labels May 19, 2026
@openclaw-barnacle openclaw-barnacle Bot added the docs Improvements or additions to documentation label May 19, 2026
@clawsweeper clawsweeper Bot added proof: supplied External PR includes structured after-fix real behavior proof. proof: sufficient ClawSweeper judged the real behavior proof convincing. P1 High-priority user-facing bug, regression, or broken workflow. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. clawsweeper Tracked by ClawSweeper automation labels May 19, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: supplied External PR includes structured after-fix real behavior proof. label May 19, 2026
@clawsweeper

clawsweeper Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor Author

Codex review: passed.

Workflow note: Future ClawSweeper reviews update this same comment in place.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

Summary
The PR adds DeepSeek provider-owned anyOf/oneOf tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.

Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after provider normalization, and #83361 provides the concrete DeepSeek 400 Invalid schema failure for an MCP anyOf tool schema.

PR rating
Overall: 🐚 platinum hermit
Proof: 🐚 platinum hermit
Patch quality: 🐚 platinum hermit
Summary: Good focused bug-fix PR with useful terminal proof, targeted tests, and no blocking correctness or security findings.

Rank-up moves:

  • none
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

PR egg
✨ Hatched: 🥚 common Tiny Merge Sprite

       _..------.._          
    .-'  .-.  .-.  '-.       
   /    ( * )( * )    \      
  |        .--.        |     
  |   <\   ====   />   |     
   \    '.______.'    /      
    '-._   ____   _.-'       
        `-.____.-'           
       __/|_||_|\__          
      /__.'    '.__\         
       .-----------.         
      '-------------'        

Rarity: 🥚 common.
Trait: sniffs out flaky tests.
Share on X: post this hatch
Copy: My PR egg hatched a 🥚 common Tiny Merge Sprite in ClawSweeper.

What is this egg doing here?
  • Eggs appear after the PR passes real-behavior proof. It is here for vibes, not verdicts: it does not change labels, ratings, merge decisions, or automation.
  • The shell reacts to review momentum: open follow-up work warms it up, re-review makes it wobble, and a clean final review lets it hatch.
  • How to hatch it: reach status: 👀 ready for maintainer look or status: 🚀 automerge armed; that usually means sufficient real-behavior proof, no blocking P0/P1/P2 findings, no security attention needed, and clean correctness.
  • The hatch is seeded from this repository and PR number, so the same PR keeps the same creature; the reviewed head SHA can only change safe visual details.
  • Rarity is just collectible sparkle: 🥚 common, 🌱 uncommon, 💎 rare, ✨ glimmer, and 🌈 legendary.

Real behavior proof
Sufficient (terminal): The source PR body provides terminal proof from the production helper showing after-fix DeepSeek schema normalization and empty diagnostics, with the live DeepSeek/MCP call clearly listed as not tested.

Risk before merge
Why this matters: - No live DeepSeek request against a real Unusual Whales MCP server is attached; proof covers production schema normalization output and tests, not external transport acceptance.

  • The fix deliberately collapses DeepSeek-visible multi-branch unions to the first non-null schema, reducing JSON Schema fidelity so DeepSeek will accept the tool payload.

Maintainer options:

  1. Accept DeepSeek-specific schema loosening (recommended)
    Maintain the provider-owned normalization and accept first-non-null/nullable collapse because the current richer MCP schema is rejected outright by DeepSeek.
  2. Require live DeepSeek MCP proof
    Ask for a redacted live DeepSeek call against a union-schema MCP tool before merge if maintainers want transport-level confirmation beyond production-helper output.

Next step before merge
No repair lane is needed; the remaining path is maintainer acceptance of the DeepSeek schema tradeoff plus normal exact-head merge gates.

Security
Cleared: The diff changes provider schema normalization, focused tests, docs, and changelog only; it does not add dependencies, workflow execution, package resolution, secret handling, or downloaded code paths.

Review details

Best possible solution:

Land the provider-owned DeepSeek compatibility hook and late bundled-tool normalization if maintainers accept the lossy union collapse as the DeepSeek transport policy.

Do we have a high-confidence way to reproduce the issue?

Yes. Source inspection shows current main appends materialized bundled MCP tools after provider normalization, and #83361 provides the concrete DeepSeek 400 Invalid schema failure for an MCP anyOf tool schema.

Is this the best way to solve the issue?

Yes, with maintainer acceptance of the tradeoff. The PR uses the existing provider-owned normalizeToolSchemas boundary and adds a late bundled-tool normalization pass instead of hard-coding DeepSeek policy into generic MCP registration.

Label justifications:

  • P1: The linked report describes DeepSeek rejecting MCP union schemas and breaking direct chat, sub-agent, and cron workflows when affected MCP tools are registered.
  • merge-risk: 🚨 compatibility: The PR intentionally rewrites provider-visible JSON Schema unions for DeepSeek, trading schema fidelity for provider acceptance.

What I checked:

  • Current main lacks DeepSeek tool-schema compat: Current main only supports gemini and openai in ProviderToolCompatFamily, so DeepSeek has no shared tool-schema normalization family yet. (src/plugin-sdk/provider-tools.ts:397, 19065e4a2fc8)
  • Current DeepSeek provider has no normalization hook: The DeepSeek provider registers replay, stream, thinking, and model hooks, but no normalizeToolSchemas or inspectToolSchemas hook on current main. (extensions/deepseek/index.ts:48, 19065e4a2fc8)
  • Current main appends bundled tools after first normalization: In the normal run path, current main normalizes initial tools, materializes bundled MCP/LSP tools later, then appends filteredBundledTools raw to the effective tool list. (src/agents/pi-embedded-runner/run/attempt.ts:1680, 19065e4a2fc8)
  • Provider-owned boundary supports the fix shape: The provider contract documents normalizeToolSchemas as provider-owned cleanup before embedded-runner tool registration, which supports fixing DeepSeek behavior in the provider compatibility hook rather than generic gateway stripping. (src/plugins/types.ts:1408, 19065e4a2fc8)
  • PR adds DeepSeek normalization and diagnostics: The PR head adds DEEPSEEK_UNSUPPORTED_SCHEMA_KEYWORDS, collapses DeepSeek-visible anyOf/oneOf schemas, exposes DeepSeek diagnostics, and wires the new family into buildProviderToolCompatFamilyHooks. (src/plugin-sdk/provider-tools.ts:397, 1bbbb44d2ba8)
  • PR normalizes late bundled tools: The PR head runs provider/runtime normalization over filteredBundledTools before combining them with the already-normalized base tools in the normal attempt path. (src/agents/pi-embedded-runner/run/attempt.ts:1680, 1bbbb44d2ba8)

Likely related people:

  • steipete: Recent history shows adjacent provider SDK surface reduction and DeepSeek plugin refactoring in the affected provider/plugin area. (role: recent adjacent contributor; confidence: medium; commits: 827b0de0ce74, 9f2330363e2a; files: src/plugin-sdk/provider-tools.ts, extensions/deepseek/index.ts)
  • vincentkoc: Introduced the family replay/tool hook helper pattern that this PR extends for DeepSeek. (role: provider compatibility contributor; confidence: medium; commits: 39d2a719c964; files: src/plugin-sdk/provider-tools.ts)
  • Eva: Implemented the OpenAI provider-owned tool compatibility path, the closest existing pattern for this DeepSeek fix. (role: provider tool-compat contributor; confidence: medium; commits: 6aa63b4fdd31; files: src/plugin-sdk/provider-tools.ts, extensions/openai/index.ts)
  • lsdsjy: Added the DeepSeek V4 provider/model support named in the reported schema failure path. (role: DeepSeek V4 feature contributor; confidence: medium; commits: 7d1891e6e63d; files: extensions/deepseek/index.ts)

Codex review notes: model gpt-5.5, reasoning high; reviewed against 19065e4a2fc8.

@clawsweeper clawsweeper Bot added status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane. and removed status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels May 19, 2026
@clawsweeper

clawsweeper Bot commented May 19, 2026

Copy link
Copy Markdown
Contributor Author

🦞✅
ClawSweeper merged this PR after the passing review.

Source: clawsweeper[bot]
Feedback: structured ClawSweeper verdict: pass (sha=1bbbb44d2ba8c19d3c8c3ba8bbe02bbd0ce18dfb)
Merge status: merged by ClawSweeper automerge
Merged at: 2026-05-19T01:54:30Z
Merge commit: 6f7d9736e264

What merged:

  • The PR adds DeepSeek provider-owned anyOf/oneOf tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
  • Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek 400 Invalid schema failure for an MCP anyOf tool schema.

Automerge notes:

  • PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

The automerge loop is complete.

Automerge progress:

  • 2026-05-19 01:31:23 UTC review passed cdd154f16cc3 (structured ClawSweeper verdict: pass (sha=cdd154f16cc3993242d539cb5a2debedb310e...)
  • 2026-05-19 01:54:14 UTC review passed 1bbbb44d2ba8 (structured ClawSweeper verdict: pass (sha=1bbbb44d2ba8c19d3c8c3ba8bbe02bbd0ce18...)
  • 2026-05-19 01:54:32 UTC merged 1bbbb44d2ba8 (merged by ClawSweeper automerge)

@clawsweeper clawsweeper Bot force-pushed the clawsweeper/automerge-openclaw-openclaw-83766 branch from cdd154f to 78bec66 Compare May 19, 2026 01:43
TurboTheTurtle and others added 3 commits May 19, 2026 01:46
Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>

Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
@clawsweeper clawsweeper Bot force-pushed the clawsweeper/automerge-openclaw-openclaw-83766 branch from 78bec66 to 1bbbb44 Compare May 19, 2026 01:46
@clawsweeper clawsweeper Bot added proof: supplied External PR includes structured after-fix real behavior proof. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels May 19, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: supplied External PR includes structured after-fix real behavior proof. label May 19, 2026
@clawsweeper clawsweeper Bot removed the status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. label May 19, 2026
@clawsweeper clawsweeper Bot merged commit 6f7d973 into main May 19, 2026
116 of 121 checks passed
@clawsweeper clawsweeper Bot deleted the clawsweeper/automerge-openclaw-openclaw-83766 branch May 19, 2026 01:54
markfietje pushed a commit to markfietje/openclaw that referenced this pull request May 20, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44d2ba8c19d3c8c3ba8bbe02bbd0ce18dfb.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44d2ba8c19d3c8c3ba8bbe02bbd0ce18dfb
Review: openclaw/openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
markfietje pushed a commit to markfietje/openclaw that referenced this pull request May 20, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44d2ba8c19d3c8c3ba8bbe02bbd0ce18dfb.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44d2ba8c19d3c8c3ba8bbe02bbd0ce18dfb
Review: openclaw/openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
galiniliev pushed a commit to galiniliev/openclaw that referenced this pull request May 25, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
SYU8384 pushed a commit to SYU8384/openclaw that referenced this pull request Jun 3, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
Summary:
- The PR adds DeepSeek provider-owned `anyOf`/`oneOf` tool-schema normalization, normalizes late materialized bundled tools, and updates focused tests, docs, and changelog.
- Reproducibility: yes. Source inspection shows current main appends materialized bundled MCP tools after prov ... aw/issues/83361 provides the concrete DeepSeek `400 Invalid schema` failure for an MCP `anyOf` tool schema.

Automerge notes:
- PR branch already contained follow-up commit before automerge: fix(deepseek): normalize mcp union tool schemas

Validation:
- ClawSweeper review passed for head 1bbbb44.
- Required merge gates passed before the squash merge.

Prepared head SHA: 1bbbb44
Review: openclaw#83848 (comment)

Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
Approved-by: takhoffman
Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling clawsweeper:automerge Maintainer opted this PR into bounded ClawSweeper-reviewed automerge clawsweeper Tracked by ClawSweeper automation docs Improvements or additions to documentation extensions: deepseek merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. P1 High-priority user-facing bug, regression, or broken workflow. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: M status: 🚀 automerge armed This PR is in ClawSweeper's automerge lane.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MCP server anyOf schemas rejected by DeepSeek - should strip at gateway level

1 participant