OpenToolslogo
ToolsExpertsNewsletter
AdvertiseLearn AI
  1. Home
  2. /
  3. News
  4. /
  5. AI SDK 6.0.324 preserves tool disabling when SDK tools are absent
Updated 10 minutes ago

Share this article

PostShare

In This Article

  • An empty SDK tool list was dropping an explicit choice
  • The core package and the provider package are separate checks
  • Read the regression assertions as request evidence
  • An unexecuted migration check should record both intent and request
  • Source and image context

Most Popular

1Workflow adds atomic starts2MCP Inspector’s pattern checks diverge3AI SDK trace timing

Topics

Developer tools

AI news in your inbox

Weekly updates on tools, models, and the companies building them.

Subscribe

Related News

Workflow adds atomic starts

Nov 6, 2026

Workflow adds atomic starts

Run admission and tool retries protect different identities.

AI agentsDeveloper tools
MCP Inspector’s pattern checks diverge

Nov 6, 2026

MCP Inspector’s pattern checks diverge

v1.0.4 skips patterns; v2.14.0 limits evaluation.

MCPDeveloper tools
AI SDK trace timing

Nov 4, 2026

AI SDK trace timing

Live model spans precede the enclosing workflow tree.

Developer tools

Footer

Company name

The right AI tool is out there. We'll help you find it.

LinkedInX

Knowledge Hub

  • News
  • Resources
  • Newsletter
  • Blog
  • AI Tool Reviews
  • YouTube Summary
  • YouTube Transcript Generator

Industry Hub

  • AI Companies
  • AI Tools
  • AI Models
  • MCP Servers
  • Muse Connectors
  • AI Tool Categories
  • Top AI Use Cases

For Builders

  • Submit a Tool
  • Submit a MCP
  • Experts & Agencies
  • Advertise
  • Compare Tools
  • Favourites

Legal

  • Privacy Policy
  • Terms of Service

© 2026 OpenTools - All rights reserved.

Archive portrait of Guillermo Rauch, Vercel’s founder, against a dark background.
Source: Oynickj / Wikimedia Commons · CC BY-SA 4.0 · Archive portrait; cropped adaptation under same licence. · Source image

AI SDK 6.0.324 preserves tool disabling when SDK tools are absent

By OpenTools Team · November 7, 2026

The v6 patch keeps an explicit toolChoice: none when SDK tools are omitted or empty. Perplexity users also need the compatible provider guard; package versions and the serialized request answer different upgrade questions.

An empty SDK tool list was dropping an explicit choice

The AI SDK 6.0.324 release, published November 6, fixes a specific mismatch: a caller could set toolChoice: 'none' while omitting the SDK’s tools option, or supplying an empty object, and lose that explicit choice during normalization. The release also tells Perplexity users to update @ai-sdk/perplexity to version 3.1.10 or a later compatible version.

The changed core function shows the distinction. In its no-tools branch, the returned tools value remains undefined. The old code also returned an undefined tool choice; the replacement preserves an explicit none as an object whose type is none. Other choices in that branch still return an undefined tool choice. This is a targeted change, not a new instruction to disable every tool in every request.

Why can that matter when the application supplies no SDK tools? The tracked changeset identifies native tools configured through provider options. An empty SDK-level collection does not establish that those separate options are empty. The setting has to survive the core layer before a provider can act on it.

The core package and the provider package are separate checks

The tracked release guidance names both packages because they have different jobs. Core preserves the caller’s explicit selection; the Perplexity integration needs the compatible provider-side guard. The new core test dependency on the Perplexity workspace is development configuration for the repository’s tests. It is not evidence that updating ai automatically updates an application’s separately installed provider package.

A useful upgrade record would therefore contain the resolved ai version and the resolved @ai-sdk/perplexity version, rather than just the top-level upgrade command. “A later compatible version” also matters: the source does not instruct every v6 application to install an arbitrary newest package from a different major line. The actual dependency resolution and compatibility remain the application team’s checks.

The separate Perplexity provider pull request merged into main on November 7. Its description says the active v6 release branch already had the equivalent provider guard, while main needed a separate provider change. That later merge is not the publication date of the v6 core patch. The discussion also leaves live preset enforcement, skill or continuation behavior and live acceptance of conversation history unverified in that provider check. This report does not turn those unverified paths into guarantees.

Read the regression assertions as request evidence

The added integration-test source covers generateText and streamText, omitted and empty SDK tools, and a preset model identifier as well as a direct model identifier. For explicit none, the assertions look for no serialized tools property, a max_tool_calls value of zero and no dummy MCP secret in the outgoing request body. Another case supplies no explicit native tool list, addressing the preset path.

Those assertions identify concrete evidence to inspect during an upgrade. They do not show that OpenTools ran the tests, contacted Perplexity or exercised an authenticated external connector. We inspected the published source; we did not execute an SDK reproduction. The test’s deterministic response is part of its setup, not a measured answer from a real tool.

The same file includes a default-selection case that expects the native tools and a positive call budget to remain. That is a useful control: this patch’s explicit opt-out should not be described as removing automatic tool selection everywhere. A successful text response alone would also miss the request distinction the regression is designed to check.

An unexecuted migration check should record both intent and request

OpenTools analysis: consider an application that sometimes permits native connectors but has a separate request path intended to use none. A proposed verification record would name that path, both resolved package versions, whether SDK tools is omitted or empty, the chosen model identifier, the explicit tool choice and the native provider options. This is a hypothetical review procedure, not a test we performed or a report of an affected customer.

For that opt-out path, the published assertions suggest inspecting whether the serialized tool definitions are absent and the native call budget is zero. Where an allowed test setup uses dummy authorization or headers, the record should also check that those dummy values were not serialized. Record a redacted result; logging real credentials is not needed to describe the outcome. Keep generation and streaming as separate cases because the source exercises both public APIs.

A contrasting request that intentionally uses the default selection needs its own expected result. Otherwise a team could mistake a configuration that disables everything for proof that only the intended path changed. Likewise, recording only an empty SDK tools object would leave the provider-options question unanswered. The useful handoff is the intended choice, the resolved dependencies and the observed request fields together—not just “the model returned text.”

This proposed check is narrower than proving the remote service never performs any action. The source tests establish their local assertions; an application’s live configuration, provider enforcement and any external service behavior require their own evidence. No exploit, credential compromise, severity rating or universal protection across SDK branches is established here.

Source and image context

The code and tracked changeset discussed here are in the repository carrying the Vercel copyright and Apache 2.0 notice; the full licence terms remain available. Copyright 2023 Vercel, Inc. This article explains and comments on the source; its migration scenario is OpenTools analysis, and no source files were modified or redistributed as a software package. GitHub discussion, platform artwork and trademarks are not assigned a blanket licence by that repository notice.

Archive portrait of Vercel founder Guillermo Rauch (Commons upload, June 2024); not an image of the AI SDK fix or a product test. Photo: Oynickj / Wikimedia Commons, CC BY-SA 4.0. Cropped and downscaled; this image adaptation is also CC BY-SA 4.0. No endorsement implied. The retained photo record has conflicting camera-date descriptions, so the upload month is not presented as the date the photograph was taken.

Sources

  1. 1.AI SDK 6.0.324 release (github.com)
  2. 2.Vercel copyright and Apache 2.0 notice (github.com)
  3. 3.Oynickj / Wikimedia Commons (commons.wikimedia.org)
  4. 4.CC BY-SA 4.0 (creativecommons.org)
  5. 5.github.com (github.com)
  6. 6.github.com (github.com)
  7. 7.apache.org (apache.org)
  8. 8.creativecommons.org (creativecommons.org)
  9. 9.vercel.com (vercel.com)

Tags

Developer tools