ai 5.1.0-beta.18 → 5.1.0-beta.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # ai
2
2
 
3
+ ## 5.1.0-beta.19
4
+
5
+ ### Patch Changes
6
+
7
+ - aa0515c: feat(ai): move Agent to stable
8
+ - e7d9b00: feat(agent): add optional name property to agent
9
+ - b1aeea7: feat(ai): set default stopWhen on Agent to stepCountIs(20)
10
+
3
11
  ## 5.1.0-beta.18
4
12
 
5
13
  ### Patch Changes
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # AI SDK
4
4
 
5
- The [AI SDK](https://ai-sdk.dev/docs) is a TypeScript toolkit designed to help you build AI-powered applications using popular frameworks like Next.js, React, Svelte, Vue and runtimes like Node.js.
5
+ The [AI SDK](https://ai-sdk.dev/docs) is a TypeScript toolkit designed to help you build AI-powered applications and agents using popular frameworks like Next.js, React, Svelte, Vue and runtimes like Node.js.
6
6
 
7
7
  To learn more about how to use the AI SDK, check out our [API Reference](https://ai-sdk.dev/docs/reference) and [Documentation](https://ai-sdk.dev/docs).
8
8
 
@@ -11,56 +11,141 @@ To learn more about how to use the AI SDK, check out our [API Reference](https:/
11
11
  You will need Node.js 18+ and pnpm installed on your local development machine.
12
12
 
13
13
  ```shell
14
- npm install ai
14
+ npm i ai
15
15
  ```
16
16
 
17
- ## Usage
18
-
19
- ### AI SDK Core
17
+ ## Unified Provider Architecture
20
18
 
21
- The [AI SDK Core](https://ai-sdk.dev/docs/ai-sdk-core/overview) module provides a unified API to interact with model providers like [OpenAI](https://ai-sdk.dev/providers/ai-sdk-providers/openai), [Anthropic](https://ai-sdk.dev/providers/ai-sdk-providers/anthropic), [Google](https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai), and more.
22
-
23
- You will then install the model provider of your choice.
19
+ The AI SDK provides a [unified API](https://ai-sdk.dev/docs/foundations/providers-and-models) to interact with model providers like [OpenAI](https://ai-sdk.dev/providers/ai-sdk-providers/openai), [Anthropic](https://ai-sdk.dev/providers/ai-sdk-providers/anthropic), [Google](https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai), and [more](https://ai-sdk.dev/providers/ai-sdk-providers).
24
20
 
25
21
  ```shell
26
- npm install @ai-sdk/openai
22
+ npm i @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google
27
23
  ```
28
24
 
29
- ###### @/index.ts (Node.js Runtime)
25
+ Alternatively you can use the [Vercel AI Gateway](https://vercel.com/docs/ai-gateway).
26
+
27
+ ## Usage
28
+
29
+ ### Generating Text
30
+
31
+ ```ts
32
+ import { generateText } from 'ai';
33
+
34
+ const { text } = await generateText({
35
+ model: 'openai/gpt-5', // use Vercel AI Gateway
36
+ prompt: 'What is an agent?',
37
+ });
38
+ ```
30
39
 
31
40
  ```ts
32
41
  import { generateText } from 'ai';
33
- import { openai } from '@ai-sdk/openai'; // Ensure OPENAI_API_KEY environment variable is set
42
+ import { openai } from '@ai-sdk/openai';
34
43
 
35
44
  const { text } = await generateText({
36
- model: openai('gpt-4o'),
37
- system: 'You are a friendly assistant!',
38
- prompt: 'Why is the sky blue?',
45
+ model: openai('gpt-5'), // use OpenAI Responses API
46
+ prompt: 'What is an agent?',
39
47
  });
48
+ ```
49
+
50
+ ### Agent
40
51
 
41
- console.log(text);
52
+ ```ts
53
+ import { Agent } from 'ai';
54
+
55
+ const sandboxAgent = new Agent({
56
+ model: 'openai/gpt-5-codex',
57
+ system: 'You are an agent with access to a shell environment.',
58
+ tools: {
59
+ local_shell: openai.tools.localShell({
60
+ execute: async ({ action }) => {
61
+ const [cmd, ...args] = action.command;
62
+ const sandbox = await getSandbox(); // Vercel Sandbox
63
+ const command = await sandbox.runCommand({ cmd, args });
64
+ return { output: await command.stdout() };
65
+ },
66
+ }),
67
+ },
68
+ });
42
69
  ```
43
70
 
44
- ### AI SDK UI
71
+ ### UI Integration
45
72
 
46
73
  The [AI SDK UI](https://ai-sdk.dev/docs/ai-sdk-ui/overview) module provides a set of hooks that help you build chatbots and generative user interfaces. These hooks are framework agnostic, so they can be used in Next.js, React, Svelte, and Vue.
47
74
 
48
- You need to install the package for your framework:
75
+ You need to install the package for your framework, e.g.:
49
76
 
50
77
  ```shell
51
- npm install @ai-sdk/react
78
+ npm i @ai-sdk/react
79
+ ```
80
+
81
+ #### Agent @/agent/image-generation-agent.ts
82
+
83
+ ```ts
84
+ import { openai } from '@ai-sdk/openai';
85
+ import { Agent, InferAgentUIMessage } from 'ai';
86
+
87
+ export const imageGenerationAgent = new Agent({
88
+ model: openai('gpt-5'),
89
+ tools: {
90
+ image_generation: openai.tools.imageGeneration({
91
+ partialImages: 3,
92
+ }),
93
+ },
94
+ });
95
+
96
+ export type ImageGenerationAgentMessage = InferAgentUIMessage<
97
+ typeof imageGenerationAgent
98
+ >;
52
99
  ```
53
100
 
54
- ###### @/app/page.tsx (Next.js App Router)
101
+ #### Route (Next.js App Router) @/app/api/chat/route.ts
102
+
103
+ ```tsx
104
+ import { imageGenerationAgent } from '@/agent/image-generation-agent';
105
+ import { validateUIMessages } from 'ai';
106
+
107
+ export async function POST(req: Request) {
108
+ const { messages } = await req.json();
109
+
110
+ return imageGenerationAgent.respond({
111
+ messages: await validateUIMessages({ messages }),
112
+ });
113
+ }
114
+ ```
115
+
116
+ #### UI Component for Tool @/component/image-generation-view.tsx
117
+
118
+ ```tsx
119
+ import { openai } from '@ai-sdk/openai';
120
+ import { UIToolInvocation } from 'ai';
121
+
122
+ export default function ImageGenerationView({
123
+ invocation,
124
+ }: {
125
+ invocation: UIToolInvocation<ReturnType<typeof openai.tools.imageGeneration>>;
126
+ }) {
127
+ switch (invocation.state) {
128
+ case 'input-available':
129
+ return <div>Generating image...</div>;
130
+ case 'output-available':
131
+ return <img src={`data:image/png;base64,${invocation.output.result}`} />;
132
+ }
133
+ }
134
+ ```
135
+
136
+ #### Page @/app/page.tsx
55
137
 
56
138
  ```tsx
57
139
  'use client';
58
140
 
59
- import { useState } from 'react';
141
+ import { ImageGenerationAgentMessage } from '@/agent/image-generation-agent';
142
+ import ImageGenerationView from '@/component/image-generation-view';
60
143
  import { useChat } from '@ai-sdk/react';
61
144
 
62
145
  export default function Page() {
63
- const { messages, status, sendMessage } = useChat();
146
+ const { messages, status, sendMessage } =
147
+ useChat<ImageGenerationAgentMessage>();
148
+
64
149
  const [input, setInput] = useState('');
65
150
  const handleSubmit = e => {
66
151
  e.preventDefault();
@@ -76,9 +161,9 @@ export default function Page() {
76
161
  {message.parts.map((part, index) => {
77
162
  switch (part.type) {
78
163
  case 'text':
79
- return <span key={index}>{part.text}</span>;
80
-
81
- // other cases can handle images, tool calls, etc
164
+ return <div key={index}>{part.text}</div>;
165
+ case 'tool-image_generation':
166
+ return <ImageGenerationView key={index} invocation={part} />;
82
167
  }
83
168
  })}
84
169
  </div>
@@ -87,7 +172,6 @@ export default function Page() {
87
172
  <form onSubmit={handleSubmit}>
88
173
  <input
89
174
  value={input}
90
- placeholder="Send a message..."
91
175
  onChange={e => setInput(e.target.value)}
92
176
  disabled={status !== 'ready'}
93
177
  />
@@ -97,28 +181,9 @@ export default function Page() {
97
181
  }
98
182
  ```
99
183
 
100
- ###### @/app/api/chat/route.ts (Next.js App Router)
101
-
102
- ```ts
103
- import { streamText } from 'ai';
104
- import { openai } from '@ai-sdk/openai';
105
-
106
- export async function POST(req: Request) {
107
- const { messages } = await req.json();
108
-
109
- const result = streamText({
110
- model: openai('gpt-4o'),
111
- system: 'You are a helpful assistant.',
112
- messages,
113
- });
114
-
115
- return result.toUIMessageStreamResponse();
116
- }
117
- ```
118
-
119
184
  ## Templates
120
185
 
121
- We've built [templates](https://vercel.com/templates?type=ai) that include AI SDK integrations for different use cases, providers, and frameworks. You can use these templates to get started with your AI-powered application.
186
+ We've built [templates](https://ai-sdk.dev/docs/introduction#templates) that include AI SDK integrations for different use cases, providers, and frameworks. You can use these templates to get started with your AI-powered application.
122
187
 
123
188
  ## Community
124
189
 
package/dist/index.d.mts CHANGED
@@ -2184,6 +2184,10 @@ type TextStreamPart<TOOLS extends ToolSet> = {
2184
2184
  };
2185
2185
 
2186
2186
  type AgentSettings<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never> = CallSettings & {
2187
+ /**
2188
+ * The name of the agent.
2189
+ */
2190
+ name?: string;
2187
2191
  /**
2188
2192
  * The system prompt to use.
2189
2193
  */
@@ -2204,7 +2208,7 @@ type AgentSettings<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never
2204
2208
  Condition for stopping the generation when there are tool results in the last step.
2205
2209
  When the condition is an array, any of the conditions can be met to stop the generation.
2206
2210
 
2207
- @default stepCountIs(1)
2211
+ @default stepCountIs(20)
2208
2212
  */
2209
2213
  stopWhen?: StopCondition<NoInfer<TOOLS>> | Array<StopCondition<NoInfer<TOOLS>>>;
2210
2214
  /**
@@ -2258,9 +2262,25 @@ type AgentSettings<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never
2258
2262
  currentDate?: () => Date;
2259
2263
  };
2260
2264
  };
2265
+ /**
2266
+ * The Agent class provides a structured way to encapsulate LLM configuration, tools,
2267
+ * and behavior into reusable components.
2268
+ *
2269
+ * It handles the agent loop for you, allowing the LLM to call tools multiple times in
2270
+ * sequence to accomplish complex tasks.
2271
+ *
2272
+ * Define agents once and use them across your application.
2273
+ */
2261
2274
  declare class Agent<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never> {
2262
2275
  private readonly settings;
2263
2276
  constructor(settings: AgentSettings<TOOLS, OUTPUT, OUTPUT_PARTIAL>);
2277
+ /**
2278
+ * The name of the agent.
2279
+ */
2280
+ get name(): string | undefined;
2281
+ /**
2282
+ * The tools that the agent can use.
2283
+ */
2264
2284
  get tools(): TOOLS;
2265
2285
  generate(options: Prompt): Promise<GenerateTextResult<TOOLS, OUTPUT>>;
2266
2286
  stream(options: Prompt): StreamTextResult<TOOLS, OUTPUT_PARTIAL>;
@@ -4600,4 +4620,4 @@ declare global {
4600
4620
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
4601
4621
  }
4602
4622
 
4603
- export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
4623
+ export { AbstractChat, Agent, AgentSettings, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferAgentUIMessage, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
package/dist/index.d.ts CHANGED
@@ -2184,6 +2184,10 @@ type TextStreamPart<TOOLS extends ToolSet> = {
2184
2184
  };
2185
2185
 
2186
2186
  type AgentSettings<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never> = CallSettings & {
2187
+ /**
2188
+ * The name of the agent.
2189
+ */
2190
+ name?: string;
2187
2191
  /**
2188
2192
  * The system prompt to use.
2189
2193
  */
@@ -2204,7 +2208,7 @@ type AgentSettings<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never
2204
2208
  Condition for stopping the generation when there are tool results in the last step.
2205
2209
  When the condition is an array, any of the conditions can be met to stop the generation.
2206
2210
 
2207
- @default stepCountIs(1)
2211
+ @default stepCountIs(20)
2208
2212
  */
2209
2213
  stopWhen?: StopCondition<NoInfer<TOOLS>> | Array<StopCondition<NoInfer<TOOLS>>>;
2210
2214
  /**
@@ -2258,9 +2262,25 @@ type AgentSettings<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never
2258
2262
  currentDate?: () => Date;
2259
2263
  };
2260
2264
  };
2265
+ /**
2266
+ * The Agent class provides a structured way to encapsulate LLM configuration, tools,
2267
+ * and behavior into reusable components.
2268
+ *
2269
+ * It handles the agent loop for you, allowing the LLM to call tools multiple times in
2270
+ * sequence to accomplish complex tasks.
2271
+ *
2272
+ * Define agents once and use them across your application.
2273
+ */
2261
2274
  declare class Agent<TOOLS extends ToolSet, OUTPUT = never, OUTPUT_PARTIAL = never> {
2262
2275
  private readonly settings;
2263
2276
  constructor(settings: AgentSettings<TOOLS, OUTPUT, OUTPUT_PARTIAL>);
2277
+ /**
2278
+ * The name of the agent.
2279
+ */
2280
+ get name(): string | undefined;
2281
+ /**
2282
+ * The tools that the agent can use.
2283
+ */
2264
2284
  get tools(): TOOLS;
2265
2285
  generate(options: Prompt): Promise<GenerateTextResult<TOOLS, OUTPUT>>;
2266
2286
  stream(options: Prompt): StreamTextResult<TOOLS, OUTPUT_PARTIAL>;
@@ -4600,4 +4620,4 @@ declare global {
4600
4620
  var AI_SDK_LOG_WARNINGS: LogWarningsFunction | undefined | false;
4601
4621
  }
4602
4622
 
4603
- export { AbstractChat, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
4623
+ export { AbstractChat, Agent, AgentSettings, AsyncIterableStream, CallSettings, CallWarning, ChatInit, ChatOnDataCallback, ChatOnErrorCallback, ChatOnFinishCallback, ChatOnToolCallCallback, ChatRequestOptions, ChatState, ChatStatus, ChatTransport, ChunkDetector, CompletionRequestOptions, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreToolMessage, CoreUserMessage, CreateUIMessage, DataUIPart, DeepPartial, DefaultChatTransport, DownloadError, DynamicToolCall, DynamicToolError, DynamicToolResult, DynamicToolUIPart, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingModelUsage, ErrorHandler, Agent as Experimental_Agent, AgentSettings as Experimental_AgentSettings, DownloadFunction as Experimental_DownloadFunction, GenerateImageResult as Experimental_GenerateImageResult, GeneratedFile as Experimental_GeneratedImage, InferAgentUIMessage as Experimental_InferAgentUIMessage, LogWarningsFunction as Experimental_LogWarningsFunction, SpeechResult as Experimental_SpeechResult, TranscriptionResult as Experimental_TranscriptionResult, Warning as Experimental_Warning, FileUIPart, FinishReason, GenerateObjectResult, GenerateTextOnStepFinishCallback, GenerateTextResult, GeneratedAudioFile, GeneratedFile, HttpChatTransport, HttpChatTransportInitOptions, ImageModel, ImageGenerationWarning as ImageModelCallWarning, ImageModelProviderMetadata, ImageModelResponseMetadata, InferAgentUIMessage, InferUIDataParts, InferUIMessageChunk, InferUITool, InferUITools, InvalidArgumentError, InvalidDataContentError, InvalidMessageRoleError, InvalidStreamPartError, InvalidToolInputError, JSONRPCError, JSONRPCMessage, JSONRPCNotification, JSONRPCRequest, JSONRPCResponse, JSONValue, JsonToSseTransformStream, LanguageModel, LanguageModelMiddleware, LanguageModelRequestMetadata, LanguageModelResponseMetadata, LanguageModelUsage, MCPClientError, MCPTransport, MessageConversionError, NoImageGeneratedError, NoObjectGeneratedError, NoOutputGeneratedError, NoOutputSpecifiedError, NoSpeechGeneratedError, NoSuchProviderError, NoSuchToolError, ObjectStreamPart, output as Output, PrepareReconnectToStreamRequest, PrepareSendMessagesRequest, PrepareStepFunction, PrepareStepResult, Prompt, Provider, ProviderMetadata, ProviderRegistryProvider, ReasoningOutput, ReasoningUIPart, RepairTextFunction, RetryError, SafeValidateUIMessagesResult, SerialJobExecutor, SourceDocumentUIPart, SourceUrlUIPart, SpeechModel, SpeechModelResponseMetadata, SpeechWarning, StaticToolCall, StaticToolError, StaticToolResult, StepResult, StepStartUIPart, StopCondition, StreamObjectOnFinishCallback, StreamObjectResult, StreamTextOnChunkCallback, StreamTextOnErrorCallback, StreamTextOnFinishCallback, StreamTextOnStepFinishCallback, StreamTextResult, StreamTextTransform, TelemetrySettings, TextStreamChatTransport, TextStreamPart, TextUIPart, ToolCallRepairError, ToolCallRepairFunction, ToolChoice, ToolSet, ToolUIPart, TranscriptionModel, TranscriptionModelResponseMetadata, TranscriptionWarning, TypedToolCall, TypedToolError, TypedToolResult, UIDataPartSchemas, UIDataTypes, UIMessage, UIMessageChunk, UIMessagePart, UIMessageStreamOnFinishCallback, UIMessageStreamOptions, UIMessageStreamWriter, UITool, UIToolInvocation, UITools, UI_MESSAGE_STREAM_HEADERS, UnsupportedModelVersionError, UseCompletionOptions, assistantModelMessageSchema, callCompletionApi, consumeStream, convertFileListToFileUIParts, convertToCoreMessages, convertToModelMessages, coreAssistantMessageSchema, coreMessageSchema, coreSystemMessageSchema, coreToolMessageSchema, coreUserMessageSchema, cosineSimilarity, createProviderRegistry, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, customProvider, defaultSettingsMiddleware, embed, embedMany, MCPClient as experimental_MCPClient, MCPClientConfig as experimental_MCPClientConfig, createMCPClient as experimental_createMCPClient, experimental_createProviderRegistry, experimental_customProvider, generateImage as experimental_generateImage, generateSpeech as experimental_generateSpeech, transcribe as experimental_transcribe, extractReasoningMiddleware, generateObject, generateText, getTextFromDataUrl, getToolName, getToolOrDynamicToolName, hasToolCall, isDeepEqualData, isToolOrDynamicToolUIPart, isToolUIPart, lastAssistantMessageIsCompleteWithToolCalls, modelMessageSchema, parsePartialJson, pipeTextStreamToResponse, pipeUIMessageStreamToResponse, readUIMessageStream, safeValidateUIMessages, simulateReadableStream, simulateStreamingMiddleware, smoothStream, stepCountIs, streamObject, streamText, systemModelMessageSchema, toolModelMessageSchema, uiMessageChunkSchema, userModelMessageSchema, validateUIMessages, wrapLanguageModel, wrapProvider };
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ __export(src_exports, {
23
23
  AISDKError: () => import_provider18.AISDKError,
24
24
  APICallError: () => import_provider18.APICallError,
25
25
  AbstractChat: () => AbstractChat,
26
+ Agent: () => Agent,
26
27
  DefaultChatTransport: () => DefaultChatTransport,
27
28
  DownloadError: () => DownloadError,
28
29
  EmptyResponseBodyError: () => import_provider18.EmptyResponseBodyError,
@@ -801,7 +802,7 @@ function detectMediaType({
801
802
  var import_provider_utils2 = require("@ai-sdk/provider-utils");
802
803
 
803
804
  // src/version.ts
804
- var VERSION = true ? "5.1.0-beta.18" : "0.0.0-test";
805
+ var VERSION = true ? "5.1.0-beta.19" : "0.0.0-test";
805
806
 
806
807
  // src/util/download/download.ts
807
808
  var download = async ({ url }) => {
@@ -6023,14 +6024,33 @@ var Agent = class {
6023
6024
  constructor(settings) {
6024
6025
  this.settings = settings;
6025
6026
  }
6027
+ /**
6028
+ * The name of the agent.
6029
+ */
6030
+ get name() {
6031
+ return this.settings.name;
6032
+ }
6033
+ /**
6034
+ * The tools that the agent can use.
6035
+ */
6026
6036
  get tools() {
6027
6037
  return this.settings.tools;
6028
6038
  }
6029
6039
  async generate(options) {
6030
- return generateText({ ...this.settings, ...options });
6040
+ var _a17;
6041
+ return generateText({
6042
+ ...this.settings,
6043
+ stopWhen: (_a17 = this.settings.stopWhen) != null ? _a17 : stepCountIs(20),
6044
+ ...options
6045
+ });
6031
6046
  }
6032
6047
  stream(options) {
6033
- return streamText({ ...this.settings, ...options });
6048
+ var _a17;
6049
+ return streamText({
6050
+ ...this.settings,
6051
+ stopWhen: (_a17 = this.settings.stopWhen) != null ? _a17 : stepCountIs(20),
6052
+ ...options
6053
+ });
6034
6054
  }
6035
6055
  /**
6036
6056
  * Creates a response object that streams UI messages to the client.
@@ -10424,6 +10444,7 @@ function readUIMessageStream({
10424
10444
  AISDKError,
10425
10445
  APICallError,
10426
10446
  AbstractChat,
10447
+ Agent,
10427
10448
  DefaultChatTransport,
10428
10449
  DownloadError,
10429
10450
  EmptyResponseBodyError,