Perfect! Now I have all the information I need. Let me create a comprehensive research report:
Research Report: @ai-sdk/xai Latest Version and Tool Imports
Executive Summary
Based on my comprehensive research of the @ai-sdk/xai package, the current project uses version 2.0.51, but the latest version is 3.0.67 (as of March 2026). The import pattern for built-in tools like webSearch and xSearch has remained consistent between v2 and v3, but there are significant breaking changes in v3 that need to be addressed.
Current Project Status
The project currently uses:
- Version:
@ai-sdk/xai@2.0.51
- Import pattern:
import { xaiTools } from "@ai-sdk/xai"
- Tool usage:
xaiTools.webSearch() and xaiTools.xSearch()
- Multi-agent model:
grok-4.20-multi-agent-beta-latest
Latest Version (v3.0.67) Analysis
Key Changes in v3.x
Breaking Changes:
ProviderV2 → ProviderV3 interface changes
LanguageModelV2 → LanguageModelV3 type changes
- Dependencies updated:
@ai-sdk/provider@3.0.0, @ai-sdk/provider-utils@4.0.0, @ai-sdk/openai-compatible@2.0.0
- Added
video and videoModel methods for video generation support
textEmbeddingModel deprecated in favor of embeddingModel
Multi-Agent Model Support:
- The
grok-4.20-multi-agent-beta-latest model is supported through the xai.responses() API
- The model ID pattern
grok-4.20-multi-agent-beta-latest works as a string literal in both v2 and v3
- According to xAI documentation, multi-agent models require
reasoningEffort parameter:
"low" or "medium" = 4 agents
"high" or "xhigh" = 16 agents
Tool Imports Comparison
v2.0.51 (Current):
import { xaiTools } from "@ai-sdk/xai"
// or individual imports
import { webSearch, xSearch } from "@ai-sdk/xai"
// Usage
xaiTools.webSearch()
xaiTools.xSearch()
// or
webSearch()
xSearch()
v3.0.67 (Latest):
import { xaiTools } from "@ai-sdk/xai"
// or individual imports
import { webSearch, xSearch } from "@ai-sdk/xai"
// Usage - SAME AS v2
xaiTools.webSearch()
xaiTools.xSearch()
// or
webSearch()
xSearch()
Model ID Types
v2.0.51:
type XaiResponsesModelId = 'grok-4-1' | 'grok-4-1-fast-reasoning' | 'grok-4-1-fast-non-reasoning' | 'grok-4' | 'grok-4-fast-non-reasoning' | (string & {})
v3.0.67:
type XaiResponsesModelId = 'grok-4-1-fast-reasoning' | 'grok-4-1-fast-non-reasoning' | 'grok-4' | 'grok-4-fast-non-reasoning' | 'grok-4-fast-reasoning' | (string & {})
Note: grok-4.20-multi-agent-beta-latest is not explicitly listed in type definitions but works as a string literal.
Migration from v2 to v3
Required Changes
- Update package.json:
"@ai-sdk/xai": "^3.0.0"
Type Compatibility:
- Update any imports/types from
ProviderV2 to ProviderV3
- Update
LanguageModelV2 to LanguageModelV3
- Check for deprecated
textEmbeddingModel usage
API Changes:
- The
xai() function now defaults to responses() API instead of chat() in v7 (planned)
- For multi-agent models, use
xai.responses('grok-4.20-multi-agent-beta-latest')
Current Project Implementation
The project already implements proper tool filtering for xAI multi-agent models:
// In src/session/prompt.ts line 936-947
const isXaiMultiAgent = input.model.providerID === "xai" && input.model.id.includes("multi-agent")
if (isXaiMultiAgent) {
const builtIn: Record<string, AITool> = {
web_search: xaiTools.webSearch(),
x_search: xaiTools.xSearch(),
}
log.info("using xAI built-in tools for multi-agent model", {
modelID: input.model.id,
tools: Object.keys(builtIn),
})
return builtIn
}
Testing with Multi-Agent Models
The project has tests for multi-agent models:
const XAI_MODEL = {
providerID: "xai",
id: "grok-4.20-multi-agent-beta-latest",
api: {
id: "grok-4.20-multi-agent-beta-latest",
npm: "@ai-sdk/xai",
},
} as const
Documentation References
Official xAI Documentation: Shows tool usage as:
import { xai } from "@ai-sdk/xai"
import { generateText } from "ai"
const { text, sources } = await generateText({
model: xai.responses('grok-4.20-beta-latest-non-reasoning'),
prompt: 'What is xAI?',
tools: {
web_search: xai.tools.webSearch(),
},
})
Multi-Agent Configuration:
- Use
reasoningEffort: "low" | "medium" | "high" parameter
"low" or "medium" = 4 agents
"high" = 16 agents
Recommendations
Upgrade to v3.x:
- The tool import pattern (
xaiTools.webSearch(), xaiTools.xSearch()) remains the same
- Update dependencies to avoid compatibility issues
- Test thoroughly with multi-agent models
Multi-Agent Model Usage:
import { xai } from "@ai-sdk/xai"
// For multi-agent models
const model = xai.responses('grok-4.20-multi-agent-beta-latest')
// Or with reasoning effort
const model = xai.responses('grok-4.20-multi-agent-beta-latest', {
reasoningEffort: "medium" // 4 agents
})
Current Project Fixes Needed:
- The project already correctly filters tools for multi-agent models
- The import
import { xaiTools } from "@ai-sdk/xai" is correct
- No changes needed to tool usage patterns
ASCII Art Diagram
Current Project (v2.0.51) Latest Version (v3.0.67)
┌─────────────────────┐ ┌─────────────────────┐
│ @ai-sdk/xai@2.0.51│ │ @ai-sdk/xai@3.0.67│
├─────────────────────┤ ├─────────────────────┤
│ import { xaiTools } │ ───SAME──> │ import { xaiTools } │
│ from "@ai-sdk/xai"│ │ from "@ai-sdk/xai"│
│ │ │ │
│ xaiTools.webSearch()│ ───SAME──> │ xaiTools.webSearch()│
│ xaiTools.xSearch() │ │ xaiTools.xSearch() │
└─────────────────────┘ └─────────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ ProviderV2 │ │ ProviderV3 │
│ LanguageModelV2 │ │ LanguageModelV3 │
│ │ │ + video() │
│ │ │ + videoModel() │
└─────────────────┘ └─────────────────┘
Conclusion
The correct import for built-in tools in both v2 and v3 is:
import { xaiTools } from "@ai-sdk/xai"
// or individually
import { webSearch, xSearch } from "@ai-sdk/xai"
// Usage
xaiTools.webSearch()
xaiTools.xSearch()
Multi-agent models like grok-4.20-multi-agent-beta-latest:
- Use
xai.responses('grok-4.20-multi-agent-beta-latest')
- Require
reasoningEffort: "low" | "medium" | "high" parameter
- Only support built-in tools (
web_search, x_search, code_execution, etc.)
- Client-side tools are NOT supported for multi-agent models
The current project implementation is correct for v2.x, but upgrading to v3.x would require:
- Update package.json to
"@ai-sdk/xai": "^3.0.0"
- Update type imports from
ProviderV2/LanguageModelV2 to ProviderV3/LanguageModelV3
- Test multi-agent model functionality remains intact
No changes are needed to the tool import/usage patterns themselves.